繁体   English   中英

为什么我的 initramfs 脚本没有运行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM