カーネルパッケージを適切に更新した後、Debianでmkinitramfsを自動的に実行する方法は?

カーネルパッケージを適切に更新した後、Debianでmkinitramfsを自動的に実行する方法は?

私が達成したいのは、起動時にSSHを介してロック解除されるRaspberry Pi(Raspian Busterを実行)に暗号化されたルートファイルシステムを持つことです。私は適応して大きな進歩を遂げましたカリ Linux チュートリアル少なくとも一度はうまくいきましたが、カーネルの更新後は生き残りませんでした。

問題の1つは、この設定が以下で/boot/config.txt参照するinitramfsを使用することです。

initramfs initramfs.gz followkernel

カーネルの更新後に手動呼び出しで更新する必要があります。

mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+

これは、4.19.118-v7+現在のカーネルバージョンと使用されているRaspberry Piハードウェアの種類によって異なります。もちろん、apt upgrade新しいカーネルがインストールされるたびにこれが自動的に実行されることを願っています。

私が経験している2つの問題は次のとおりです。

  • A)アップデートプロセスをどこに挿入するにはどうすればよいですか?
  • B)使用する正しいカーネルバージョンを決定する方法は?

raspberrypi-kernel.postinstA)実行する方法を学びました/etc/kernel/postinst.d/。どちらが呼ばれます/usr/sbin/update-initramfsmkinitramfs?私が混乱しているのは次のコードです/usr/sbin/update-initramfs

set_initramfs()
{
        initramfs="${BOOTDIR}/initrd.img-${version}"
}

initramfsのファイル名を決定します。更新中にそのようなファイルが生成されておらず、正しい方向に行っているのかわかりません。ウィキペディアinit.rdスキームがinitramfsスキームに置き換えられたことを示します。しかし、カーネルモジュールのアップグレード後に何が起こるべきかを説明する良いドキュメントが見つかりません。 (良いリンクありがとうございます)。

だから私の質問は:mkinitramfsコマンドを実行するスクリプトを挿入するのに良い場所はどこですか?修正する必要がありますか/etc/kernel/postinst.d/?このソリューションは、次のいくつかのDebianリリースで安定していますか?

B)に関しては、動作するカーネルバージョンを入手するのは簡単です。

> ls -l /lib/modules/ | awk -F" " '{print $9}'`

5.4.51+
5.4.51-v7+
5.4.51-v7l+
5.4.51-v8+

しかし、現在のハードウェアに適したものを自動的に選択するにはどうすればよいですか? Pi3B+の場合、5.4.51-v7+これを自動的に決定する方法はありますか?

助けてくれてありがとう!

ベストアンサー1

設定でINITRD=Yesinitramfsを有効にし、提案されているように更新するには、/etc/default/raspberrypi-kernel更新後にスクリプトを追加する必要があるようです。/etc/initramfs/post-update.d//boot/config.txtカーネルアップデート#608後のintramfsアップデート

これがうまくいくことを願っています...

おすすめ記事