我的 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
这些示例将使用 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