staging.inyokaproject.org

Ubuntu MATE 20.04 auf Raspberry Pi 4B mit Verschlüsselung

Status: Ungelöst | Ubuntu-Version: Ubuntu MATE 20.04 (Focal Fossa)
Antworten |

chridazi

Anmeldungsdatum:
19. Juli 2012

Beiträge: Zähle...

Hallo, ich habe vor, auf einem Raspberry Pi 4B Ubuntu MATE zu installieren. Das Image ist schnell heruntergeladen und es funktioniert auch soweit alles wie erhofft. Aber leider gibt es keine Möglichkeit der Vollverschlüsselung (außer /boot natürlich) mittels cryptsetup. Also muss man das System im nachhinein verschlüsseln. Diese Anleitung (leicht angepasst) https://github.com/NicoHood/NicoHood.github.io/wiki/Raspberry-Pi-Encrypt-Root-Partition-Tutorial hat leider nicht zum Erfolg geführt (hängt beim booten, kann /dev/mapper/crypt nicht finden). Dies hier https://stafwag.github.io/blog/blog/2020/07/12/manjaro-on-rpi4-full-disk-encryption/ sieht vielversprechend aus und ist recht aktuell, aber leider nicht für Ubuntu/Debian gedacht. Falls jemand ein verschlüsseltes Ubuntu-Derviat auf einem Raspberry Pi am laufen hat, dann wäre ich für Hilfe sehr dankbar.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55572

chridazi schrieb:

Also muss man das System im nachhinein verschlüsseln.

Man kann kein System im nachhinein verschlüsseln.

Die Anleitung beschreibt (extrem verkompliziert), wie man eine Datei anlegt, in der man ein LUKS anlegt, in dem man ein Dateisystem erzeugt, in das man die Daten des installierten Systems reinkopiert. Das hat mit "nachträglicher Verschlüsselung" exakt nichts zu tun.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Das UbuntuUsers-Wiki enthält Anleitungen zum Aufsetzen eines verschlüsselten Systems. Siehe z.B.:

Die Besonderheiten, welche bei einer Installation für einen RPi gelten, musst Du zusätzlich beachten.

chridazi

(Themenstarter)

Anmeldungsdatum:
19. Juli 2012

Beiträge: Zähle...

Okay, "im nachhinein verschlüsseln" war etwas unglücklich ausgedrückt. Man erstellt eine mit LUKS verschlüsselte Partition (keine Datei) und kopiert dorthin die vorher gesicherten Daten wieder zurück. Vorher muss man wohl noch (wie auch in anderen Anleitungen beschrieben) cryptsetup in initramfs einbauen. Soweit alles klar. Wie man grundsätzlich sein System oder auch andere Festplatten verschlüsselt ist mir geläufig. Nur den Bootvorgang auf dem Raspberry Pi bekomme ich nicht hin.

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16802

Hallo chridazi,

Nehme 20.10, das soll für den RP 4B funktionieren ...

Gruss Lidux

chridazi

(Themenstarter)

Anmeldungsdatum:
19. Juli 2012

Beiträge: 21

Hallo Lidux, das Ubuntu MATE 20.04 funktioniert auch einwandfrei für den Raspberry Pi 4B. Es geht aber um die Verschlüsselung. Gibt es da beim 20.10 eine Option out-of-the-box? Kann ich mir schwer vorstellen, da man ja erstmal ein unverschlüsseltes Image auf die SD-Karte dumpt.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

chridazi schrieb:

[…] Nur den Bootvorgang auf dem Raspberry Pi bekomme ich nicht hin.

Vielleicht kannst Du uns einmal konkret die relevanten Dateien zeigen, welche für die Einbindung von Dateisystemen während des Bootvorgangs relevant sind? Z.B. /etc/fstab und /etc/crypttab, und zwar die Versionen, welche in der initrd.img eingebaut wurden.

Auch die exakte Fehlermeldung könnte die Phantasie möglicher Helfer triggern.

chridazi

(Themenstarter)

Anmeldungsdatum:
19. Juli 2012

Beiträge: 21

Das Problem war der Splash-Screen beim booten, welcher die Eingabemaske für das Passwort verhindert. Daher habe ich diesen Beitrag korrigiert.

