在内核 5.4 中提取“initrd”存档时出现问题

在内核 5.4 中提取“initrd”存档时出现问题

我可以看到我的initrd文件占用了近 90 MB 的磁盘空间,但通过解压后cpio,它只包含一个 30 KB 的微代码:

$ cpio -it < initrd.img-5.4.0-18-generic 
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
62 blocks

我知道内核在启动的第一阶段需要很多文件和工具,但我找不到任何有用的东西。

$ file initrd.img-5.4.0-18-generic 
initrd.img-5.4.0-18-generic: ASCII cpio archive (SVR4 with no CRC)

我看了一下这里这里这个问题但这些太旧了,对我不起作用。我initrd.img的不是gzip档案。
如何正确提取该文件?
我使用内核 v.5.4.0

谢谢。

答案1

initramfs图像包含多个cpio档案;文件的名称表明您正在使用 Ubuntu 衍生版本,因此列出完整内容的最简单选项是使用lsinitramfs

lsinitramfs initrd.img-5.4.0-18-generic

要提取内容,请使用unmkinitramfs

unmkinitramfs initrd.img-5.4.0-18-generic initramfs

这会将所有文件提取到该initramfs目录。

相关内容