无法删除 NTFS 分区上的文件,事件为 root

无法删除 NTFS 分区上的文件,事件为 root

我有一个双启动系统,并使用 NTFS 分区作为 Windows 7 和 Ubuntu 之间的通用存储。

最近,该分区在 Windows 启动时出现 CHKDSK 提示,因此我认为这是驱动器故障的症状。因此,我将驱动器克隆到更大的 1TB 驱动器,并在 Linux 中调整了分区大小。

尽管如此,CHKDSK 提示仍然会出现,但这次扫描中打印出了一些文件名,后来在完成 50% 时冻结了。这些文件是一组 Perl 脚本,我几年前用它们创建了一个自动全景图生成脚本。

现在,当我尝试rm -r *在保存文件的文件夹中时,我得到了

jason@asus:/media/Storage/Programming/Libraries/Linux$ rm -r *
rm: cannot remove `Image-Size-3.232/blib/man3/Image::Size.3pm': No such file or directory
rm: cannot remove `Panotools-Script-0.26/blib/man3/Panotools::Makefile.3pm': No such file or directory
rm: cannot remove `Panotools-Script-0.26/blib/man3/Panotools::Makefile::Comment.3pm': No such file or directory
rm: cannot remove `Panotools-Script-0.26/blib/man3/Panotools::Makefile::Rule.3pm': No such file or directory
rm: cannot remove `Panotools-Script-0.26/blib/man3/Panotools::Makefile::Utils.3pm': No such file or directory
...
...

现在,在里面Image-Size-3.232/blib/man3/,我执行了ls -il打印出来的内容

3723 -rwxrwxrwx 0 root root 25473 Jun 19  2012 Image::Size.3pm

现在,stat 3723打印出

jason@asus:/media/Storage/Programming/Libraries/Linux/Image-Size-3.232/blib/man3$ stat 3723
stat: cannot stat `3723': No such file or directory

如何删除这些迄今为止已被证明对任何常规删除功能都防火的文件?

答案1

不幸的是,您无法安全可靠地从 Linux 中删除它们,特别是如果您经常在 Linux 和 Windows 之间来回切换。

这是因为带有冒号的文件名对于 NTFS 规范的 Microsoft 变体无效,但使用 Tuxera 的 ntfs-3g 默认挂载选项有效。 此问题中的更多信息。

运行 Microsoft 的 时要非常小心chkdsk,因为它会认为所有带冒号的文件名无效,并立即删除它们(而不是更改文件名并保留数据)。

不幸的是,这是我所知道的删除文件并将文件系统返回到干净状态的唯一方法。

答案2

我不会浪费时间尝试删除文件,而是尝试通过应用程序运行磁盘,例如HDAT(免费软件)或可能旋晶体(商业的)。

此外,您还可以检查硬盘的 SMART 信息:

$ smartctl --all /dev/{hd?,sd?}

这不会解决任何问题,但会让您知道驱动器的运行状况是否出现问题。

相关内容