我有一个双启动系统,并使用 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
,因为它会认为所有带冒号的文件名无效,并立即删除它们(而不是更改文件名并保留数据)。
不幸的是,这是我所知道的删除文件并将文件系统返回到干净状态的唯一方法。