我有一个 USB 笔式驱动器,其 FAT 文件系统已损坏。现在我尝试修复它。因此,为了首先尝试从中获取什么,而不会进一步危及原始硬件,我使用dd
以下命令行创建了一个映像:
$ sudo dd if=/dev/sdb of=pendrive.img
现在我想通过运行来修复图像中的文件系统fsck
。
但fsck
立即终止,如下所示:
$ sudo fsck.vfat -a -t -v pendrive.img
fsck.fat 3.0.27 (2014-11-12)
Logical sector size is zero.
有什么技巧可以让我fsck
推断出扇区大小或此消息意味着什么?有人可以帮忙解释此输出吗?
这个问题类似于fsck 文件中的文件系统但这是关于 ext2 的。此外https://superuser.com/questions/129189/cant-mount-fat32-drive-under-ubuntu-linux没有回答。
答案1
您已使用命令制作了整个 USB 笔式驱动器的映像dd
。这意味着该映像还包含分区表。
这就是为什么您不能将图像直接作为文件系统挂载的原因。
要在映像内挂载文件系统,您需要使用kpartx
实用程序从映像中的分区表生成虚拟设备。
kpartx -v -a /path/to/image
将在目录中创建新的分区映射/dev/mapper
,这些映射将指向映像内的实际分区。然后,您可以将这些条目用作mount
命令的设备或fsck.vfat
命令。