首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubuntu Xenial中cpio对initrd的错误解压

Ubuntu Xenial中cpio对initrd的错误解压
EN

Server Fault用户
提问于 2017-09-29 13:31:19
回答 1查看 3.6K关注 0票数 4

我正在试图解压initrd映像:

代码语言:javascript
运行
复制
# file /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic: ASCII cpio archive (SVR4 with no CRC)
# mkdir /tmp/initrd; cd /tmp/initrd
# cpio -i -d -H newc --no-absolute-filenames -F /boot/initrd.img-4.11.0-14-generic
194 blocks
# ls -R
.:
kernel

./kernel:
x86

./kernel/x86:
microcode

./kernel/x86/microcode:
GenuineIntel.bin

因此,cpio只提取存档的./kernel子目录。但是lsinitramfs显示了更多的文件:

代码语言:javascript
运行
复制
# lsinitramfs /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
.
lib
lib/libnss_files.so.2
lib/cryptsetup

...

bin/egrep
init
run

我怎样才能得到所有的档案内容?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-01-19 20:10:07

当您安装了intel-microcode (您已经安装了)和/或and 64-micrcocode时,initrd由两个连接的映像组成。第一个图像只包含微码。第二部分包含了其他所有内容。您的cpio命令只提取第一个命令。

最简单的方法是使用initramfs中的unmkinitramfs -tools >= 0.126,它包含在Ubuntu18.04(仿生)和更新版中。在xenial上,您只需克隆https://salsa.debian.org/kernel-team/initramfs-tools并从这个目录调用unmkinitramfs

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/876140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档