Habe hier mal meine Vorgehensweise zusammengefasst:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Mate 20.04 beim Raspberry Pi auf dem neuesten Stand bringen, benötigte Paktete installieren, Neustart
user@pi:~$ sudo -s
root@pi:/home/user# apt update && apt upgrade -y && apt autoremove -y && apt install -y cryptsetup lvm2 busybox && reboot

# Ergänze an /boot/firmware/usercfg.txt
# "initramfs initrd.img followkernel"
user@pi:~$ sudo -s
root@pi:/home/user# echo 'initramfs initrd.img followkernel' >> /boot/firmware/usercfg.txt

# Ersetze in /boot/firmware/cmdline.txt
# "root=LABEL=writable"
# mit
# "root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt"
root@pi:/home/user# sed -i 's/root=LABEL=writable/root=\/dev\/mapper\/crypt cryptdevice=\/dev\/mmcblk0p2:crypt/g' /boot/firmware/cmdline.txt

# Lösche in /boot/firmware/cmdline.txt
# "quiet splash"
# und erstelle neues initramfs
root@pi:/home/user# sed -i 's/ quiet splash//g' /boot/firmware/cmdline.txt
root@pi:/home/user# mkinitramfs -o /boot/firmware/initrd.img

# Ersetze in /etc/fstab
# "LABEL=writable  /        ext4   defaults        0 0"
# mit
# "/dev/mapper/crypt       /       ext4    defaults,noatime        0       1"
root@pi:/home/user# sed -i 's/LABEL=writable\t\/\t ext4\tdefaults\t0 0/\/dev\/mapper\/crypt\t\/\text4\tdefaults,noatime\t0\t1/g' /etc/fstab

# Ergänze an /etc/crypttab
# "crypt   /dev/mmcblk0p2   none   luks"
# bei manueller Ergänzung Tabs statt Space benutzen
root@pi:/home/user# echo -e 'crypt\t/dev/mmcblk0p2\tnone\tluks' >> /etc/crypttab

# Raspberry Pi herunterfahren
root@pi:/home/user# init 0

# SD-Karte entfernen und an einen anderen PC (bei mir Kubuntu 20.04) anstecken
# Mountpunkt erstellen und die zweite Partition einhängen (sdX2 anpassen, via dmesg ermitteln)
user@desktop:~$ sudo -s
root@desktop:/home/user# mkdir /mnt/pi
root@desktop:/home/user# mount /dev/sdX2 /mnt/pi

# Backup-Archiv erstellen
root@desktop:/home/user# tar czvpf pi.tgz -C /mnt/pi/ .
root@desktop:/home/user# sync

# Die zweite Partition der SD-Karte wieder aushängen und mit zufälligen Daten überschreiben (sdX2 anpassen)
# Kaffe trinken, einkaufen gehen, dies kann eine Weile dauern
root@desktop:/home/user# umount /mnt/pi
root@desktop:/home/user# badblocks -c 10240 -s -w -t random -v /dev/sdX2

# Verschlüsselte LUKS-Partition erstellen (sdX2 anpassen)
root@desktop:/home/user# cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 256 --hash sha256 --use-random /dev/sdX2

# Die erstellte verschlüsselte LUKS-Partition öffnen (sdX2 anpassen), Dateisystem erstellen und einhängen
root@desktop:/home/user# cryptsetup luksOpen /dev/sdX2 picrypt
root@desktop:/home/user# mkfs.ext4 /dev/mapper/picrypt
root@desktop:/home/user# mount /dev/mapper/picrypt /mnt/pi

# Das Backup-Archiv auf die nun verschlüsselte Partition zurück spielen
root@desktop:/home/user# tar xzvf pi.tgz -C /mnt/pi/
root@desktop:/home/user# sync

# Aufräumen
root@desktop:/home/user# umount /mnt/pi
root@desktop:/home/user# rm -r /mnt/pi
root@desktop:/home/user# cryptsetup luksClose picrypt
root@desktop:/home/user# rm pi.tgz
root@desktop:/home/user# exit

Voila, der Raspberry Pi 4B mit Ubuntu MATE 20.04 und verschlüsseltem Dateisystem.

