运行 Ubuntu 18.04 LTS. 我在以下位置放置了一个脚本:
/usr/share/initramfs-tools/scripts/init-bottom/dothis
dothis
设置为 +x。 我已经运行了sudo update-initramfs -u
它似乎可以很好地更新 initramfs 内容。 我查看了/boot/grub/grub.cfg
并看到了配置的预期 initrd 文件。
在文件上运行lsinitramfs
确实显示脚本已添加。
但是,我找不到任何证据表明dothis
正在启动时运行。 根据在线文档,在运行/init-bottom
脚本时,根文件系统应该已经到位,这应该是我的"hello world"工作所需的唯一内容,因为它输出到根文件系统上的文件。
是否需要执行其他步骤才能运行此脚本或显示它是否正在运行? 我尝试简单地将文本输出到/tmp 中的文件,但这也没有显示。
由于您没有提供更多细节,我不得不猜测。您的dothis
脚本是否写入 initramfs 内部的/tmp
?根文件系统挂载在/root
,initramfs 使用switch_root
切换到它(作为 initramfs 的最后一步(。然后,写入/tmp
的所有文件都将丢失。如果让脚本写入/root/root/log
,则此文件将显示在引导系统上的/root/log
中。
要进一步调试您的问题,您可以使用内核参数break=bottom
引导系统。然后你会得到一个 shell,你可以在其中手动运行脚本。为了获得更快的调试周期,您可以使用虚拟机。