Initrd 文件 CPIO 档案 x-cpio 文件类型如何重新编译?

Initrd 文件 CPIO 档案 x-cpio 文件类型如何重新编译?

如何重新编译 CPIO-archive (application/x-cpio) 的文件类型

在此处输入图片描述

我可以使用以下命令解压其内容。

unmkinitramfs initrd .

在此处输入图片描述

但无法重新编译。

我怎样才能实现这个目标?

答案1

好的,我从中获得了些许动力https://askubuntu.com/questions/777260/how-to-repack-initrd-img

首先假设您当前的目录是 ,$DIR并且它有来自 的“initrd” 。我们将在同一个目录中live CD/casper/initrd创建一个名为myinitrd${DIR}

mkdir 18
unmkinitramfs initrd ${DIR}/18

# start with an empty file
rm -rf ${DIR}/myinitrd
touch ${DIR}/myinitrd

# Add the first microcode firmware
cd ${DIR}/18/early
find . -print0 | cpio --null --create --format=newc > ${DIR}/myinitrd

# Add the second microcode firmware
cd ${DIR}/18/early2
find kernel -print0 | cpio --null --create --format=newc >> ${DIR}/myinitrd

# Add the actual ram fs file system
cd ${DIR}/18/main
find . | cpio --create --format=newc | xz --format=lzma >> ${DIR}/myinitrd

# verify both initrds are the same
binwalk ${DIR}/myinitrd
binwalk ${DIR}/initrd

答案2

@PRATAP,根据您在评论中的确认,您可以尝试一下吗?

我假设这 3 个目录位于父目录内,kernel/

find kernel/ | cpio -o -H newc > my_new_initrd

my_new_initrd应该是你重新编译的 initrd

相关内容