如何清理未处理的孤立 inode 列表?

如何清理未处理的孤立 inode 列表?

我尝试安装一个以前只读挂载的文件系统可读写

mount -o remount,rw /mountpoint

不幸的是它没有起作用:

mount: /mountpoint not mounted already, or bad option

dmesg报告:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

Aumount也不起作用:

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

不幸的是,两者都lsof没有fuser显示任何访问挂载点下某个内容的进程。

那么 - 我该如何清理它未处理的孤儿名单无需重新启动计算机就可以再次挂载文件系统?

答案1

您可以通过卸载并重新挂载文件系统来清理未处理的孤立 inode 列表。

一个延伸讨论来自 linux-ext4 邮件列表的 有更多关于此消息是什么以及为什么会出现的信息。简而言之,发生了以下两种情况之一:要么您遇到了内核错误,要么更可能的情况是,在您之前以只读方式重新挂载文件系统时发生了一些文件系统损坏。这可能就是为什么系统认为某些东西仍在使用文件系统,但实际上并没有。

如果已经过去一年了,你仍然还没有重新启动机器,只是放弃并安排维护窗口。

答案2

如果您使用的是 ext2 / ext3 / ext4,您应该能够使用以下命令e2fsck清理孤立的 inode:

e2fsck -f

对于 reiserfs,您可以使用reiserfsck它来清理孤立的 inode。

答案3

e2fsck -f <mount point>不起作用。

首先使用以下命令找出挂载点

sudo mount -l

然后直接 fsck 该驱动器。

例如对我来说

sudo e2fsck -f /dev/xvda2

答案4

您可能应该尝试延迟卸载,例如:

umount -l

相关内容