Comment puis-je monter des systèmes de fichiers avec des tailles de bloc> 4 Ko?

18

J'ai un disque dur de 3 To retiré d'un NAS WD Mybook Live. La table de partition est la suivante:

Model: ATA WDC WD30EZRS-11J (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 3      15.7MB  528MB   513MB                primary
 1      528MB   2576MB  2048MB  ext3         primary  raid
 2      2576MB  4624MB  2048MB  ext3         primary  raid
 4      4624MB  3001GB  2996GB  ext4         primary

J'essaie donc d'accéder à la partition 4 (la grande!):

root@john-desktop:~/linux-3.9-rc8# mount -t ext4 /dev/sdb4 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/sdb4,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Sortie Dmesg:

[ 2058.085881] EXT4-fs (sdb4): bad block size 65536

C'est assez juste. Pour autant que je sache, mon noyau n'est pas configuré pour prendre en charge des tailles de bloc supérieures à 4K.

Ma question est, quel symbole dois-je rechercher dans ma configuration du noyau pour permettre le montage de partitions de plus grande taille? J'ai parcouru google pour cela, et je pensais avoir vu l'option avant, mais je ne trouve aucune mention à ce sujet dans la dernière source stable du noyau.

Edit : Informations complètes sur le disque dur de hdparm ici: http://pastebin.com/hDdbUzjd

Edit : sortie de dumpe2fs:

Mount count:              0
Maximum mount count:      30Last checked:             Wed May 30 15:22:14 2012Check interval:           15552000 (6 months)Next check after:         Mon Nov 26 14:22:14 2012Lifetime writes:          319 GBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      cd7a28a0-714c-9942-29f4-83bca1209130
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             2048M
Journal length:           32768
Journal sequence:         0x00010146
Journal start:            0
John Hunt
la source
Veuillez noter que passer une taille de bloc à la commande mount ne fait rien: mount -t ext4 -o bs = 65536 / dev / sdb4 / mnt .... l'option bs n'est prise en charge que sur une poignée de systèmes de fichiers (et non sur des systèmes ext. .)
John Hunt
Quelle est la dumpe2fs -hsortie pour ce volume? Ma page de manuel 2012 pour mke2fs indique: "Les valeurs de taille de bloc valides sont 1024, 2048 et 4096 octets par bloc." Un bond de 4096 à 65536.
Hauke ​​Laging
@HaukeLaging - J'ai ajouté cette sortie, merci :)
John Hunt
@jofel qui n'offre pas réellement de solution, juste un vague raisonnement.
John Hunt

Réponses:

19

Woohoo, je l'ai résolu :)

La réponse courte est que vous ne pouvez pas monter des périphériques de taille de bloc> 4k sur des machines Linux x86 pour autant que je sache sans un piratage sérieux du noyau.

Cependant, il y a un travail à faire .. en utilisant fuse-ext2 pour monter le disque:

fuseext2 -o ro -o sync_read /dev/sdb4 /mnt/

(vous devrez probablement commencer par apt-get fuseext2 ..)

fonctionne parfaitement la première fois!

Ce sera essentiellement la façon dont les gens pourront récupérer leurs disques MyBook Live.

Article de blog Howto ici: http://john-hunt.com/2013/04/25/recovering-data-from-a-wd-mybook-live-2tb-3tbor-similar/

John Hunt
la source
Oui, le cache de page du noyau limite la taille de bloc à la taille de page du processeur, donc pour i386 / amd64, vous ne pouvez pas monter un fs avec une taille de bloc supérieure à 4k. Une autre alternative consiste à utiliser e2tools.
psusi
1
Je vous remercie! J'ai pu accéder à un disque Seagate Central NAS de cette façon.
Tobia
J'essaie de cette façon sur 2 machines (kubuntu 14.04 x86 et 15.10 x64), mais obtient le gel et l'utilisation du CPU à 100% par fuseext2 sur le dossier de montage ouvert. Quelqu'un peut-il me dire pourquoi?
Yura Shinkarev
Je reçois une expérience similaire à YShinkarev - se bloquer lorsque j'essaie d'accéder au support fuseext2, se bloque également lorsque j'essaie de le démonter. Ctrl + c n'a aucun effet ...
Adam Griffiths
Bien que cela ne réponde pas à la question en soi, vous pouvez récupérer les données en utilisant debugfs /dev/sdXXoù vous pouvez exécuter des commandes de base telles que lset rdumppour copier les fichiers vers un emplacement sûr. Source: n-dimensional.de/blog/2012/05/01/wd-mybook-live-data-rescue J'ai utilisé cette méthode car le fuseext2 se bloque ( bugs.debian.org/cgi-bin/bugreport.cgi?bug= 776248 )
Alecz