MarccoOccram

Anmeldungsdatum:
15. Januar 2021

Beiträge: Zähle...

Also bei mir funktioniert das leider nicht, getestet habe ich sowohl mit "normalem" ubuntu, als auch mit ubuntu-mate.

Einen Fehler kann ich ganz sicher schon benennen, nämlich in Zeile 26 greift bei mir der sed nicht, warum auch immer. Korrigiert habe ich es so, dass ich dann manuell die Anleitung von Zeile 22-25 durchgeführt habe.

Das Problem war der Splash-Screen beim booten, welcher die Eingabemaske für das Passwort verhindert. Daher habe ich diesen Beitrag korrigiert.

Nützlich wäre, diesen Teil nochmals zu erläutern. Genau das scheint nämlich nicht korrigiert zu sein. Ich werde nicht nach einem PWD gefragt und das boot-system findet nichts ...

chridazi

(Themenstarter)

Anmeldungsdatum:
19. Juli 2012

Beiträge: 21

Wenn ich mich recht entsinne, legte sich der Splash-Screen über die Eingabemaske für das Passwort, so dass man keine Chance hatte, dieses überhaupt einzugeben. Zumindest sah man keine Eingabemaske, das Passwort ließ sich vielleicht trotzdem eingeben. Nach einer gewissen Zeit gab es dann ein Timeout und das System meldete, daß keine Boot-Platte gefunden wurde. Daher die Zeilen 16 bis 20 mit denen der Splash-Screen abgeschaltet wird. Der sed Befehl auf die /etc/fstab angewandt funktioniert evtl. nicht, wenn statt Tabulatoren Leerzeichen vorhanden sind.

Die Datei /boot/firmware/cmdline.txt sieht bei mir momentan so aus:

1
net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt rootfstype=ext4 elevator=deadline rootwait fixrtc plymouth.ignore-serial-consoles

Die Datei /boot/firmware/usercfg.txt:

1
2
3
4
# Place "config.txt" changes (dtparam, dtoverlay, disable_overscan, etc.) in
# this file. Please refer to the README file for a description of the various
# configuration files on the boot partition.
initramfs initrd.img followkernel

Die Datei /etc/fstab:

1
2
/dev/mapper/crypt    /                 ext4    defaults,noatime    0    1
LABEL=system-boot    /boot/firmware    vfat    defaults            0    1

Die Datei /etc/crypttab:

1
2
# <target name> <source device> <key file> <options>
crypt           /dev/mmcblk0p2  none       luks

Hoffe dies hilft ein wenig weiter.

MarccoOccram

Anmeldungsdatum:
15. Januar 2021

Beiträge: 8

Allein das persönliche Home-Verzeichnis zu verschlüsseln muss nicht immer ausreichen - manche sensible Dateien liegen im System womöglich unverschlüsselt. Deswegen kann es von Vorteil sein, gleich das ganze System zu verschlüsseln. Leider bieten manche Distros bei der Installation keine oder schlechte Verschlüsselungsoptionen an.

Mehrere Recherchen zum Thema "Raspberry Vollverschlüsseln" oder "Pi nachträglich verschlüsseln" oder auch "PC / Linux nachträglich vercrypten" haben immer wieder unzureichende Lösungen geboten. Daher hier eine Doku, in der Hoffnung, nützlich zu sein.

Tatsächlich ist eine komplette Systemverschlüsselung nicht unbedingt notwendig, wenn man konsequent heikle Dateien bzw. sensible Verzeichnisse schützt. Dazu wird eine verschlüsselte Containerdatei erzeugt und via fstab eingebunden. Beim Hochfahren fragt das System das Passwort ab. Im Container liegt dann ein Script, das automatisch ausgeführt wird, und die zu schützenden Config-Files via Sym-Link auf den Crypt-Container "umbiegt".

Verschlüsselung ermöglichen (=installieren)

1
2
sudo apt-get install cryptsetup
sudo modprobe dm-crypt

Unter TwisterOS zusätzlich:

1
sudo apt-get install kpartx

verschlüsselten Container erstellen

