
私が実現しようとしているのは、Raspberry Pi(Raspian Busterを実行)上に暗号化されたルートファイルシステムを構築し、SSH経由で起動時にロック解除することです。Kali Linuxのチュートリアル少なくとも一度は動作しましたが、カーネルの更新にはまだ耐えられません。
問題の一つは、この設定では/boot/config.txt
、
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
カーネルアップデート後に intramfs を更新#608。
これがうまくいくといいのですが...