16. Februar 2016

Installation von verschlüsseltem Dualboot System mit Linux Mint KDE und LMDE

Update: Teil 1, manuelle Installation mit verschlüsseltem LVM auf einem Teil der Festplatte - wurde mit Linux Mint 18 und Kubuntu 16.04 getestet. - Dezember 2016

---

Dies ist eine Anleitung für die Installation, Verschlüsselung und das Bootloader-Setup zweier Linux-Systeme, beispielhaft Linux Mint 17 KDE als Hauptsystem und LMDE (Linux Mint Debian Edition) als zweites System. Das Setup ist BIOS / Legacy, also ohne (U)EFI. Das sollte in der BIOS des Gerätes eingetragen sein.

Prinzipiell funktioniert es auch mit EFI, aber dann muss anders vorgegangen werden, ich beschränke mich hier auf BIOS / Legacy.

Getestet mit Linux Mint 17.3 KDE und LMDE 2 Cinnamon. Die Systeme werden mit LUKS (Linux Unified Key Setup) verschlüsselt. Später sollte dann beim Starten des Computers ein Bootmenü gezeigt werden, und das jeweils ausgewählte System wird nach einer Passworteingabe entschlüsselt und gestartet.

Für beide Systeme werden je eine Bootpartition und eine Partition für das verschlüsselte System benötigt.

Sollten sich auf einer Festplatte Daten befinden, werden diese beim Formatieren gelöscht. Für die Anleitung wurde eine leere Festplatte genommen.

Für Legacy msdos/MBR ist es sinnvoll, eine erweiterte Partition anzulegen. Ich habe hier der Einfachheit halber darauf verzichtet, und vier primäre Partitionen erstellt. Die Partitionsbezeichnungen müssen an das eigene System angepasste werden.

1. Verschlüsseltes Linux Mint KDE installieren

Vorbereitungen

Zuerst wird die ISO-Datei heruntergeladen, und damit ein bootfähiger USB-Stick erstellt oder eine DVD gebrannt. Das Live-System Linux Mint KDE wird dann vom USB-Stick oder der DVD gestartet.

Das Keybordlayout sollte in Deutsch sein, da das Passwort später nicht angezeigt wird. Im Menü unter System Systemeinstellungen → Eingabegeräte → Tastatur → Belegungen → Belegung einrichten und gegebenenfalls Deutsch hinzufügen. In der Kontrollleiste kann dann umgeschaltet werden.

Partitionen erstellen

Nach dem Start werden zuerst die Partitionen erstellt. Das Programm GParted befindet sich im Menü → System → GParted. Da es unter KDE nicht vorhanden ist, kann es über das Terminal mit

sudo apt-get install gparted

installiert werden.

Zuerst wird die Boot-Partition des Hauptsystems erstellt, etwa 200-300MB.

Mit dem Rechtsklick auf der Partition 'Neu' auswählen. Das Dateisystem ist ext4, und die Partition ist für das Alignment einer SSD an MiB ausgerichtet (Standard). Die Bezeichnung ist '/boot'.

Anschließend wird eine weitere Partition für das gesamte System in der gewünschten Größe mit ext4 erstellt. Mit Klick auf das Häkchen werden die Operationen ausgeführt. Auf der Festplatte sollte noch Platz für das zweite System als 'nicht zugeteilt' übrig bleiben.

Jetzt ist sda1 als Bootpartition vorhanden, und sda2 als Partition für eine verschlüsselte LVM, in die das restliche System installiert wird.

GParted beenden.

System verschlüsseln und LVM einrichten

Im Terminal

sudo -s

eingeben, um Rootrechte zu erlangen. Die Partition sda2 mit LUKS verschlüsseln:

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

Bestätigen und Passwort angeben. Das Passwort wird nicht angezeigt.

Die Partition entschlüsseln:

cryptsetup luksOpen /dev/sda2 crypto-minty
pvcreate --dataalignment 1024k /dev/mapper/crypto-minty

erstellt das Physical Volume mit einem Alignment für eine SSD.

vgcreate mintygroup /dev/mapper/crypto-minty

erstellt eine Volume Group mit Namen mintygroup. 

Dann werden die Logical Volumes erstellt. Das sind die Partitionen für Swap, Root und Home in Megabit in der Volume Group mintygroup.

lvcreate -L 4096M -n swap mintygroup # die Größe bemisst sich am Arbeitsspeicher
lvcreate -L 15360M -n root mintygroup # so etwa 15-20GB
lvcreate -l 100%FREE -n home mintygroup


Jetzt werden noch die Dateisysteme eingerichtet.

mkswap /dev/mapper/mintygroup-swap -L swap
mkfs.ext4 /dev/mapper/mintygroup-root -L root
mkfs.ext4 /dev/mapper/mintygroup-home -L home

Linux Mint KDE in die LVM installieren

In die eingerichtete LVM wird das Betriebssystem installiert. Das Terminal am besten offen lassen. Der Installer wird gestartet, bis zum Punkt 'Einrichten der Festplatten'. Hier Manuell auswählen.