1
2
dd if=/dev/urandom of=/mnt/crypt.img bs=1M count=20000 #Größe je Bedarf/Möglichkeit anpassen!
sudo kpartx -a /mnt/crypt.img #zusätzlich unter TwisterOS

Freies loop-device erfragen und statt loop12 unten richtig eintragen. Es geht aber auch mit loop12, selbst wenn es nicht das unmittelbar nächst freie ist, sofern es noch nicht benutzt wird.

1
sudo losetup -f

Device einbinden, im Falle von berryboot: sudo losetup /dev/loop12 /mnt/berryboot/crypt.img

1
sudo losetup /dev/loop12 /mnt/crypt.img

Verschlüsseln & öffnen

1
2
sudo cryptsetup -c aes-xts-plain64 -s 512 -h sha512 -y luksFormat /dev/loop12
sudo cryptsetup luksOpen /dev/loop12 container

Formatieren

1
sudo mkfs.ext4 /dev/mapper/container #formatieren

Mount-Point für das Einhängen des Containers erstellen

1
sudo mkdir /mnt/crypt

Container einhängen

1
sudo mount -t ext4 /dev/mapper/container /mnt/crypt

Verzeichnisse innerhalb des Containers anlegen (für das "umbiegen" heikler Verzeichnisse)

1
2
3
4
sudo mkdir /mnt/crypt/my_home
sudo mkdir /mnt/crypt/.scripts
sudo mkdir /mnt/crypt/my_etc
sudo mkdir /mnt/crypt/my_etc/samba

crypt-container automatisch mounten (System fragt beim booten nach dem PWD)

1
2
3
sudo echo "/dev/mapper/container /mnt/crypt ext4 defaults 0 0" >> /etc/fstab
sudo echo "container /mnt/crypt.img none" >> /etc/crypttab
#(oder im Falle von berryboot: sudo echo "container /mnt/berryboot/crypt.img none" >> /etc/crypttab)

Skript automatisch beim Start einmalig

1
2
3
4
5
sudo su #Ja! Kein sudo crontab!
crontab -r #ALLE Einträge in der cronjobliste löschen (wenn man das will)
cat <(crontab -l) <(echo "@reboot /bin/bash /mnt/crypt/.scripts/root_autostart.sh") | crontab -
#Hier kommt dann Sinnfrei die Meldung 'no crontab for root'
crontab -l #Liste der aktiven cronjobs anzeigen

Home umziehen (Hier nur unvollständig angedeutet, das "alte" Home bleibt, daher kann man bei Bedarf auch ohne "neuem" Home (=rem in fstab, crypttab) arbeiten)

1
sudo rsync -avxH --progress /home/ /mnt/crypt/my_home

Das Script:

1
2
3
4
5
6
7
8
9
#!/bin/bash /mnt/crypt/.scripts/root_autostart.sh
  
#home "umbiegen"
mount --bind /mnt/crypt/my_home /home
  
#samba "umbiegen"
mount --bind /mnt/crypt/my_etc/samba /etc/samba
#vielleicht notwendig, samba neu zu starten??
/etc/init.d/smbd restart

Bis dato getestet: am Raspberry: Ubuntu 21.10, Ubuntu-Mate, BerryBoot Ubuntu, Twister OS 2.1.2, am PC: Ubuntu, Linux Mint/Mate

Anmerkung:

Manchmal sieht man nicht das Anmeldefenster. Lösung: ESC-Taste drücken!

ja

Anmeldungsdatum:
30. Juli 2022

Beiträge: Zähle...

