我可以看到我的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
目录。