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

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

在Windows中,我使用扫描磁盘实用程序来修复FAT32 / NTFS文件系统。 我怎么能在Ubuntu中这样做?

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

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

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

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

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

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

为此,输入终端:

 sudo apt-get install dosfstools 

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

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

 mount 

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

 sudo umount /dev/sdb1 

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

 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 

当然,您必须根据需要更改设备地址,就像我上面写的那样。

还试试:

 fsck.vfat -r /dev/sdXn 

dosfsck cheatsheet

这些示例将使用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参数将不可读的簇标记为坏,从而使它们对新创建的文件和目录不可用。