
Was ich erreichen möchte, ist ein verschlüsseltes Root-Dateisystem auf einem Raspberry Pi (mit Raspian Buster), das beim Booten über SSH entsperrt wird. Ich bin ziemlich weit gekommen, indem ichein Tutorial für Kali Linuxund habe es zumindest einmal zum Laufen gebracht, aber es überlebt die Kernel-Updates bisher nicht.
Eines der Probleme ist, dass dieses Setup ein Initramfs verwendet, auf das verwiesen wird /boot/config.txt
von
initramfs initramfs.gz followkernel
und das muss nach einem Kernel-Update aktualisiert werden, indem man beispielsweise
mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+
wobei dies 4.19.118-v7+
von der aktuellen Kernel-Version und der Art der verwendeten Raspberry Pi-Hardware abhängt. Natürlich möchte ich, dass dies automatisch erfolgt, wenn apt upgrade
ein neuer Kernel installiert wird.
Hier stecke ich mit zwei Problemen fest:
- A) Wo und wie binde ich den Update-Vorgang ordnungsgemäß ein?
- B) Wie bestimme ich die richtige zu verwendende Kernel-Version?
Bezüglich A) bin ich soweit gekommen, dass ich gelernt habe, dass raspberrypi-kernel.postinst
ausgeführt wird /etc/kernel/postinst.d/
. Dies ruft wieder auf /usr/sbin/update-initramfs
, was am Ende aufruft mkinitramfs
. Was mich verwirrt hat, war dieser Code in /usr/sbin/update-initramfs
:
set_initramfs()
{
initramfs="${BOOTDIR}/initrd.img-${version}"
}
Es bestimmt den Dateinamen für das initramfs. Eine solche Datei wurde während des Updates nie generiert und ich bin mir nicht sicher, ob ich auf dem richtigen Weg bin, daWikipediabesagt, dass das init.rd-Schema durch das initramfs-Schema ersetzt wurde. Ich konnte jedoch keine gute Dokumentation finden, die beschreibt, wie die Dinge nach einem Upgrade des Kernelmoduls passieren sollen. (Gute Links sind willkommen).
Meine Frage ist also: Wo kann ich am besten ein Skript einfügen, das den mkinitramfs
Befehl ausführt? Sollte ich es ändern /etc/kernel/postinst.d/
? Wird diese Lösung in den nächsten Debian-Versionen stabil bleiben?
Zu B) ist es einfach, verfügbare Kernel-Versionen zu erhalten mit
> ls -l /lib/modules/ | awk -F" " '{print $9}'`
5.4.51+
5.4.51-v7+
5.4.51-v7l+
5.4.51-v8+
Aber wie wähle ich automatisch das Richtige für die aktuelle Hardware aus? Bei einem Pi3B+ wäre das 5.4.51-v7+
. Gibt es eine Möglichkeit, das automatisch zu ermitteln?
Vielen Dank für Ihre Hilfe!
Antwort1
INITRD=Yes
Sieht so aus, als ob initramfs durch Einstellen in aktiviert werden muss /etc/default/raspberrypi-kernel
und ein Post-Update-Skript hinzugefügt werden muss, /etc/initramfs/post-update.d/
um zu aktualisieren /boot/config.txt
, wie in vorgeschlagenIntramfs nach Kernel-Update aktualisieren#608.
Ich hoffe das funktioniert ...