我正在尝试使用旧的 Windows NTFS 驱动器作为树莓派上的额外存储。我尝试删除上面的所有内容,但遇到一个问题,无法删除两个损坏的链接。我可以完全格式化驱动器,但想知道在退出之前是否有解决方案。
我将驱动器读写安装到 /media/pi/hdd 并运行
cd /media/pi/hdd
rm -v -r *
最终,除了以下目录中的两个文件之外,所有内容都被删除:程序\ 文件/WindowsApps/Microsoft.MicrosoftOfficeHub_17.8830.7600.0_x86__8wekyb3d8bbwe/VFS/
列出该目录的内容:
ls -l
lrwxrwxrwx 1 root root 26 Feb 10 2018 ProgramFilesCommonX86 -> unsupported reparse point
lrwxrwxrwx 1 root root 26 Feb 10 2018 SystemX86 -> unsupported reparse point
如果我执行“touch foo”,结果会改变:
ls: cannot access 'ProgramFilesCommonX86': Input/output error
ls: cannot access 'SystemX86': Input/output error
total 0
-rwxrwxrwx 1 root root 0 Aug 28 19:59 foo
d????????? ? ? ? ? ? ProgramFilesCommonX86
d????????? ? ? ? ? ? SystemX86
我已尝试以下命令但无济于事:
rm -rfd *
# rm: cannot remove 'ProgramFilesCommonX86': Directory not empty
# rm: cannot remove 'SystemX86': Directory not empty
unlink ProgramFilesCommonX86
# unlink: cannot unlink 'ProgramFilesCommonX86': Directory not empty
天才的想法:尝试覆盖另一个文件的链接,但这也不起作用。
touch foo
ln -sfn foo ProgramFilesCommonX86
# ln: cannot remove 'ProgramFilesCommonX86': Directory not empty
这是一个与 NTFS 相关的特定问题,因为我处于 Linux 环境中而无法修复吗?或者是否有我忽略的命令或开关,或者完全是其他东西?
编辑(半答案):我没有在Linux环境中找到解决方案。
我使用 Windows chkdsk 命令修复所有错误,然后在将所有者更改为自己后,在 Windows 中手动删除这两个文件/链接/目录。
尽管这解决了问题,但 chkdsk 命令在 $RECYCLE.BIN 下创建了另一个具有相同问题的文件/链接。我无法删除该文件,因为它没有显示在 Windows 文件资源管理器中,而且我不知道如何通过命令行更改所有者。
应该从一开始就格式化它。