因此,我尝试将我的 initrd 拆分为两个 initrd。有一些非常重要的脚本在 initrd 中运行,我们希望拆分 initrd,以便我们能够只修改逻辑或内核部分。
作为单个 initrd,它可以正常启动。但是,当我将其分成两部分时,出现错误:
RAMDISK: incomplete write (-28 != 8388608)
grub 菜单项的 initrd 如下所示:
initrd /initramfs-scripts.img /initramfs-kernel.img
我找不到任何有关使用两个 initrd 的文档。到目前为止我发现的都是这:stackexchange问题, 和这:grub bug。但是,它并没有让我知道我做错了什么。
答案1
我不确定这是否符合完整的答案,但是 pygrub 和 initramfs 有一些奇怪的行为。它似乎在末尾附加了几个字节。字节被清零,因此 cpio 不会关心它们。但是,我们对 initramfs 进行了加密,因此解密算法也会进行加密。