ฉันจะเมานท์ระบบไฟล์ด้วยขนาดบล็อก 4KB ได้อย่างไร


18

ฉันดึงฮาร์ดดิสก์ 3TB ออกจาก WD Mybook Live NAS ตารางพาร์ติชันมีดังนี้:

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

ดังนั้นฉันจึงพยายามเข้าถึงพาร์ติชัน 4 (ตัวใหญ่!):

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:

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

นี่ยุติธรรมพอ เท่าที่ฉันสามารถบอกได้ว่าเคอร์เนลของฉันไม่ได้ถูกกำหนดค่าให้รองรับขนาดบล็อกเกิน 4K

คำถามของฉันคือฉันควรค้นหาสัญลักษณ์อะไรในเคอร์เนล config เพื่ออนุญาตให้พาร์ติชันขนาดบล็อกใหญ่ขึ้น? ฉันขัดข้อง google สำหรับเรื่องนี้และฉันคิดว่าฉันเห็นตัวเลือกก่อนหน้านี้ แต่ฉันไม่สามารถพูดถึงมันได้ในแหล่งเคอร์เนลที่เสถียรล่าสุด

แก้ไข : ข้อมูลฮาร์ดดิสก์เต็มรูปแบบจาก hdparm ที่นี่: http://pastebin.com/hDdbUzjd

แก้ไข : เอาต์พุต 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

โปรดทราบว่าการส่งผ่านขนาดบล็อกไปยังคำสั่ง mount ไม่ได้ทำอะไรเลย: mount -t ext4 -o bs = 65536 / dev / sdb4 / mnt .... ตัวเลือก bs รองรับระบบไฟล์จำนวนมาก (และไม่ขยายออก) .)
John Hunt

อะไรคือสิ่งที่dumpe2fs -hการส่งออกปริมาณที่? 2012 man page ของฉันสำหรับ mke2fs พูดว่า: "ค่าขนาดบล็อกที่ถูกต้องคือ 1024, 2048 และ 4096 ไบต์ต่อบล็อก" ค่อนข้างกระโดดจาก 4096 ถึง 65536
Hauke ​​Laging

@HaukeLaging - ได้เพิ่มการส่งออกที่ขอบคุณ :)
จอห์นฮันท์


@ โจเฟลที่ไม่ได้เสนอวิธีแก้ปัญหา แต่เป็นเหตุผลที่คลุมเครือ
John Hunt

คำตอบ:


19

Woohoo ฉันแก้ไขมัน :)

คำตอบสั้น ๆ คือคุณไม่สามารถติดตั้งอุปกรณ์ขนาดบล็อก 4k บนเครื่อง x86 linux เท่าที่ฉันสามารถบอกได้โดยไม่ต้องแฮ็คเคอร์เนลที่ร้ายแรง

อย่างไรก็ตามมีการแก้ไข .. โดยใช้ fuse-ext2 เพื่อติดตั้งดิสก์:

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

(คุณอาจจำเป็นต้องรับ fuseext2 ก่อน .. )

ทำงานได้อย่างสมบูรณ์แบบเป็นครั้งแรก!

นี่เป็นวิธีที่ผู้คนสามารถกู้คืนดิสก์ MyBook Live ได้

บล็อก Howto โพสต์ที่นี่: http://john-hunt.com/2013/04/25/recovering-data-from-a-wd-mybook-live-2tb-3tbor-similar/


ใช่แล้วหน้าแคชเคอร์เนล จำกัด ขนาดบล็อกเป็นขนาดหน้าของ CPU ดังนั้นสำหรับ i386 / amd64 คุณไม่สามารถเมานท์ fs ที่มีขนาดบล็อกได้มากกว่า 4k อีกทางเลือกหนึ่งคือการใช้ e2tools
psusi

1
ขอขอบคุณ! ฉันสามารถเข้าถึงไดรฟ์ Seagate Central NAS ด้วยวิธีนี้
Tobia

ฉันลองใช้วิธีนี้กับเครื่อง 2 เครื่อง (kubuntu 14.04 x86 และ 15.10 x64) แต่ได้รับการแช่แข็งและการใช้งาน CPU 100% โดย fuseext2 ในโฟลเดอร์ mount open ทุกคนสามารถพูดทำไม
Yura Shinkarev

ฉันได้รับประสบการณ์ที่คล้ายคลึงกับ YShinkarev - หยุดทำงานเมื่อพยายามเข้าถึงการเมานต์ fuseext2 และค้างเมื่อฉันพยายามที่จะนับมัน Ctrl + c ไม่มีผล ...
Adam Griffiths

แม้ว่าสิ่งนี้จะไม่ตอบคำถามต่อคุณคุณสามารถกู้คืนข้อมูลโดยใช้debugfs /dev/sdXXที่ซึ่งคุณสามารถเรียกใช้คำสั่งพื้นฐานเช่นlsและrdumpเพื่อคัดลอกไฟล์ไปยังตำแหน่งที่ปลอดภัย ที่มา: n-dimensional.de/blog/2012/05/01/wd-mybook-live-data-rescueฉันใช้วิธีนี้เพราะ fuseext2 หยุดนิ่ง ( bugs.debian.org/cgi-bin/bugreport.cgi?bug= 776248 )
Alecz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.