5 linux shutdown unmounting loop-device root-filesystem
我正在尝试设置一个从 LVM 格式的图像文件运行的 Linux 系统。在对 initramfs 和引导选项进行一些修改后,我设法通过将主机文件系统挂载到/run/initramfs/host、losetup将映像/dev/loop0加载到并确保内核和 udev 检测到 LVM(和根 LV)来使其启动并运行。到现在为止还挺好。
问题是,当关闭(或重新启动,或……)系统时,根文件系统和主机都没有正确卸载,因为鸡与蛋的场景:根(或/oldroot,如关闭所指的那样) script) 不能卸载,因为/oldroot/run/initramfs/host它仍然被挂载,并且主机不能被卸载,因为这样做会导致/oldroot无法访问。
不fsck干净的关机并不是世界末日,因为两个文件系统都被记录在日志中,所以在下次启动时只需重播日志,但显然干净的关机会更好。
所以问题是:是否有可能以某种方式安排关机顺序(我可以修改关机脚本)或启动顺序(也许通过将主机挂载点移动到不同的位置),以便可以干净地卸载两个文件系统?
小智 4
如果有人遇到同样的问题:
我所需要的只是在进行任何卸载之前,在关闭脚本中将主机文件系统的挂载点移动到根文件系统之外的位置(这很好,因为它在枢轴根中运行tmpfs):
mount --move /oldroot/run/initramfs/host /host
Run Code Online (Sandbox Code Playgroud)
这样可以/oldroot干净地卸载。然后可以使用简单的命令卸载主机文件系统
umount /host
Run Code Online (Sandbox Code Playgroud)