Filesystems

修復映像上的 FAT 文件系統

  • October 14, 2016

我有一個帶有損壞的 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實用程序從映像中的分區表生成虛擬設備。

kpartx -v -a /path/to/image

將在您的目錄中創建新的分區映射/dev/mapper,該映射將指向映像中的實際分區。然後,您可以將這些條目用作mount命令或fsck.vfat命令的設備。

引用自:https://serverfault.com/questions/809065