![Initrd 文件 CPIO 档案 x-cpio 文件类型如何重新编译?](https://linux22.com/image/1624893/Initrd%20%E6%96%87%E4%BB%B6%20CPIO%20%E6%A1%A3%E6%A1%88%20x-cpio%20%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91%EF%BC%9F.png)
答案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