0

我已经从 debian 10 复制并修改了 initrd 映像(/boot/initrd.img-4.19.0-5-amd64),并将我的自定义脚本添加到scripts/init-top/目录中。在脚本的最后一部分,我正在执行poweroff -f命令,并且在执行命令后启动时,poweroff -f启动会停止reboot: system halted并停留在那里。但是,如果我将其替换为poweroff -freboot -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 替换根磁盘。有没有办法做到这一点?或者我在这里做错了什么?

4

0 回答 0