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



运行 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,你可以在其中手动运行脚本。为了获得更快的调试周期,您可以使用虚拟机。

相关内容

  • 没有找到相关文章

最新更新