我有一个损坏的FAT文件系统的USB笔式驱动器。 现在我尝试修复它。 因此,首先尝试从中获得的东西,而不会进一步危害原始硬件,我使用以下命令行使用dd创build了一个映像:
$ 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没有给出答案。
你用你的dd命令制作了你的整个USB随身碟的图像。 这意味着该映像还包含一个分区表。
这就是为什么你不能直接将图像作为文件系统安装的原因。
要在映像中安装文件系统,您需要使用kpartx实用程序从映像中的分区表中生成虚拟设备。
kpartx -v -a /path/to/image
将在/dev/mapper目录中创build新的分区映射,这将指向映像中的实际分区。 然后,您可以将这些条目用作mount命令或fsck.vfat命令的设备。