
我想要實現的是在 Raspberry Pi(運行 Raspian Buster)上擁有一個加密的根檔案系統,該系統在啟動時透過 ssh 解鎖。我透過適應取得了巨大的進步Kali Linux 教程並讓它至少工作一次,但它還不能在核心更新中倖存下來。
問題之一是,此設定使用的是 initramfs,該 initramfs 被/boot/config.txt
引用
initramfs initramfs.gz followkernel
並且需要在核心更新後透過手動呼叫來更新,例如
mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+
其中4.19.118-v7+
取決於目前核心版本和所使用的 Raspberry Pi 硬體類型。當然,我希望每當apt upgrade
安裝新核心時都能自動完成此操作。
這是我遇到兩個問題的地方:
- A) 在哪裡以及如何以正確的方式插入更新過程?
- B) 如何確定要使用的正確核心版本?
關於A)我已經學習raspberrypi-kernel.postinst
執行了/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。
我希望,這有效...