美文网首页
centos7 initramfs解包 打包

centos7 initramfs解包 打包

作者: 冰封飞飞 | 来源:发表于2019-08-20 15:44 被阅读0次

1、centos7原生内核

centos7内核默认的initramfs与原生linux不一致,包含一个cpio格式的ealry_cpio头,和一个gzip压缩的cpio格式的initramfs rootfs。前面的ealry_cpio头就是centos7内核独有的。
我们到/boot目录查看,如果显示ASCII cpio archive就代表是centos7原生内核的格式,如果显示 gzip compressed data就代表是linux内核不带ealry_cpio头的标准gzip压缩的格式。

[root@develop boot]# file initramfs-$(uname -r).img
initramfs-3.10.0-957.10.1.el7.x86_64.img: ASCII cpio archive (SVR4 with no CRC)

解包

cd /boot
initramfs=$(ls -a initramfs-$(uname -r).img)
cp /boot/$initramfs /tmp

mkdir -p /tmp/early_cpio
mkdir -p /tmp/rootfs_cpio

#解包early_cpio
cd /tmp/early_cpio
cpio -idm < ../$initramfs

#解包rootfs
cd /tmp/rootfs_cpio
/usr/lib/dracut/skipcpio ../$initramfs | zcat | cpio -id

这样我们就把centos7原生内核的initramfs解包成了两个文件夹,early_cpio和rootfs_cpio。

打包

解包完成之后,我们可以修改initramfs rootfs的内容,完成一些定制,定制完成后,就需要压缩成内核可以识别的文件。我们将第一步解包后的两个文件夹再打包起来。

cd /tmp/early_cpio
find . -print0 | cpio --null -o -H newc --quiet >../early_cpio.img

cd /tmp/rootfs_cpio
find . | cpio -o -H newc | gzip > ../rootfs_cpio.img

cd /tmp
cat early_cpio.img rootfs_cpio.img > newInitramfs.img

这样newInitramfs.img就是成功打包的镜像

2、linux官方内核

如果你的centos安装了其他内核,例如elrepo的内核,initramfs就是标准linux的格式,我们执行file 查看initramfs的时候,就会发现是 gzip compressed data。这时候解包和打包,就不需要关心early_cpio的内容了。

解包

cd /boot
initramfs=$(ls -a initramfs-$(uname -r).img)
cp /boot/$initramfs /tmp

mkdir -p /tmp/rootfs_cpio

#解包rootfs
cd /tmp/rootfs_cpio
/usr/lib/dracut/skipcpio ../$initramfs | zcat | cpio -id

打包

cd /tmp/rootfs_cpio
find . | cpio -o -H newc | gzip > ../rootfs_cpio.img

这时候rootfs_cpio.img就是打包后的initramfs

相关文章

  • centos7 initramfs解包 打包

    1、centos7原生内核 centos7内核默认的initramfs与原生linux不一致,包含一个cpio格式...

  • Linux基础命令四

    一、打包解包压缩解压先关命令 zip打包解包压缩解压 tar打包解包压缩解压 -z 压缩,解压 -c 创建文件 -...

  • Linux 打包解包/压缩解压

    范例 打包文件:把1.docx 和 2.docx 打包成 dd.tar包 解包:把 dd.tar 解包 范例 打包...

  • pydantic 拆包解包

    打包 tuple 打包 dict 解包 可选数据类型

  • Linux常用命令(二)

    tar:归档管理 打包、解包,但是不压缩,仅仅将若干个文件整合成一个文件。 使用格式: 打包: 解包: du:查看...

  • 2018-03-25

    .tar 解包:tar xvf FileName.tar 解包后原始文件仍存在 打包:tar cvf FileNa...

  • linux打包,解包

    tar -cvf /aaa.tar /etc 打包etc目录存在跟目录的aaa.tar

  • D3CTF-pwn-liproll详解

    前言 liproll比赛时没有做出来,赛后复现学到了很多 首先给出解包打包的脚本 解包: hen.sh 打包: g...

  • linux常用解压缩命令

    .tar 解包:tarxvfFileName.tar 打包:tarcvfFileName.tarDirName (...

  • manjaro 安装deb安装包

    1.安装解包打包工具debtapyay -S debtap2.升级debtapsudo debtap -u3.解包...

网友评论

      本文标题:centos7 initramfs解包 打包

      本文链接:https://www.haomeiwen.com/subject/acppsctx.html