Filesystems
如何在 Linux 下恢復 Fat32 文件系統
這是發生的事情:
我使用筆記型電腦並訪問了我的 U 盤上的一些數據。然後我關閉了筆記型電腦,使系統進入睡眠模式。USB-Stick 仍然插著。筆記型電腦完全進入睡眠狀態後,我取出了 USB-Stick(燈熄滅了,所以它一定是沒電了)。我今天在沒有 USB 棒的情況下喚醒了筆記型電腦。現在當我重新插入它時,文件系統將不會自動掛載。
我嘗試手動安裝它:
chi mnt # mount -t vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 usb/ mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error Manchmal liefert das Syslog wertvolle Informationen – versuchen Sie dmesg | tail oder so
做一個
dmesg | tail
我發現以下內容:FAT-fs (sdb1): bogus number of FAT structure FAT-fs (sdb1): Can't find a valid FAT filesystem
所以我試著
fsck.vfat
在棒子的分區上做,看看它是否能以某種方式修復它:chi mnt # fsck.vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN Cluster size is zero.
有什麼方法可以使用 linux 工具修復儲存棒上的文件系統嗎?我正在使用gentoo。
也不應該將這種行為視為錯誤或至少是危險的嗎?在系統處於睡眠模式時移除搖桿對我來說聽起來像是一個常見的案例。此外,如果您刪除它,在重新打開系統之前很容易忘記將其放回原處,我認為這不會像這樣殺死您的文件系統。我願意報告這個錯誤,但我不知道哪個郵件列表/錯誤跟踪器是正確的。
編輯:
我在網上找到了一些建議。但是,如果我嘗試使用:
dd if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 of=sector6.bin bs=512 count=1 skip=6 conv=noerror,sync dd if=sector6.bin of=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 bs=512 count=1 conv=noerror,sync,notrunc
之後我仍然遇到同樣的錯誤。我也嘗試
CHKDSK F: \R \T
按照一些文章的建議在 Windows 下使用,但是這個工具只報告驅動器RAW
,因此不受支持。
在對 U 盤進行任何操作之前,您應該對其進行映像:
dd bs=4k of=stick.img if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0
然後你把你的棍子安全地放好,並使用stick.img文件來做你的擺弄,而不是破壞更多的數據。
上面有重要文件嗎?檢查http://www.cgsecurity.org/wiki/PhotoRec以獲取恢復工具。與名稱所暗示的不同,它不僅可以恢復照片。
恢復數據後,請在 U 盤上創建一個新文件系統,因為舊的文件系統不再受您的數據信任。(mkfs.vfat)