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

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

我的 U 盘使用的是 FAT32 文件系统。它经常出现文件/数据损坏的情况。

在 Windows 中,我使用扫描磁盘实用程序修复了 FAT32/NTFS 文件系统。如何在 Ubuntu 中执行此操作?

答案1

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

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

sdc1通常是您的 U 盘。您可以通过输入以下内容找到您的 U 盘在终端中。它在里面的某个地方。如果该命令对你来说花费太多时间,请避免-t转变。

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

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

答案2

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

为此,在终端中输入:

sudo apt-get install dosfstools

使用杜斯夫斯克,您必须指出您想要的设备地址(例如 /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

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

答案3

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

答案4

也可以尝试:

fsck.vfat -r /dev/sdXn

相关内容