Wie kann ich Dateisysteme mit einer Blockgröße von> 4 KB bereitstellen?

18

Ich habe eine 3-TB-Festplatte aus einem WD Mybook Live NAS gezogen. Die Partitionstabelle lautet wie folgt:

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

Also versuche ich auf Partition 4 zuzugreifen (die große!):

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

Dmesg-Ausgabe:

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

Das ist fair genug. Soweit ich weiß, ist mein Kernel nicht für die Unterstützung von Blockgrößen über 4 KB konfiguriert.

Meine Frage ist, nach welchem ​​Symbol ich in meiner Kernel-Konfiguration suchen soll, damit größere Block-Partitionen gemountet werden können. Ich habe Google danach durchsucht und dachte, ich hätte die Option schon einmal gesehen, kann sie aber in der neuesten stabilen Kernel-Quelle nicht erwähnen.

Bearbeiten : Vollständige Festplatteninformationen von HDParm hier: http://pastebin.com/hDdbUzjd

Edit : dumpe2fs Ausgabe:

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
quelle
Beachten Sie, dass die Übergabe einer Blockgröße an den Befehl mount nichts bewirkt: mount -t ext4 -o bs = 65536 / dev / sdb4 / mnt .... Die Option bs wird nur auf einer Handvoll Dateisysteme unterstützt (und nicht auf ext. .)
John Hunt
Was ist die dumpe2fs -hAusgabe für dieses Volume? Meine 2012-Manpage für mke2fs sagt: "Gültige Blockgrößenwerte sind 1024, 2048 und 4096 Bytes pro Block." Ein ziemlicher Sprung von 4096 auf 65536.
Hauke ​​Laging
@HaukeLaging - Haben diese Ausgabe hinzugefügt, danke :)
John Hunt
@jofel, das eigentlich keine Lösung bietet, nur eine vage Begründung.
John Hunt

Antworten:

19

Woohoo, ich habe es gelöst :)

Die kurze Antwort ist, dass Sie keine Geräte mit einer Blockgröße von> 4k auf x86-Linux-Rechnern mounten können, soweit ich das beurteilen kann, ohne ernsthaften Kernel-Hacking.

Es gibt jedoch eine Problemumgehung. Verwenden von fuse-ext2 zum Mounten der Festplatte:

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

(Sie müssen wahrscheinlich zuerst fuseext2 apt-get ..)

funktioniert perfekt beim ersten mal!

Dies ist im Grunde genommen die Methode, mit der Benutzer ihre MyBook Live-Festplatten wiederherstellen können.

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

John Hunt
quelle
Ja, der Kernel-Seiten-Cache begrenzt die Blockgröße auf die Seitengröße der CPU, sodass Sie für i386 / amd64 keine fs mit mehr als 4 KB Blockgröße bereitstellen können. Eine weitere Alternative ist die Verwendung von e2tools.
Psusi
1
Vielen Dank! Auf diese Weise konnte ich auf ein Seagate Central NAS-Laufwerk zugreifen.
Tobia,
Ich versuche diesen Weg auf 2 Rechnern (kubuntu 14.04 x86 und 15.10 x64), erhalte aber ein Einfrieren und CPU-Auslastung von 100% durch fuseext2 beim Öffnen des Mount-Ordners. Kann mir jemand sagen, warum?
Yura Shinkarev
Ich erlebe eine ähnliche Erfahrung wie YShinkarev - hängt, wenn ich versuche, auf die fuseext2-Bereitstellung zuzugreifen, friert auch ein, wenn ich versuche, die Bereitstellung aufzuheben. Strg + c hat keine Auswirkung ...
Adam Griffiths
Dies beantwortet zwar nicht die eigentliche Frage, aber Sie können die Daten wiederherstellen, indem debugfs /dev/sdXXSie grundlegende Befehle ausführen, z. B. lsund, rdumpum die Dateien an einen sicheren Ort zu kopieren. Quelle: n-dimensional.de/blog/2012/05/01/wd-mybook-live-data-rescue Ich habe diese Methode verwendet, weil fuseext2 einfriert ( bugs.debian.org/cgi-bin/bugreport.cgi?bug= 776248 )
Alecz