问题描述
我已经从 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 (将#修改为@)