我有一个带有损坏的 FAT 文件系统的 USB 笔式驱动器。现在我尝试修复它。因此,为了首先尝试我可以从中获得什么而不进一步危及原始硬件,我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 a filesystem in a file但这是关于 ext2。https://superuser.com/questions/129189/cant-mount-fat32-drive-under-ubuntu-linux也没有给出答案。
您已经使用
dd
命令制作了整个 USB 笔式驱动器的映像。这意味着该映像还包括一个分区表。这就是为什么您不能将映像直接挂载为文件系统的原因。
要在映像中挂载文件系统,您需要使用
kpartx
实用程序从映像中的分区表生成虚拟设备。将在您的目录中创建新的分区映射
/dev/mapper
,该映射将指向映像中的实际分区。然后,您可以将这些条目用作mount
命令或fsck.vfat
命令的设备。