Hallo, erstmal vielen Dank für diesen Beitrag, er hat mir sehr weitergeholfen. Leider bei mir auch ohne Erfolg, allerdings mit MATE 22.04. Deshalb meine Ergänzungen. Im Zuge meiner neuen "grünen" IT stelle ich mein Serversetup auf VPS bei Hetzner und Raspis bei mir zuhause um. Ich habe seit einer Weile einen 4B/4GB an meinem Fernseher hängen. Er dient mir als NAS und verwandelt meinen einfachen Hisense in einen datenschutzfreundlichen Smart TV. Als NAS hatte ich eine alte 240 GB SSD in ein externes USB Gehäuse gepackt und via Samba freigegeben. Ein normales NAS kommt mir nicht mehr ins Haus, ich möchte selber updaten und FOSS verwenden. Ausserdem hab ich X2Go Server mit Mate Desktop drauf. Nach kleineren Problemen unter Ubuntu 21.10 läuft momentan ein Ubuntu Budgie 22.04 drauf. Ich hab dann die SSD durch eine grössere Intenso Premium SSD 512GB ersetzt und es sind laufend Hänger gewesen. Stecker ziehen und Neustart, ziemlich unbrauchbar. Ich hatte keinen Schimmer was da los ist, hatte in der fstab einfach die UUID geändert und hat auch geklappt bis ich via Samba ein Video geschaut hab und zack hängt! Bin dann in das Geschäft und habe es erläutert, eigentlich war mir klar dass es nicht an der neuen SSD liegen kann aber der Gedanke lag nah sie umzutauschen. Ja da sind ja meine Daten drauf und eine SSD zu löschen naja. Ich begann mich mit crypttab und luks zu versuchen. Erste Versuche ein verschlüsseltes Ubuntu zu installieren gelangen mir auf dem aktuellen Hetzner CX21. Hab einfach die CD ISO eingelegt und bei der Installation verschlüsseln lassen. Bin damit sehr zufrieden und weiss meine Credentials einigermassen sicher und einen Desktop in der Cloud. Als vor ein paar Tagen Mate 2204 rauskam wollte ich alle meine Devices damit betreiben. Es ist so schnell und meines Erachtens das beste Ubuntu. Gerade auf schwacher Hardware. Also hab ich eine externe USB SSD (für den Desktop und 2 Laptops) eingerichtet. Da kommt ja dann LVM dazu. Ich lernte cryptsetup Befehle und Namen hatte aber immer wieder Probleme da ich den Mechanismus mit dem initramfs nicht verstanden habe. Hab alles richtig eingetragen und er will immer auf die andere UUID zugreifen... Seit einer Woche ringe ich nun damit rum und vorhin ergab sich mein erstes Erfolgserlebnis. Ubuntu Mate 22.04 ARM64 auf meinem Pi ist vollverschlüsselt und startet sogar ☺ OK viel blabla hier nun meine Ergänzungen zu den Angaben vom Themenstarter. Ich fand weitere Artikel die sehr ähnlich sind. In einemhttps://github.com/NicoHood/NicoHood.github.io/wiki/Raspberry-Pi-Encrypt-Root-Partition-Tutorial fand ich den Hinweis mit dem fakecrypt.img, dass der initram nur mit cryptsetup gebaut wird wenn auch einer eingehängt ist. Hat aber auch nicht geklappt. Aber ich kam auf die Spur.

kB schrieb:

chridazi schrieb:

[…] Nur den Bootvorgang auf dem Raspberry Pi bekomme ich nicht hin.

Vielleicht kannst Du uns einmal konkret die relevanten Dateien zeigen, welche für die Einbindung von Dateisystemen während des Bootvorgangs relevant sind? Z.B. /etc/fstab und /etc/crypttab, und zwar die Versionen, welche in der initrd.img eingebaut wurden.

Auch die exakte Fehlermeldung könnte die Phantasie möglicher Helfer triggern.

genau.

Also für mich liegt die Lösung zwischen Zeile 19 und 20 in seiner Vorgehensweise, allerdings führt quiet splash nicht weiter, denn die Passworteingabe muss blind erfolgen, da nur ein schwarzer Bildschirm zu sehen ist. Vielleicht kennt da jmd eine Lösung dazu. chridazi schrieb:

# Lösche in /boot/firmware/cmdline.txt # "quiet splash" # und erstelle neues initramfs root@pi:/home/user# sed -i 's/ quiet splash//g' /boot/firmware/cmdline.txt root@pi:/home/user# mkinitramfs -o /boot/firmware/initrd.img

Mithilfe des System verschlüsseln bin ich so vorgegangen. Dabei benutzte ich 2 SD Karten Meine Quell SD mit aktuellem zu verschluesseltem MAte 22.04. Eine zweite wo ich ein neues Mate draufgeflasht habe und ein USBstick mit PIOS für das rsync der beiden anderen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#Raspi mit USB PIOS booten. 
#Crypt SD vorbereiten und in SD Slot einstecken
sudo -s
dd if=/PfadMate2204image of=/dev/mmcblk0

