我的硬盘经常会出现孤立的索引文件,从而无法删除其中的目录。
我使用的是 Ubuntu 22,所以我尝试运行 fsck ( sudo fsck /dev/sdb2
),它所做的只是返回成功状态代码并向终端打印“fsck from util-liinux 2.37.2”。没有延迟,好像实际上没有进程检查文件等。但问题仍然存在。
因此,我切换到 Windows 11(双启动,有问题的硬盘是单独的 HDD,而不是启动驱动器)并运行 chkdsk 命令来执行相同的操作(chkdsk E: /f
),该命令实际上会运行一系列检查,甚至通过删除所有孤立索引来解决问题。我切换回 Ubuntu,瞧,我可以删除我想要的目录。
为什么 fsck 在这里不执行任何操作?
在涉及SMB、ACPI以及NTFS文件系统等专有 Microsoft 技术时,Linux 有着悠久而麻烦的历史。
为了支持文件系统,您必须安装知道如何使用它的驱动程序。在 Linux 中,有两种常用驱动程序,较旧的NTFS-3g和较新的NTFS3。大多数常见发行版都附带其中一种或两种供开箱即用(它们有一些不同的用例,因此不妨同时使用两种)。
NTFS-3g 自 2007 年以来一直支持读写,但大多数发行版多年来都将其限制为只读操作,许多人出于对成熟度的担忧而拒绝使用它,并且强烈建议用户不要在他们关心的任何磁盘上启用写入操作。即使在今天,当 NTFS 的 RW 操作通常默认启用时,NTFS-3G 及其支持实用程序也无法 100% 与 Microsoft 实现相提并论。事实上,我不会惊讶地发现您遇到的孤立索引问题是由 Linux 使用文件系统引起的。
根据常见问题解答, NTFS3 尚未提供免费的磁盘维护实用程序。
NTFS-3G 附带一个名为ntfsfix的包,可以通过
fsck
(fsck.ntfs)调用。ntfsfix
但是它的文档中说得很清楚:因此,
fsck
只能执行chkdsk
文件系统修复时使用的修复操作的子集,并且具体到您的情况,检查和修复孤立索引就是其中一个差距。