我的文件系统上有一个无法删除的目录。我努力了
rm -rf 我的目录
但该目录仍然存在。所以我跑了
统计我的_目录
它返回以下内容:
-bash-3.2$ stat My_dir
File: `My_dir'
Size: 0 Blocks: 0 IO Block: 4096 directory
Device: 801h/2049d Inode: 191961 Links: 4294967278
Access: (0777/drwxrwxrwx) Uid: ( 48/ apache) Gid: ( 100/ users)
Access: 2017-02-25 21:49:02.000000000 +0000
Modify: 2017-02-25 22:19:45.000000000 +0000
Change: 2017-02-26 05:03:46.000000000 +0000
正如您所看到的,该目录有大量链接,因此我认为它可能已损坏。所以我开始运行 fsck,因为我希望它能够直接发现并解决问题,但是,它返回了
-bash-3.2$ /sbin/fsck /dev/sda1
fsck 1.39 (29-May-2006)
Refusing to operate on read-write mounted device /dev/sda1.
然后尝试
卸载/dev/sda1
回
umount: /my_device: 设备正忙
我想知道我是否可以绕过整个 fsck 业务并以其他方式强制删除?
(顺便说一句,我在这个世界上有点新手)
编辑#1
我已经使用 sudo 来推送命令了。但问题仍然存在。
作为更新。重新启动包含损坏文件夹的驱动器后,问题目录在调用 stat 后似乎返回以下内容:
File: `My_dir'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 191961 Links: 1
Access: (0777/drwxrwxrwx) Uid: ( 48/ apache) Gid: ( 100/ users)
Access: 2016-11-04 10:29:27.000000000 +0000
Modify: 2016-11-04 10:30:06.000000000 +0000
Change: 2016-11-04 10:30:06.000000000 +0000
然而,执行后
ls -l |较少的
为了尝试转义任何隐藏字符,问题又回来了
File: `My_dir'
Size: 0 Blocks: 0 IO Block: 4096 directory
Device: 801h/2049d Inode: 191961 Links: 4294967295
Access: (0777/drwxrwxrwx) Uid: ( 48/ apache) Gid: ( 100/ users)
Access: 2016-11-04 10:29:27.000000000 +0000
Modify: 2017-02-26 10:29:15.000000000 +0000
Change: 2017-02-26 10:30:36.000000000 +0000
请注意时间戳以及它们有何不同...感到困惑吗?
答案1
这可能是比您正在寻找的更基本的答案,但如果您还没有,我建议使用 sudo 或以 root 身份运行它,以确保不存在一些晦涩的、意外的或愚蠢的文件权限问题妨碍了您。祝你好运!
答案2
是的,它看起来像一个损坏的文件系统。使用恢复或实时 Linux 启动您的系统grml.org
,然后再次启动fsck
。但要注意,如果fsck
修复文件系统,可能会清除许多文件。之前将重要文件保存rsync
到另一个主机或卷。最好排除损坏的目录!
# mount -o ro /dev/sda1 /mnt
# rsync -av --exclude="*/My_dir/*" /mnt/ /usb-drive/backup/
# umount /mnt
# fsck /dev/sda1