exFAT 卸载错误导致文件丢失,我无法删除

exFAT 卸载错误导致文件丢失,我无法删除

我正在将数据写入外部 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 中尝试,看看它是否更适合您。

答案3

解决 exFAT 问题的最佳选择可能是使用校验在 Windows 上。

chkdsk E: /x /f /freeorphanedchains

再加上反复的磁盘清理,我又恢复了 6.5TB

相关内容