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

bmk*_*bmk 18 linux filesystems ext4 mount inode

我试图挂载以前只读挂载的文件系统read-writeable

mount -o remount,rw /mountpoint
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有工作:

mount: /mountpoint not mounted already, or bad option
Run Code Online (Sandbox Code Playgroud)

dmesg 报告:

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

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))
Run Code Online (Sandbox Code Playgroud)

不幸的是没有lsoffuser不显示位于挂载点下的任何进程访问的东西。

那么 - 我怎样才能清理这个未处理的孤立列表,以便能够在不重新启动计算机的情况下再次挂载文件系统?

Ric*_*ler 31

如果您使用的是 ext2 / ext3 / ext4,您应该可以e2fsck用来清理孤立的 inode:

e2fsck -f

对于 reiserfs,您可以使用reiserfsckwhich 也将清理孤立的 inode。

  • 非常感谢。。我花了几个小时找出错误。执行 'e2fsck -f /dev/sda1' 为我修复了孤立节点以及其他一些修复。我只是对所有人说是,现在工作正常:) (2认同)
  • 完美,在根分区上为我工作。接受的答案(重新启动)不能单独工作。我确实必须在 e2fsck 之后重新启动,所以看起来你仍然需要一个维护窗口。 (2认同)
  • 比公认的更好的答案。这对我的 VPS 非常有效。发现了很多错误并修复了它,然后重新启动,一切又重新运行。拯救了我的一天。 (2认同)

Gan*_*nan 7

e2fsck -f <mount point> 不会工作。

首先找出挂载点

sudo mount -l
Run Code Online (Sandbox Code Playgroud)

然后直接fsck驱动。

例如对我来说

sudo e2fsck -f /dev/xvda2
Run Code Online (Sandbox Code Playgroud)

  • 当您在 google 上搜索问题并在 stackoverflow 上找到您自己的解决方案时。我的人生现在圆满了。 (3认同)

Mic*_*ton 6

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

来自 linux-ext4 邮件列表的扩展讨论包含有关此消息是什么以及它为什么会出现的更多信息。简而言之,发生了两件事之一:要么您遇到了内核错误,要么更有可能是在您之前以只读方式重新安装文件系统时发生了某些文件系统损坏。这可能就是为什么系统认为某些东西在没有文件系统时仍在使用的原因。

如果已经一年了,你没有重新启动机器,那就放弃并安排一个维护窗口。