如果从自定义脚本执行 poweroff 命令,initramfs 将停止

问题描述

我已经从 debian 10 复制并修改了 initrd 映像 (/boot/initrd.img-4.19.0-5-amd64) 并在 scripts/init-top 中添加了我的自定义脚本/ 目录。 在脚本的最后一部分,我正在执行 poweroff -f 命令,并且在执行 poweroff -f 后的引导时,引导被 reboot: system halted 停止并停留在那里。 但是,如果我将 poweroff -f 替换为 reboot -f,那么系统会重新启动并正常运行。 过去,我对来自 Debian 9 的 initrd 映像(无法回忆版本)做了同样的事情,在那里我将相同的脚本与 poweroff -f 放在一起,但我没有发现任何问题。

现在关于我的自定义 shell 脚本,它装载和更改根磁盘(来自已经复制到旧根磁盘中的 qcow2)并卸载它。 我为将脚本放入 initrd 所做的更改如下,

$ mkdir custom_init
$ cd custom_init
$ zcat ../initrd.img-4.19.0-5-amd64 | cpio -idmv
$ cp ../custom_script scripts/init-top/
$ vi scripts/init-top/ORDER
-- append "scripts/init-top/custom_script" at the last and save
$ find . | cpio -o -H newc | gzip -9 > ../initrd.img-amd64-custom

我对此很陌生,并遵循我为 Debian 9 所做的相同过程。我知道两个 Debian 版本之间可能存在很多差异,但我正在寻找一种方法来从我的自定义脚本中关闭 VM . 这个 initrd 将在没有根设备(在 /boot/grub/grub.conf 中指定)的情况下启动,因为这样做的目的是用新的 qcow2 替换根磁盘。 有没有办法做到这一点?或者我在这里做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)