私が達成したいのは、起動時に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.postinst
A)実行する方法を学びました/etc/kernel/postinst.d/
。どちらが呼ばれます/usr/sbin/update-initramfs
かmkinitramfs
?私が混乱しているのは次のコードです/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=Yes
initramfsを有効にし、提案されているように更新するには、/etc/default/raspberrypi-kernel
更新後にスクリプトを追加する必要があるようです。/etc/initramfs/post-update.d/
/boot/config.txt
カーネルアップデート#608後のintramfsアップデート。
これがうまくいくことを願っています...