当多个 cpio 档案连接在一起时如何跳过 cpio 档案

当多个 cpio 档案连接在一起时如何跳过 cpio 档案

当执行update-initramfs -u最终将调用的/usr/sbin/mkinitramfs变量__TMPEARLYCPIO将指向前置到最终的 initramfs。对于 AMD 系统,它似乎由未压缩的 cpio 存档组成,其中只有一个文件kernel/x86/microcode/AuthenticAMD.bin。在第一个 cpio 部分之后,真正的 initramfs 启动,但是由于前置部分,简单zcat /boot/initramfsfile | cpio --extract现在不再起作用。

  • 我如何去掉第一个前置的 cpio?我如何计算一个 cpio 档案的大小?

答案1

正如暗示的那样这里 dracut's skipcpio 可以达到这个目的:跳过cpio.然后我可以像这样使用它:

skipcpio /boot/initrd.img-4.12.0-rc6-custom > initrd.img-4.12.0-rc6-custom.real
zcat initrd.img-4.12.0-rc6-custom.real | cpio --extract

skipcpio跳过第一个(非压缩)ASCII cpio 块并打印其余部分。如果添加了两个固件 blob,则必须运行两次。

相关内容