如何挂载块大小大于 4KB 的文件系统?

Joh*_*unt 19 linux kernel ext4 nas

我有一个从 WD Mybook Live NAS 中取出的 3TB 硬盘。分区表如下:

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
Run Code Online (Sandbox Code Playgroud)

所以我试图访问分区 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
Run Code Online (Sandbox Code Playgroud)

消息输出:

[ 2058.085881] EXT4-fs (sdb4): bad block size 65536
Run Code Online (Sandbox Code Playgroud)

这很公平。据我所知,我的内核没有配置为支持超过 4K 的块大小。

我的问题是,我应该在内核配置中搜索什么符号以允许安装更大的块大小的分区?我已经在谷歌上搜索过这个,我以为我之前看到过这个选项,但在最新的稳定内核源代码中找不到任何提及。

编辑:来自 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
Run Code Online (Sandbox Code Playgroud)

Joh*_*unt 23

哇哦,我解决了:)

简短的回答是你不能在 x86 linux 机器上安装 >4k 块大小的设备,据我所知,没有一些严重的内核黑客攻击。

但是,有一个变通方法.. 使用 fuse-ext2 挂载磁盘:

fuseext2 -o ro -o sync_read /dev/sdb4 /mnt/
Run Code Online (Sandbox Code Playgroud)

(您可能需要先 apt-get fuseext2 ..)

第一次完美运行!

这基本上是人们可以恢复他们的 MyBook Live 磁盘的方式。

如何在此处发布博客:http : //john-hunt.com/2013/04/25/recovering-data-from-a-wd-mybook-live-2tb-3tbor-similar/

  • 是的,内核页面缓存将块大小限制为 CPU 的页面大小,因此对于 i386/amd64,您不能挂载超过 4k 块大小的 fs。另一种选择是使用 e2tools。 (2认同)
  • 虽然这本身并不能回答问题,但您可以使用 `debugfs /dev/sdXX` 恢复数据,您可以在其中运行基本命令,例如 `ls` 和 `rdump`,将文件复制到安全位置。来源:http://n-Dimension.de/blog/2012/05/01/wd-mybook-live-data-rescue/ 我使用这个方法是因为 fuseext2 冻结(https://bugs.debian.org/cgi -bin/bugreport.cgi?bug=776248) (2认同)