Die erstellten Logical Volumes sind dort aufgelistet. Nacheinander die entsprechenden Partitionen auswählen und auf 'Ändern' klicken, in diesem Fall '/dev/mapper/mintygroup-root'; '/dev/mapper/mintygroup-home'; und '/dev/sda1', die Bootpartition.

Alles mit ext4 formatieren und Einhängepunkt angeben. Für die Bootpartition sda1 /boot; für /dev/mapper/minty-root nur den /; und für home /home.

Das Gerät für die Bootloader-Installation ist /dev/sda.

Danach die Installation durchlaufen lassen. Beim Punkt 'Wer sind Sie?' die persönlichen Daten nicht mehr verschlüsseln ;). Nach der Installation WICHTIG (!) nicht neu starten, sondern 'Ausprobieren fortsetzen'.

Im Terminal in das neue Betriebssystem wechseln und Anpassungen vornehmen

Das neu installierte Betriebssystem einhängen und mit 'change root' in das System wechseln.

mount /dev/mapper/mintygroup-root /mnt
mount /dev/mapper/mintygroup-home /mnt/home
mount /dev/sda1 /mnt/boot
mount -o rbind /dev /mnt/dev
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
cp /etc/resolv.conf /mnt/etc/resolv.conf
chroot /mnt /bin/bash 

Damit wird das neu installierte Betriebssystem mit Rootrechten betreten. Die UUID des verschlüsselten Systems muss noch in die Datei /etc/crypttab eingetragen werden. Mit

blkid /dev/sda2

wird die UUID angezeigt. Mit

lsblk -o NAME,UUID,FSTYPE,SIZE,LABEL,MOUNTPOINT

wird das System aufgelistet.

Der Name von LVM2_member und die UUID von crypto_LUKS wird in die Datei /etc/crypttab eintragen.

echo "<Name_von_LVM2_member> UUID=<VOLUME_ID> none luks" >> /etc/crypttab

dann noch ein

update-initramfs -u -k all

und chroot kann verlassen werden:

exit

Jetzt kann das Live System heruntergefahren werden. Das neue Betriebssystem sollte jetzt bei Neustart hochfahren.

2. Verschlüsseltes LMDE Cinnamon installieren

Vorbereitungen

Das zweite Livesystem mit LMDE per USB-Stick oder DVD starten. Das Tastaturlayout wird unter Menu → Preferences → Keyboard → Keyboard layouts eingestellt. Mit dem Plusbutton Deutsch hinzufügen und in der Kontrollleiste einstellen.

Partitionen erstellen

Im Menu → Administration → GParted aufrufen und zwei Partitionen wie oben erstellen, eine Bootpartition, und eine für das System.

Skript zum Erstellen der Verschlüsselung herunterladen und anpassen

Der LMDE-Installer unterstützt noch keine Verschlüsselung. LMDE kann mit Hilfe eines Skriptes installiert werden.

Im Terminal

wget j.mp/lmdescrypt

eingeben. Das Skript ausführbar machen mit

chmod +x lmdescrypt

Die Datei befindet sich im Home Ordner und kann mit Rechtsklick → Open → Display im Texteditor geöffnet und editiert werden. Die Partitionsbezeichnungen müssen an die eben erstellten Partitionen angepasst werden.

boot_part=/dev/sda3
crypt_part=/dev/sda4

Der Rest kann nach eigenen Bedürfnissen editiert werden, z.B.

crypt_label=debbiegroup
data_label=home
root_size=15360M
swap_size=4096M
boot_format=ext4

WICHTIG (!) Das Gerät für die Bootloader Installation ist die Bootpartition. Wenn ein anderes OS mit Hilfe eines Installers installiert wird, muss das im Dropdown-Menü unter dem Punkt 'Die Partitionen vorbereiten' 'Gerät für die Bootloader Installation' auch so eingestellt werden.

grub_device=/dev/sda3

Dann noch

username und hostname anpassen, und die Datei speichern.

Im Terminal

sudo ./lmdescrypt

eingeben, und damit das Skript durchlaufen lassen. Anfangs muss das Password angegeben werden.

Nach dem Kopieren der Dateien wird das UNIX Password angegeben. Die Terminaleingaben werden über die Pfeiltasten und Enter gesteuert.

Das Skript ist sehr bequem, ein nachträgliches Einhängen entfällt. Das Skript endet mit Ready for reboot!

Die Sprachpakete müssen später über die Systemeinstellungen installiert werden.

3. Bootloader konfigurieren

Computer neu starten. Vorerst bootet nur Linux Mint KDE, da der Bootloader von LMDE nicht in den MBR geschrieben wurde, sondern nach /dev/sda3. LMDE muss noch in das Bootloader-Menu vom Linux Mint KDE eingetragen werden. Der Bootloader von Linux Mint KDE lädt dann LMDE nach (chainload).

