如何修复损坏的FAT32文件系统


109

我正在为笔式驱动器使用FAT32文件系统。它经常有文件/数据损坏。

在Windows中,我使用扫描磁盘实用程序来修复FAT32 / NTFS文件系统。如何在Ubuntu中做到这一点?


3
你安全弹出吗?
ζ--

Answers:


125

尝试在Linux终端中键入以下命令:

sudo dosfsck -w -r -l -a -v -t /dev/sdc1

sdc1通常是您的随身碟。您可以通过在终端中输入mount来找到您的笔式驱动器。在里面 如果该命令花费了您太多时间,请避免使用-t开关。

  • -w 表示立即写入磁盘。
  • -r表示以交互方式进行磁盘检查(遇到错误时询问您怎么做)。在新版本的dosfsck中,这是默认设置。
  • -l 表示列出已处理的文件名。
  • -a表示自动修复错误。如果您想更好地控制可能的错误,请不要使用它。
  • -v表示详细模式。产生更多的输出。
  • -t 表示将不可读的群集标记为不良。

如果要确保不会丢失数据,请首先创建源设备的备份。


除了FAT32以外,此命令还可以修复其他哪些文件系统?
Shaharil Ahmad

@ShaharilAhmad FAT16,也许仍然可以使用。例如,我有一个带FAT16的迷你2GB SD卡。
凯基

但是,如果我不执行-t,那么下一次它将再次尝试使用坏群集吗?
凯基

“当前仅支持1或2个FAT,而不是0。”
亚伦·弗兰克

不要使用-a,但是我不明白该如何回答它问我的一半问题!
迈克尔

51

您可以尝试Dosfsck,它是dosfstools的组件。

为此,输入终端:

sudo apt-get install dosfstools

要使用Dosfsck,您必须指定所需的设备地址(例如/ dev / sdb1,/ dev / sdb2或其他设备)。

要知道您的设备地址,请打开终端(CTRL + ALT + T),然后运行以下命令:

mount

例如,如果您的分区是/ dev / sdb1,则首先通过运行以下命令将其卸载:

sudo umount /dev/sdb1

现在,您可以通过运行以下命令来验证和修复分区:

sudo dosfsck -t -a -w /dev/sdb1

希望这可以帮助。

注意:

如果您收到以下错误,则无法识别您的USB闪存驱动器:

Error: Buffer I/O error on device sdb1

运行以下命令:

dmesg|tail

如果输出为:

end_request: I/O error, dev sdb1, sector 0
Buffer I/O error on device sdb1, logical block 0

运行以下命令:

sudo dosfsck -t -a /dev/sdb1

当然,您必须像我上面所写的那样更改设备地址。


在13.04执行umount似乎也没有工作,须藤
giuspen

我一直遇到这样的问题:如果在使用外部HDD或笔式驱动器进行操作时未正确断开连接,则权限将变得疯狂,从而使该设备几乎无用。您的回答对我来说真是天赐。非常感谢男人!
阿尔弗雷多·埃尔南德斯


4

dosfsck速查表

这些示例将使用FAT32和/ dev / sdc1

fsck.vfat -n /dev/sdc1 -简单的非交互式只读检查

fsck.vfat -a /dev/sdc1 -检查文件系统并进行非交互式修复。始终使用最小破坏性方法。

fsck.vfat -r /dev/sdc1 -交互式修复。当解决问题的方法不止一种时,总是会提示用户。

fsck.vfat -l -v -a -t /dev/sdc1 -一种非常冗长的非交互式检查和修复文件系统的方式。-t参数会将无法读取的群集标记为错误,从而使新创建的文件和目录无法使用它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.