initramfs 解压方法

最近在学习 鸟哥私房菜第19章文章在分析Boot Loader 过程中, 提到到了虚拟档案系统(Initial RAM Disk或Initial RAM Filesystem)

1. CentOS7 initramfs  CPIO解压方案:

用是cpio分解 initramfs文件, 处理过程如下(以CentOS7 为例):

  •    lsinitrd 查看initramfs文件内容;头部说明文档+需要加载内存的核心组件;
  •    cpio 算出头部文件占用的block , dd 命令将头部文件跳过, 输出压缩文件;

分解步骤:

cpio -i -d --no-absolute-filenames -I /boot/initramfs-3.10.0-862.el7.x86_64.img

输出 26 blocks, 计算获得  512*26=13312bytes

dd if=/boot/initramfs-3.10.0-862.el7.x86_64.img of=initramfs.gz bs=13312 skip=1

输出:

1620+1 records in
1620+1 records out
21576502 bytes (22 MB) copied, 0.0304529 s, 709 MB/s

再用gzip,cpio 解压 initramfs.gz。

具体步骤参考鸟哥私房菜 19.3.4 initramfs 的重要性与建立新initramfs 档案

2. 其他方法

google下面有两篇关于解压initramfs文件的文章。

CentOS / RHEL 7 : How to extract initramfs image and edit/view it

 
CenOS7 可以使用 skipcpio 跳过mcrocode部分,之后使用和 CenOS6 一样方式,gzip cpio组合就可以了完成解压

Be First to Comment

发表回复