我在 Arch linux/dev/sda3
上通过ntfs-3g安装了一个 NTFS 分区()。该分区包含一个cee431d2730eb5e1697bd57b3bb529
我要删除的文件。
ls -la
返回以下输出
ls: cannot access 'data/cee431d2730eb5e1697bd57b3bb529': Input/output error
total 16611578
#Some other files...
d????????? ? ? ? ? ? cee431d2730eb5e1697bd57b3bb529
同样file cee431d2730eb5e1697bd57b3bb529
返回cee431d2730eb5e1697bd57b3bb529: cannot open 'cee431d2730eb5e1697bd57b3bb529' (Input/output error)
ls -i
也返回? cee431d2730eb5e1697bd57b3bb529
(它找不到 inode)
我尝试删除它,rm -f
但它也因输入/输出错误而失败(作为 root 用户和普通用户)。
运行ntfsfix /dev/sda3
也没有解决问题。
据我所知,目前还没有用于修复 ntfs 分区的 Linux 工具。
ntfsfix
只是一个技巧,它只是将分区设置为“干净”,但实际上并没有清理它。写入损坏的文件系统会危及其中的数据,我们通常不信任 ntfs,因此我们试图避免进一步的数据损坏,这就是为什么这个工具宁愿选择拒绝删除。
您需要使用不同的操作系统来修复分区。理想情况下,为了避免重新启动 Linux,如果您使用一些具有直接分区访问权限的虚拟化技术将很有用。
我希望这可以帮助一些人。
我有一个带有 NTFS 分区的外部硬盘驱动器连接到 Linux 服务器,上面有一个我无法访问的文件夹。
例如,如果我尝试
cd
进入该文件夹,我会得到Input/output error
.我实际上使用 Windows 10 来解决这个问题,而且它非常简单:
值得庆幸的是,它在重新插入 Linux 时也能正常工作。