我正在将数据写入外部 exFAT 硬盘时,系统电源中断。这对我的主驱动器来说不是问题,因为它使用日志记录并恢复正常。我的问题出在写入的外部硬盘上。我正在将 tarball 写入外部驱动器(大约 1TB 时中断)。重新启动后,ls -la 报告目标文件大小为 0 B,但 df 仍显示大约 1TB 已被占用。事故发生后第一次安装驱动器时,exFat fuse 出现错误“未正确卸载”,但现在此错误不再出现。
TLDR:断电后,df 和 du 之间约有 1TB 的差异(我正在编写的 Tarball)
我到目前为止尝试过的:
exfatfsck:未发现错误,已用空间与 df 一样高(包括未列出的文件)
删除 0B 文件:有效,但没有改变 df、du 差异。
我不需要 tarball(源文件仍在我的主驱动器上),但驱动器上还有其他文件,我想保留它们。有办法修复损坏吗?我真的很想修复损坏,因为磁盘上的其他文件相当大,在格式化驱动器之前卸载它们会很不方便。
我正在运行 Ubuntu Server 18.04.5 LTS
感谢您的时间和帮助=)
答案1
Linux 在其最新内核中原生支持 extfat。而且文件格式相当简单。因此,在 Linux 上进行维护和修复应该完全可行。
请参阅man fsck.exfat
(假设已安装该工具)了解选项。要有效地进行修复,即删除无效目录项并恢复或丢弃丢失的簇,请使用选项-r
(“以交互方式修复文件系统。”)、-y
选项(“对所有问题都回答是,则修复文件系统。”)或选项-p
(“如果可以安全地完成,则无需用户交互即可修复文件系统。”)。例如,如果您的 exfat 分区称为/dev/sdc1
,您将首先卸载该分区,然后执行检查:
sudo umount /dev/sdc1
sudo fsck.exfat -r /dev/sdc1
答案2
fsck.exfat
在 Linux 中,它并不总是修复 exFAT 错误的最佳工具。您还应该chkdsk
在 Windows 中尝试,看看它是否更适合您。