web-dev-qa-db-ja.com

InitrdファイルCPIOアーカイブx-cpioファイルの種類再コンパイルする方法は?

CPIO-archive(application/x-cpio)のファイルタイプを再コンパイルする方法

enter image description here

以下のコマンドで中身を解凍できます。

unmkinitramfs initrd .

enter image description here

しかし、再コンパイルすることはできません。

どうすればこれを達成できますか?

1
PRATAP

わかりました、私はこれからいくつかの動機を取りました https://askubuntu.com/questions/777260/how-to-repack-initrd-img

現在のディレクトリが$DIRであり、live CD/casper/initrdからの「initrd」があると仮定して始めましょう。同じ${DIR}myinitrdという新しいinitrdを作成します

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
1

@PRATAP、コメントでの確認に基づいて、これを試すことができますか?

3つのディレクトリが親ディレクトリ内にあると仮定します。kernel/

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

my_new_initrdは再コンパイルされたinitrdである必要があります

0
b0yfriend