ビルド後にinitramfsを特定の場所にコピーしますか?

ビルド後にinitramfsを特定の場所にコピーしますか?

私はUbuntu 15.04イメージを使ってRaspberry Piをハックしました。暗号化された起動設定があるため、プレーンテキストの起動デバイスであるファイルinitramfs.gzシステムの最初のパーティションにイメージを作成する必要があります。

Ubuntuはinitramfsイメージを自動的に生成します/boot/initrd.img-$(uname -r)。最新のビルドイメージを自動的にコピーできるようにスクリプトでキャッチできるフックはありますか/boot/firmware/initramfs.gz

答え1

読むinitramfs - ツールマニュアルそしてフックスクリプトを書いてください。/usr/share/initramfs-tools/hooks/参考のためにシステムが提供するスクリプトを表示できます。独自のスクリプトをに入れる必要があります/etc/initramfs-tools/hooks/。 2つのフォルダのスクリプトはを介してマージされ実行されますmkinitramfs

一時フォルダからinitramfsを作成し、その内容を確認できます。

mkinitramfs -o initramfs.gz
zcat initramfs.gz | cpio -id initramfs.gz

準備が整ったと思われる場合は、/bootシステムinitramfsを更新してくださいupdate-initramfs -u

編集する:私はあなたの質問を誤解しました。

/etc/kernel各カーネルパッケージのpostinst / postrm / preinst / prermスクリプトが呼び出すフックスクリプトディレクトリを表示できます。後で呼び出される他のスクリプトを追加できるようにupdate-initramfs呼び出されます。/etc/kernel/postinst.d/initramfs-toolsinitramfs-tools

答え2

わかりました、これは古い質問ですが、同じ質問に対する答えを探していましたが、ここにあります:

スクリプトの使用/etc/initramfs/post-update.d/

Ubuntuには素晴らしい文書はありませんが、Debianで動作しますで述べたようにこの問題。スクリプトupdate-initramfsはディレクトリが存在することを確認し、initramfsを作成してからそのディレクトリからスクリプトを実行します。

まずディレクトリを作成します。

mkdir -p /etc/initramfs/post-update.d

あなたの場合、スクリプトは次のとおりです。

/etc/initramfs/post-update.d/zz-copy-to-firmware

#!/bin/sh
cp /boot/initrd.img-$(uname -r) /boot/firmware/initramfs.gz

実行可能にします。

chmod +x /etc/initramfs/post-update.d/zz-copy-to-firmware

注:Ubuntuは最新のinitramfsへのシンボリックリンクを生成する/boot/initrd.imgのでuname -r

関連情報