#Dann erste Partition einhängen und die initrd.img löschen, da sonst rsync wegen Platzmangel abbricht.
mount /dev/mmcblk0p1 /mnt
rm -f /mnt/initrd.img
umount /mnt
#mit gparted die Partition /dev/mmcblk0p2 vergrössern (überprüfen) oder das neue Mate einmal starten
#Dann crypt erstellen
cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 256 --hash sha256 --use-random /dev/mmcblk0p2
# Die erstellte verschlüsselte LUKS-Partition öffnen, Dateisystem erstellen und einhängen

cryptsetup luksOpen /dev/mmcblk0p2 crypt
mkfs.ext4 /dev/mapper/crypt
cd /mnt
mkdir quellSD cryptSD
mount /dev/mapper/crypt /mnt/cryptSD

#rsync mit QuellSD. Via USBreader einstecken (mit lsblk richtige sdX ersehen)
lsblk
mount /dev/sdX2 /mnt/quellSD
rsync -av --delete /mnt/quellSD/ /mnt/cryptSD
umount /mnt/cryptSD /mnt/quellSD

#rsync der Bootpartitionen

mount /dev/mmcblk0p1 /mnt/cryptSD
mount /dev/sdX1 /mnt/quellSD
rsync -av --delete /mnt/quellSD/ /mnt/cryptSD

# Nun habe ich zwei SD Karten mit gleichem Inhalt auf den Partitionen. Jetzt wird die cmdline.txt bearbeitet.

# Ersetze in /mnt/cryptSD/cmdline.txt
# "root=LABEL=writable"
# mit
# "root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt"

sed -i 's/root=LABEL=writable/root=\/dev\/mapper\/crypt cryptdevice=\/dev\/mmcblk0p2:crypt/g' /mnt/cryptSD/cmdline.txt

# Lösche in /mnt/cryptSD/cmdline.txt
# "quiet splash"

umount /mnt/cryptSD /mnt/quellSD

# System mit Quell SD im USB reader booten und dann cryptSD in Slot einstecken. passwortabfrage beim Einstecken abrechen. Mittels CHroot in das neue System wechseln, das ist im wiki Artikel beschrieben und boot/firmware ebenfalls einhängen

sudo -s
cryptsetup luksOpen  /dev/mmcblk0p2 crypt
mount /dev/mapper/crypt /mnt
mount /dev/mmcblk0p1 /mnt/boot/firmware
mount -o rbind /dev /mnt/dev
mount -t proc /proc /mnt/proc
mount -t sysfs /sys /mnt/sys
chroot /mnt /bin/bash 

# fstab und crypttab anpassen (ich bin ja jetzt root im cryptSYSTEM)

sed -i 's/LABEL=writable\t\/\t ext4\tdefaults\t0 0/\/dev\/mapper\/crypt\t\/\text4\tdefaults,noatime\t0\t1/g' /etc/fstab

echo -e 'crypt\t/dev/mmcblk0p2\tnone\tluks' >> /etc/crypttab

# Und JETZT das InitRD neu erstellen.
mkinitramfs -o /boot/firmware/initrd.img

So hat es bei mir geklappt. Allerdings habe ich diesen Beitrag direkt müde danach geschrieben und es ist mein erster dieser Art. Sind bestimmt noch Fehler drin. Beim Neustart nur mit der CryptSD kommt nach dem Farbscreen ein etwas hellerer schwarzer Bildschirm und ich hab dann gleich den Unterschied zu vorher gesehen, wo ich auch versucht habe das Passwort blind einzutippen. Nur diesmal klappt es und ich hab MATE 2204 in meinem Wunschsetup vollverschlüsselt. Falls jemand einen Hinweis hat wie man auch eine Passworteingabemaske hinbekommt wäre ich dankbar. Hab mittlerweile auch ein PIOS verschluesselt. Meine Anmerkungen dazu: Ebenfalls schwarzer Bildschirm beim boot. Blinde Passworteingabe. Ich vermute einen Zusammenhang mit den Grafiktreiber im Initramfs. Ausserdem hab ich beim PIOS das SD Laufwerk (/dev/mmcblk0) durch die UUIDs ersetzt, damit auch ein USB Boot erfolgreich ist.

