如何卸载 / ?很忙

Hap*_*per 6 mount ubuntu umount

我正在尝试使用 zerofree,这似乎是这个问题的答案:How to reduce VM size?

我已经成功卸载了 /dev/sda1,并且 zerofree 工作正常,释放了 ~37gb。

但我似乎无法卸载或重新挂载为只读 /dev/mapper/mypc-root,它说:

umount: / is busy
Run Code Online (Sandbox Code Playgroud)

或者

mount: / is busy
Run Code Online (Sandbox Code Playgroud)

使用的命令是:

$ umount /dev/mapper/mypc-root
$ mount -no remount,ro -t ext2 /dev/mapper/mypc-root /
Run Code Online (Sandbox Code Playgroud)

我处于单用户模式,使用“init 1”输入。

来宾 SO 是 Ubuntu 12,带有加密的 LVM 和 home。

有任何想法吗?

Ren*_*nan 7

/不能从系统中卸载,因为/系统本身正在使用(因此是您看到的消息)。

您需要从 Live-CD 执行此过程。

  • 它不能被卸载,但如果在写模式 open 下没有打开的文件,它可以以只读方式重新挂载。 (7认同)

Voj*_*ech 5

当您删除了根文件系统上的文件但仍打开文件时,通常会发生这种情况。某些进程保留对文件的引用,并且在关闭之前无法在磁盘上释放它。更新系统库是造成这种情况的一种方法。

由于处于干净状态的文件系统无法包含已删除但未释放的文件,因此内核将拒绝重新挂载只读文件系统。

重新启动这些进程会有所帮助。它允许内核释放文件,并且可以干净地卸载文件系统。

另一种选择是使用 SysRq 键强制进行只读重新安装:

echo u > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

这是安全的,但会导致内核/fsck 在下次挂载/运行时抱怨。