0

RHEL 7 では、initramfs イメージ ファイルの形式が変更されました。イメージを解凍するには、skicpcpio が必要です。例えば

/usr/lib/dracut/skipcpio /boot/initramfs-3.10.0-957.el7.x86_64.img | gunzip -c | cpio -idmv

上記のコマンドでイメージの解凍には成功しましたが、元に戻すことができません。古い方法 (RHEL 6 のように) は機能しません (

find . | cpio -o -c | gzip -9 > /boot/new.img

イメージを RHEL7 に戻すことはできますか?

ありがとう

4

2 に答える 2

1

RHEL7 に .img ファイルがより複雑な方法でパックされている場合、解決策が得られました。その構造へのヒントは https://ahelpme.com/linux/tips/unpack-centos-7-initramfs-file-with-and-without-dracut-skipcpio/に記載されていましたが、変更後に再パックするための指示はありませんでした。ここでは、プロセス全体を示します。

cd /tmp
rm -f tryMe.img
rm -f initramfs-tmp.img
rm -rf cc
rm -f modified.gz
mkdir cc
cd cc
cat /boot/initramfs-3.10.0-1062.4.1.el7.x86_64.img | cpio -idmv # note number of blocks in 
                                                                # output; I assume 4976
find . | cpio -o -H newc > /tmp/tryMe.img
rm -rf *
dd if=/boot/initramfs-3.10.0-1062.4.1.el7.x86_64.img of=../initramfs-tmp.img bs=512 skip=4976
zcat ../initramfs-tmp.img | cpio -idm
find . | cpio --create --format='newc' > /tmp/modified
gzip -9 /tmp/modified
cat /tmp/modified.gz >> /tmp/tryMe.img
#backup your original somehow and then
mv /tmp/tryMe.img /boot/initramfs-3.10.0-1062.4.1.el7.x86_64.img
于 2020-04-29T09:28:10.127 に答える