WICHTIG: Ich bin kein Profi und bei dd und rsync --delete werden Daten ohne Nachfrage Daten unwiderruflich gelöscht und man sollte genau aufpassen bzw. ein Backup haben falls was schiefgeht.

ja

Anmeldungsdatum:
30. Juli 2022

Beiträge: 104

Hallo, meine Raspis und Laptops sind mittlerweile alle vollverschlüsselt. Dank diesem Beitrag. Nun ein Nachtrag bzgl. schwarzer Bildschirm beim Bootvorgang mit "blinder" Passwortabfrage. Seit dem letzten Kernelupdate 5.15.0-1014-raspi vom Sept.22 booten die Raspis perfekt mit Eingabeprompt. Bei Ubuntu Mate 22.04 läuft alles wie vorher auch, allerdings bootet der PIOS nicht mehr. Er hat ein anderes Initramfs generiert, werde mir das noch näher anschauen. ja schrieb:

Beim Neustart nur mit der CryptSD kommt nach dem Farbscreen ein etwas hellerer schwarzer Bildschirm und ich hab dann gleich den Unterschied zu vorher gesehen, wo ich auch versucht habe das Passwort blind einzutippen. Nur diesmal klappt es und ich hab MATE 2204 in meinem Wunschsetup vollverschlüsselt. Falls jemand einen Hinweis hat wie man auch eine Passworteingabemaske hinbekommt wäre ich dankbar.

MarccoOccram

Anmeldungsdatum:
15. Januar 2021

Beiträge: 8

Also ich habe jetzt die Anleitung etliche Male ausprobiert, inzwischen ist ja auch schon einiges an Zeit vergangen, aber ich komme leider zu keiner Lösung.

ja schrieb: Sind bestimmt noch Fehler drin.

Vielleicht gibt es ja irgend einen Punkt, der völlig selbstverständlich ist, und ich nicht durchführe, und es deswegen nicht klappt?

Ich habe versucht, diese Anleitung zu verstehen, und auch viele andere Anleitungen im Netz versucht. Es ist auch nicht eine Frage des OS. Es funkt einfach nicht bei mir. Ich habe obige Anleitung mehrfach durchgearbeitet und auch insofern etwas abgeändert, in dem ich versuche mit 2 sdcards durch zu kommen. Vielleicht kann ja bitte ein Berufener sich diese Lösung ansehen und mir mitteilen, wo ich was falsch gemacht habe. Danke vielmals.

Via Imager PiOS 64Bit vom 5. Dezember 2023 installieren

System full update

1
2
3
4
5
sudo apt dist-upgrade -y
sudo apt clean -y
sudo apt autoclean -y
sudo apt autoremove -y
sudo apt purge ~c -y

Installation der Luks Abhängigkeiten (vielleicht nicht alles nötig ...)

1
sudo apt install -y cryptsetup lvm2 busybox initramfs-tools ecryptfs-utils

System neu starten

1
sudo reboot

PIOS auf 2. sdcard clonen, damit wirklich alles gleich ist Raspi mit PIOS von sdcard booten. Mountpoint anlegen

1
sudo mkdir /mnt/rootfs -p

Dann crypt erstellen

1
sudo cryptsetup -c aes-xts-plain64 -s 512 -h sha512 -y luksFormat /dev/sda2

Die erstellte verschlüsselte LUKS-Partition öffnen, Dateisystem erstellen und einhängen

1
2
3
sudo cryptsetup luksOpen /dev/sda2 crypt
sudo mkfs.ext4 /dev/mapper/crypt
sudo mount /dev/mapper/crypt /mnt/rootfs

Daten von der internen sdcard auf die usb-sdcard kopieren

1
2
3
4
5
6
sudo mkdir /mnt/quellSD -p
sudo mount /dev/mmcblk0p2 /mnt/quellSD
sudo rsync -av --delete /mnt/quellSD/ /mnt/rootfs --exclude 'mnt'
#Da ich mnt ausgelassen habe, Verzeichnis anlegen
sudo mkdir /mnt/rootfs/mnt -p
sudo umount /mnt/quellSD