Übersicht: Dazu wird Grub angepasst. Die Konfigurationsdatei liegt in /boot/grub/grub.cfg. Diese wird aber nicht geändert. Eigene Einträge werden in den Dateien unter /etc/default/grub und /etc/grub.d vorgenommen. Danach schreibt das System später mit dem Terminalbefehl

sudo update-grub

die Konfigurationsdatei in /boot/grub/grub.cfg neu.

Der menuentry von LMDE wird in der Linux Mint KDE-Datei  /etc/grub.d/40_custom eingetragen.

Der menuentry von LMDE findet sich im System LMDE in der Datei /boot/grub/grub.cfg. ---

 

Die LMDE-Bootpartition im Dateimanager einhängen und die Datei /boot/grub/grub.cfg öffnen.

Bis

### BEGIN /etc/grub.d/10_linux ###

scrollen, dann kommt der menuentry, der ungefähr so aussieht:

menuentry 'LinuxMint GNU/Linux' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0f7149da-2949-4e62-9653-3f0e3e301e1e' {
    load_video
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos3'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3  b305bd35-9614-4ef4-9fba-b3c70d38aec0
    else
      search --no-floppy --fs-uuid --set=root b305bd35-9614-4ef4-9fba-b3c70d38aec0
    fi
    echo    'Loading Linux 3.16.0-4-amd64 ...'
    linux    /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/debbiegroup-root ro  quiet splash
    echo    'Loading initial ramdisk ...'
    initrd    /initrd.img-3.16.0-4-amd64
}

Den menuentry in eine Zwischenablage kopieren. Im eigenen System Linux Mint 17 die Datei /etc/grub.d/40_custom mit Rootrechten öffnen und den menuentry (gegebenenfalls auch menuentrys für recoverymode und memtest) dort hinein kopieren. Der Name

'LinuxMint GNU/Linux'

kann dabei frei editiert werden.

Die Datei 40_custom mit einer Leerzeile (!) beenden und speichern. Der Bootloader des ersten Systems hat nun die Menüeinträge für das zweite System.

Danach die Datei /etc/default/grub mit Rootrechten editieren:

Hier wird

#GRUB_HIDDEN_TIMEOUT=0

 wie oben auskommentiert.

Mit einem

sudo update-grub

wird die grub.cfg von minty aktualisiert.

Danach sollte bei jedem Start zuerst das Bootmenü mit den Menüentrys erscheinen, und nach der Auswahl die Aufforderung zur Passworteingabe des jeweiligen verschlüsselten Systems.

Wird später im zweiten System der Kernel upgedatet, muss danach die 40_custom Datei im ersten System manuell erneuert werden, und die aktuelle Kernelversion eingetragen werden. Danach wird noch einmal mit sudo update-grub die grub.cfg neu geschrieben.

Das Bootmenü verschönern

Das Bootmenü lässt sich mit einem eigenen Hintergrundbild aufhübschen. Dazu ein JPG in derselben Auflösung des Bildschirms (z.B. 1366px x 768px) in das Verzeichnis /boot/grub kopieren (Hauptsystem). In /etc/default/grub

export GRUB_BACKGROUND="/boot/grub/dateiname.jpg"
GRUB_GFXMODE=1366x768 # exakte Bildschirmauflösung
GRUB_GFXPAYLOAD_LINUX=keep

eintragen.

In der /etc/grub.d/40_custom kann unter den menuentrys noch die Farbe der Schrift eingetragen werden,

z.B.

set color_normal="light-blue/black"
set menu_color_normal="light-cyan/black"

black bedeutet: Hintergrund ist transparent.

set color_normal: Farbe von Überschrift und Infozeile

set menu_color_normal: Farbe der Menüschrift

set menu_color_highlight: Schriftfarbe der ausgewählten Zeile

set color_highlight: Hintergrund der ausgewählten Zeile

Zur Auswahl stehen die Farben: magenta, cyan, blue, green, yellow, red, dark-gray, white, light-gray, black, light-red, brown, light-green, light-blue, light-cyan, und light-magenta.

Datei wieder mit einer Leerzeile beenden und speichern.

Nach einem

sudo update-grub

wird beim nächsten Start im Bootmenü das Hintergrundbild gezeigt.

Sicherheitseinstellungen vornehmen

Es ist sinnvoll, zur Sicherheit noch ein, zwei zusätzliche Passwörter zu erstellen. Das geht mit

sudo cryptsetup luksAddKey /dev/sda2

erst das alte, dann das neue Passwort angeben.

Am besten wird auch gleich der Header auf einen externen (verschlüsselten) Datenträger gesichert:

sudo cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /Pfad/zur/Backup-Datei/dateiname

Das war's, ein verschlüsseltes Dualboot ist jetzt fertig eingerichtet


Referenzen:

System verschlüsseln bei ubuntuusers

LMDE 201303 or 201403 with luks encrypted lvm2 partitions bei forums.linuxmint.com

LMDE Installationsskript bei GitHub

Grub2 Aussehen bei ubuntuusers

Neuen Kommentar schreiben

You must have Javascript enabled to use this form.