[英]Why is my initramfs script not being run?
运行 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,你可以在其中手动运行你的脚本。 为了更快的调试周期,您可以使用虚拟机。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.