Ordentlich aushängen, sonst gibts einen Datenverlust

1
2
sudo umount /mnt/rootfs
sudo cryptsetup luksClose crypt

REBOOTEN, und zwar dieses Mal von USB quellSD System mit Quell SD im USB reader booten und Dann cryptSD in Slot einstecken. passwortabfrage beim Einstecken abrechen. Mittels CHroot in das neue System wechseln, das ist im wiki Artikel beschrieben und boot/firmware ebenfalls einhängen

Und weil die Karte im internen Slot hängt, ist es eben mmcblk0p1 bzw. mmcblk0p2

1
2
3
4
5
6
7
8
sudo -s
cryptsetup luksOpen  /dev/mmcblk0p2 crypt
mount /dev/mapper/crypt /mnt/rootfs
mount /dev/mmcblk0p1 /mnt/rootfs/boot/firmware
mount -o rbind /dev /mnt/rootfs/dev
mount -t proc /proc /mnt/rootfs/proc
mount -t sysfs /sys /mnt/rootfs/sys
chroot /mnt/rootfs /bin/bash

fstab, crypttab und cmdline anpassen (ich bin ja jetzt root im cryptSYSTEM) sed greift bei mir nicht, weil ich in der cmdline.txt kein "root=LABEL=writable" habe daher manuell

statt

1
root=PARTUUID=1234

nun

1
root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt

UND

1
quiet splash

LÖSCHEN

So schaut jetzt meine cmdline.txt aus:

1
console=serial0,115200 console=tty1 root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt rootfstype=ext4 fsck.repair=yes rootwait plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=AT

nano /etc/fstab Ersetze in /etc/fstab in die fstab

1
2
3
proc            /proc           proc    defaults          0       0
PARTUUID=1234  /boot/firmware  vfat    defaults          0       2
/dev/mapper/crypt    /    ext4    defaults,noatime    0    1

crypttab

1
sudo echo -e 'crypt\t/dev/mmcblk0p2\tnone\tluks' >> /etc/crypttab

Und JETZT das InitRD neu erstellen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
sudo mkinitramfs -o /boot/initrd.img
exit #chroot beenden

sudo umount /mnt/rootfs/boot/firmware
sudo umount -f /mnt/rootfs/dev
sudo umount -l /mnt/rootfs/dev
sudo umount /mnt/rootfs/proc
sudo umount /mnt/rootfs/sys

# Wenn man das vergisst, gibt's einen Datenverlust!
sudo umount /mnt/rootfs
sudo cryptsetup luksClose crypt

USB-sdcard entfernen und reboot.

Fehlermeldung: /dev/mapper/crypt not found

ja

Anmeldungsdatum:
30. Juli 2022

Beiträge: 104

Hi, ich habe zwischenzeitlich auch ein MX Linux für den Pi5 und ein aktuelles PIOS verschlüsselt. Bei PIOS hat anstatt MarccoOccram schrieb:

Und JETZT das InitRD neu erstellen.

1
sudo mkinitramfs -o /boot/initrd.img

nur ein

update-initramfs -u -k all

geholfen. Bei MX war es dann glaub wieder das mkinitramfs. Entweder das eine oder das andere. Ich vermute du hast die Vorgehensweise verstanden, da du es schon so oft versucht hast. Heute abend habe ich etwas Zeit und ich schreib meine Vorgehensweise beim letzten U23.10 auf.

#cmdline.txt
zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=zstd multipath=off dwc_otg.lpm_enable=0 console=tty1 root=/dev/mapper/cryptU2310 cryptdevice=UUID=xxxx-xxxxxxx-xxxx-xxxx-xxxx:cryptU2310 rootfstype=ext4 rootwait fixrtc quiet splash
#crypttab
cryptU2310	UUID=xxxx-xxxxxxx-xxxx-xxxx-xxxx	none	luks
#fstab
/dev/mapper/cryptU2310	/	ext4	defaults	0	1
UUID=XXXX-XXXX	/boot/firmware	vfat	defaults	0	1

Vielleicht hilft dir das bis dahin.

Antworten |