TL; DR:使用ext4文件系统格式化外部硬盘驱动器,使用fsck对其进行修复,并lost+found
在其中包含数千个不需要的文件的目录。我知道lost+found
无法删除,但是如何清除这些不需要的文件,并确保fsck在重新启动时不会再次填充这些相同的文件?
我已经阅读了以下相关链接:
但无法找到解决我问题的方法。
我购买了一个新驱动器,并在其上加载了GB的数据,但又想从头开始,因此我通过删除了该驱动器上的所有文件$ rm -rf ./*
。然后,我注意到该驱动器已格式化为FAT驱动器,并且我只需要ext4分区,因此我使用parted来格式化驱动器(/dev/sda
):
$ sudo parted /dev/sda
(parted) p
<some output indicating 2 partitions on the drive>
(parted) rm 1
(parted) rm 2
(parted) p
<I verify that there are no more partitions>
(parted) mklabel gpt
<parted tells me that there's an existing filesystem that will be overwritten and I confirm>
(parted) mkpart primary ext4 0% 100%
<confirmation stuff as well>
(parted) p
<verify that all is as it should be... or so I thought>
(parted) q
退出并尝试挂载设备后,我无法挂载新分区。检查文件系统后,我发现该分区已损坏并尝试使用$ sudo fsck -y /dev/sda1
(sda1是驱动器上新的唯一分区,格式为ext4)。这经历了并将分区格式化为ext2,所以我回过头来,使用parted和try重复了重新格式化的步骤$ sudo fsck -yt ext4 /dev/sda1
,看来效果很好。
我现在可以挂载文件系统,并且它仍然是ext4。但是,lost+found
驱动器中现在有一个包含数千个文件的目录。它由root:root拥有,即使带有$ sudo rm -rf lost+found
,我也无法删除它。rm: cannot remove '#<name of file>': Operation not permitted
对于我尝试删除的每个文件,它都会不断吐出。chmod和chown都无法帮助删除位于lost + found目录中的文件。
然后$ sudo su
,我尝试了一下,以便可以使用# cd lost+found
并检查文件的属性,# lsattr
但是即使以root身份,我也仍然可以获取lsattr: Operation not supported While reading flags on ./#<name of the file>
。
我不需要系统上的任何文件。我在本地计算机和主机之间使用rsync玩弄,这些都是我删除的所有文件。我知道我不需要任何这些文件(除了本地计算机上存在的所有这些文件之外,我还有其他备份),所以我只想摆脱这个简陋的lost+found
目录,但是它非常顽固。
因此,尽管如此:
我应该怎么办?我下一步要做什么?我应该从程序输出中提供更多信息来帮助解决这一问题吗?
重新格式化驱动器会更容易吗?我已经尝试过两次,但是每次都不会没有它就挂载$ fsck -t ext4 /dev/sda1
(我也将-y
标志包含在其中,因为我不想坐在它需要的数百万次确认中),然后我再次回到这里。我知道这些lost+found
文件是由fsck程序生成的,因为我将-y
选项传递给了它:输出的某些部分指定“驱动器上存在现有数据,可以对其进行恢复,因此应将fsck
这些文件移至lost+found
?” 并自动传递肯定的信息,因此创建目录并填充了这数千个文件。是否因为我将此分区指定为主分区?应该扩展它(仅保存数据文件)吗?
任何帮助,将不胜感激!尽管文件不会占用硬盘空间(〜1%),但我希望能帮助您解决这一问题,因为我想了解为什么即使root用户也无法删除这些文件,以及我在这样做的错误之处格式化我每次都在这里结束的驱动器。
编辑:
以root用户身份登录后$ sudo su
,我可以查看其中的文件,lost+found
并尝试测试lost+found
目录本身以查找锁定该目录的进程以及该目录中的第一个文件,以查看是否使用了该文件:
$ sudo su
# lsof lost+found
<no output>
# fuser lost+found
<no output>
# lsof lost+found/#51817
<no output>
# fuser lost+found/#51817
<no output>
看起来没有其他任何进程正在锁定这些文件。使用进行检查时# lsattr
,有几个带有该i
标志的文件,但是还有许多没有该标志的文件。
此外,正如@PabloBianchi在评论中指出的那样,由于ext *格式的文件系统将始终具有lost+found
目录,因此我通过修改标题来澄清了这个问题:除了删除该目录之外,我如何清除它,以便清除我知道的文件不需要恢复吗?不要在驱动器上浪费空间吗?
制作ext4类型的分区不会将ext4文件系统放到该分区上。您得到的可能是先前文件系统中的剩余材料/垃圾。制作分区后,使用以下命令在其上放置文件系统:
sudo mkfs.ext4 /dev/sda1
那应该是一个空文件系统,上面只有空的lost + found目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句