(Beachtet auch meine aktuelle Anleitung: Arch Linux mit LUKS Verschlüsselung auf UEFI System installieren https://legacy.thomas-leister.de/arch-linux-luks-verschluesselt-auf-uefi-system-installieren-2/)
… korrekt müsste es eigentlich heißen: „Arch verschlüsselt installieren“, denn tatsächlich wird nur die Arch Installation (Root-, Swap- und Homepartition) verschlüsselt. Die /boot Partition und der Bootloader müssen von der Verschlüsselung befreit werden, denn die Initialsysteme müssen ja auch ohne Passwort starten können ;)
In der Realität sieht es dann so aus, dass man vor dem Start von Arch Linux nach einem Passwort gefragt wird, um die entsprechende root-Partition zu entschlüsseln. Erst, wenn das richtige Passwort eingegeben wurde und die Partition entschlüsselt werden kann, ist es möglich, sich ganz normal über Benutzernamen und Passwort einzuloggen.
Vor allem bei Notebooks oder anderen mobilen Geräten ist eine Festplattenverschlüsselung empfehlenswert. Wird das Gerät gestohlen, hat der Dieb keine Chance, an persönliche Daten oder die Inhalte des Rootverzeichnisses zu kommen. Mit den unverschlüsselten Partitionen für den Bootvorgang kann man absolut nichts anfangen. Sie sind völlig uninteressant.
Meine erstes Arch überhaupt habe ich gleich verschlüsselt installiert und bin dabei auf ein paar Schwierigkeiten gestoßen. Im Arch Linux gibt es natürlich Anleitungen für eine einfache Installation und eine verschlüsselte Festplatte, aber eine komplette Anleitung „aus einem Guss“ fehlt. Manche Stellen bleiben unklar. Dennoch habe die verschlüsselte Arch Installation über das Wiki zum Laufen bekommen und seitdem läuft es einwandfrei. Weil die Einrichtung für Arch-Anfänger evtl. nicht immer einfach ist, biete ich auf dieser Seite eine komplette Anleitung für die Installation an, sodass man sich das Recherchieren und Suchen im Arch Wiki sparen kann und lediglich diese Anleitung befolgen muss.
Diese Anleitung geht von folgendem Setup aus:
Eine Festplatte „sda“ soll vollständig für Arch Linux genutzt werden. Eine getrennte Homepartition wird nicht angelegt; das Homeverzeichnis wird in /root angelegt. Das macht die Sache einfacher. Zudem arbeite ich auf einem System mit BIOS und GPT. In der Beschreibung meines Mainboards steht zwar etwas von UEFI BIOS, aber mit einem richtigen UEFI hat das herzlich wenig zu tun. Ich konnte bei der Installation UEFI einfach ignorieren und eine herkömmliche, einfache Installation ohne EFI vornehmen.
Wer EFI nutzt/nutzen will/nutzen muss, muss sich eine zusätzliche EFI Partition des Dateisystem-Typs ef00 anlegen. Wie das mit EFI Funktioniert, könnt ihr hier nachlesen: https://wiki.archlinux.org/index.php/UEFI#MBR_partitioned_disks. Bei der Installation von GRUB muss dann auch etwas anders vorgegangen werden: https://wiki.archlinux.org/index.php/GRUB#UEFI_systems_2
Passt mit euren Partitionen auf, wenn ihr eine zusätzliche EFI Partition habt! Ich hab hier keine solche Partition. Also auf die richtigen Partitionsziffern acht geben! ;)
Demnächst folgt vielleicht noch ein extra Guide für EFI Systeme. UEFI und nicht-UEFI Systeme hier in einen Beitrag zu quetschen sorgt nur für Verwirrung. Zurück zum Setup!
Die Festplatte wird in drei Partitionen geteilt:
- sda1: Bootpartition für den GRUB Bootloader
- sda2: Linux Bootpartition („/boot“)
- sda3: Partition, die verschlüsselt wird und einen LVM Container enthält
Der LVM Container (Bezeichnung „main“) wiederum enthält:
- „root“ Das Rootverzeichnis inkl. Home
- „swap“ Das Swapverzeichnis zum Auslagern des Arbeitsspeichers
Ich gehe davon aus, dass Arch Linux bereits von USB Stick oder CD / DVD gestartet wurde und die Kommandozeile auf dem Bildschirm zu sehen ist.
Wer eine Tastatur mit deutscher Tastenbelegung hat, will sie Tasten vermutlich richtig einstellen ;) Im Moment ist das „z“ beispielsweise noch mit dem „y“ belegt, und die ?-Taste mit dem Bindestrich. Das richtige Layout kann man so aktivieren:
loadkeys de-latin1-nodeadkeys
Partitionen anlegen
Startet das Partitionierungstool gdisk:
gdisk /dev/sda
Stellt sicher, dass eure Festplatte unpartitioniert ist oder löscht schon vorhandene Partitionen. Dabei gehen natürlich alle Daten verloren; ihr habt also jetzt die letzte Chance, eure Daten in Sicherheit zu bringen. Evtl. vorhandene Partitionen könnt ihr auflisten, indem ihr den Befehl „p“ eingebt. Eine Liste aller vorhandenen Partitionen wird ausgegeben. Mit dem Kommando „d“ könnt ihr die aufgelisteten Partitionen löschen.
Jetzt werden nach obigen Muster drei neue Partitionen unterschiedlicher Größe angelegt. Gebt „n“ ein, um eine neue Partition anzulegen und haltet euch an diese Eingaben:
„Partition number“ => ENTER „First sector“ => ENTER „Last sector“ => +3M "Hex code" => ef02
Damit wurde eine Partition der Größe 3 MB am Anfang des Laufwerks für den Grub Bootloader angelegt. Jetzt folgt die 100MB große /boot Partition; wählt wieder „n“ und gebt folgendes an:
„Partition number“ => ENTER „First sector“ => ENTER „Last sector“ => +100M "Hex code" => ENTER
Zum Schluss die dritte Partition, die den restlichen Platz auf dem Laufwerk einnehmen soll. Hier braucht ihr die Fragen nur mit ENTER abnicken, also 4x ENTER.
Wenn ihr nochmal eine Übersicht mit allen angelegten Partitionen bekommen wollt, gebt den Befehl „p“ ein.
Wichtig:
Die Änderungen sind noch nicht auf die Festplatte geschrieben. Das wird jetzt mit dem Befehl „w“ erledigt.
Die Bootpartition wird gleich mit dem ext4 Dateisystem formatiert:
mkfs.ext4 /dev/sda2
Hauptpartition mit LUKS verschlüsseln
Um evtl. noch vorhandene Daten sicher zu vernichten, wird die Partition sda3 mit Nullen überschrieben:
shred -vn 0 -z /dev/sda3
Um die nötigen Kryptographiefunktionen nutzen zu können, muss noch das entsprechende Kernelmodul eingebunden werden:
modprobe dm-crypt
Jetzt kann die Partition endlich verschlüsselt werden. Das geschieht mit folgendem Befehl:
cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda3
Für Partitionen von einer Größe von mehr als 2 TB sollte „aes-xts-plain64“ verwendet werden. Gebt YES in Großbuchstaben ein und legt ein sicheres (!) Passwort für die Verschlüsselung fest. Die verschlüsselte Partition wird gleich eingebunden, damit mit der Einrichtung von LVM fortgefahren werden kann:
cryptsetup luksOpen /dev/sda3 lvm
Übrigens: Das Passwort kann später problemlos geändert werden. Auch das Hinzufügen von zusätzlich gültigen Passwörtern ist möglich.
LVM Einrichten
Mit LVM können virtuelle Partitionen erstellt werden, die leicht in ihrer Größe veränderbar sind und wie normale Partitionen in das Betriebssystem eingebunden werden. Innerhalb unserer verschlüsselten Partition sda3 wird ein LVM Container angelegt, der die beiden virtuellen Partitionen root und swap beinhaltet.
Erstellen des Containers und der Volume Group mit der Bezeichnung „main“:
pvcreate /dev/mapper/lvm vgcreate main /dev/mapper/lvm
SWAP Partition mit 4 GB Größe erstellen: (Etwa Größe des Arbeitsspeichers)
lvcreate -L 4GB -n swap main
Die Rootpartition inkl. Home bekommt den Rest des zur Verfügung stehenden Platzes:
lvcreate -l 100%FREE -n root main
Die Rootpartition wird mit ext4 formatiert:
mkfs.ext4 /dev/main/root
Partitionen einbinden
Im nächsten Schritt werden Boot- und Rootpartition ins Dateisystem des Livemediums (USB Stick, CD / DVD) eingebunden:
mount /dev/main/root /mnt mkdir /mnt/boot mount /dev/sda2 /mnt/boot
… und SWAP aktiviert:
mkswap /dev/main/swap swapon /dev/main/swap
Netzwerk- / Internetverbindung herstellen
Für die Installation von Arch Linux ist eine Internetverbindung nötig. Sollte der Rechner über ein LAN Kabel an den Router angeschlossen sein, ist normalerweise direkt ein Zugriff auf das Internet möglich. Prüfen kann man das über
ping -c3 8.8.8.8
Werden Antworten geliefert, ist mit der Verbindung alles in Ordnung.
Sollte keine Verbindung möglich sein, kann man versuchen, sich vom Router eine IP Adresse zuteilen zu lassen. In den meisten Fällen funktioniert die Internetverbindung dann:
ip link
… um die Bezeichnung der Netzwerkschnittstelle auszulesen. Sie beginnt mit „enp…“ Über den Befehl
dhcpcd enpxxx
wird dem Rechner eine IP Adresse zugeteilt.
Spiegelserver einstellen
Für die bestmögliche Verbindung zu den Software Repositories wird die Liste der Spiegelserver bearbeitet. Macht ein Backup der Datei „mirrorlist“ und öffnet sie dann:
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak nano /etc/pacman.d/mirrorlist
Bewegt den Cursor zu einem Eintrag und löscht die Zeile mit STRG+K. Ich empfehle alle Einträge zu entfernen, bis auf die ersten 3 „Germany“ Server. Speichert die Datei ab und verlasst den Editor.
Arch installieren
Arch Linux kann nun auf der Festplatte installiert werden:
pacstrap /mnt base base-devel
Je nach Leistung der Internetverbindung kann der Vorgang eine Weile dauern. Die wichtigsten Softwarepakete werden heruntergeladen und installiert.
fstab erstellen
Fehlt noch die fstab Datei, die die einzubindenden Partitionen festlegt. Diese wird folgendermaßen erstellt:
genfstab -p /mnt > /mnt/etc/fstab
Spiegelserver in neues System übernehmen
Die Spiegelserverliste des aktuellen Live-Systems kann direkt in das neu installierte System übernommen werden:
cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist
Weitere Konfigurationsarbeiten
Für alle weiteren Konfigurationen wird in die neue Arch Installation gewechselt:
arch-chroot /mnt/
Hostname festlegen
Der Hostname des Computers (z.B. thomas-pc) wird festgelegt:
echo myhost > /etc/hostname
wobei „myhost“ der Hostname ist.
Spracheinstellungen
echo LANG=de_DE.UTF-8 > /etc/locale.conf echo LC_COLLATE=C >> /etc/locale.conf
Tastaturbelegung
echo KEYMAP=de-latin1 > /etc/vconsole.conf
Zeitzone
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Locale generieren
Öffnet die Datei „/etc/locale.gen“ und entfernt bei den folgenden Einträgen das Kommentarsymbol (#) am Anfang der Zeile:
#de_DE.UTF-8 UTF-8 #de_DE ISO-8859-1 #de_DE@euro ISO-8859-15
Zur Generierung wird noch ein
locale-gen
ausgeführt.
Initramfs erzeugen
Bevor die initial ramdisk generiert werden kann, muss noch eine Änderung in der Datei „/etc/mkinitcpio.conf“ vorgenommen werden:
nano /etc/mkinitcpio.conf
„HOOKS“ muss so abgeändert werden:
HOOKS="base udev autodetect modconf block filesystems keyboard keymap encrypt lvm2 fsck"
… damit wird dem Kernel gesagt, dass er die angegebenen Module beim Start laden soll, sodass die Hauptpartition vor dem Start entschlüsselt werden kann. Außerdem wird dafür gesorgt, dass eine Eingabe über die Tastatur möglich ist.
Sind die Änderungen durchgeführt, wird initramfs generiert:
mkinitcpio -p linux
GRUB Bootloader installieren
Für einen Start ist auch noch ein Bootloader nötig.
GRUB installieren:
pacman -S grub
Auch in der GRUB Konfiguration muss noch etwas geändert werden:
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet“
wird so abgeändert:
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda3:main lang=de locale=de_DE.UTF-8"
Die GRUB Konfiguration wird auf die Boot-Partition geschrieben und GRUB auf die Festplatte installiert:
grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda
Arch Linux neu starten
Die Installation ist abgeschlossen. Zum Schluss werden die Partitionen noch ausgehangen und der Computer neu gestartet:
exit umount /dev/sda2 umount /dev/main/root reboot
Vergesst nicht, den Live-Datenträger aus dem Laufwerk zu entfernen bzw den USB Stick zu ziehen, sonst startet Arch nicht von der Festplatte. ;)
Nach einem Neustart wird man nach dem Passwort für die verschlüsselte Partition gefragt. Danach startet Arch Linux und ein ganz normaler Login über die Konsole ist möglich. Für alle weiteren Schritte (Netzwerkeinrichtung, Desktopumgebung, etc) könnt ihr der Anleitung im Arch Wiki ab dem Punkt „Netzwerkverbindung erneut herstellen“ folgen.
Vergesst nicht, das Passwort für den root User zu ändern. Loggt euch als root ein und führt ein
passwd
aus, um ein neues Passwort festzulegen.
Hinweis für Systeme mit verschlüsselter SSD
Damit die TRIM / Discard – Funktion bei verschlüsselten SSDs funktioniert, folgt diesem Beitrag: TRIM für verschlüsselte SSDs ermöglichen
Quellen:
Anleitung für Einsteiger | wiki.archlinux.de
Festplatte verschlüsseln | wiki.archlinux.de
GPT | wiki.archlinux.de
> Linux Kernel erzeugen
> mkinitcpio -p linux
Über mkinitcpio wird die initramfs erstellt, nicht der Linuxkernel (zumal dieser kompiliert wird und nicht generiert, kleiner aber feiner Unterschied). Siehe auch hier: https://wiki.archlinux.org/index.php/mkinitcpio
> Manche Stellen bleiben unklar.
Ergänze diese doch im Arch Linux Wiki :)
Btw: Muss das sein, dass bei Kommentaren die Mailadresse eingegeben werden muss? Ich bin ja für Anonymität.
Ansonsten: Danke für die Anleitung, will mein nächstes Arch auch mit Vollverschlüsselung haben.
https://legacy.thomas-leister.de
Hi,
danke für deine Richtigstellung. Den Fehler habe ich direkt aus dem Arch Wiki „Anleitung für Einsteiger“ übernommen >_< Wegen der Sache mit den E-Mail Adressen... ja, da hast du eigentlich recht. Frage mich gerade, warum mich das noch nicht gestört hat. Aber da du es gerade ansprichst... werde mich mal umsehen, wie man das abschalten kann. (Bzw als optionale Eingabe definieren kann) Ansonsten kannst du natürlich auch eine vollkommen blödsinnige Fake-Email Adresse eingeben. Da sind meine Besucher meistens sehr kreativ... ;) LG Thomas
https://legacy.thomas-leister.de
Update: Das Kommentieren von Beiträgen ist jetzt auch ohne Angabe von Name und E-Mail Adresse möglich :)
Yeah, es geht :)
Dankeschön.
https://network23.org/mautau79
Vielen Dank!
Auf Grund dieses Artikel bin ich von Debian auf Arch Linux umgestiegen.
Blöde Frage: ist die Installation mit EFI?
https://legacy.thomas-leister.de
Gar keine blöde Frage ;)
Auf meinem Desktop Rechner war es so, dass man anscheinend keine EFI Partition gebraucht hat. Das UEFI war wohl auch kompatibel zum älteren BIOS System. Auf meinem Ultrabook Asus Zenbook Prime UX31a ist es aber so, dass eine EFI Partition vorhanden sein muss. Normalerweise existiert schon eine wegen des vorinstalierten Windows 8, aber die hatte ich mir versehentlich zerschossen, sodass ich extra eine erstellen musste.
Am besten schaust du mal hier vorbei: https://wiki.archlinux.org/index.php/UEFI#EFI_System_Partition
Mit dem EFI hatte ich ziemlich zu kämpfen, weil ich mich damit noch kaum auskenne. UEFI ist irgendwie nach wie vor ein Mysterium für mich ;) Eigentlich wollte ich zur UEFI Installation noch eine Anleitung schreiben, aber soweit ich weiß, kann man mit VirtualBox noch kein UEFI system simulieren?
LG Thomas
https://legacy.thomas-leister.de
Update:
Hab das oben im Beitrag ergänzt. VirtualBox kann sogar EFI habe ich gerade gesehen, dann kann ich mir das nochmal genauer anschauen. Also wie gesagt: Auf dem System, zu dem ich diesen Beitrag geschrieben habe, konnte ici EFI einfach ignorieren. Zu dem Mainboard heißt es beim Hersteller: „UEFI BIOS Interface“.
Auf meinem Asus Ultrabook hingegen musste es unbedingt eine EFI Partition geben, sonst ging nix.
LG Thomas
Okay, weil ich wohl nämlich irgendwie am GRUB gescheitert bin. Bis zu dem Punkt hat es eigentlich ganz gut funktioniert.
Die Grub-Installation faselte noch was von wegen: Fehlendes EFI.
Auf dem USB-Stick bootete es aber mit EFI. Der Befehl >> efivar -l << spuckt eine entsprechende Liste an UEFI-Variablen aus.
Als ich dann auf die Arch-Installation wechselte, war das auf einmal weg und Grub wollte nicht so ^^
Da ich auch nicht weiß, an welcher Stelle ich nun falsch abgebogen bin, muss ich wohl meine SDD nochmal plätten und zurück zu los :/
https://legacy.thomas-leister.de
Ja, ich musste vor einer Woche auch die Erfahrung machen, an der GRUB Installation zu scheitern. Bin dann glaub ich fast 4 Stunden an der Installation gesessen, bis ich die Sache mti UEFI endlich verstanden habe und das ganze gelaufen ist. Habe Arch sicherlich 5-6 Mal installiert :-| Frustrierend.
Hab das oben nochmal präzisiert. Bin jetzt darauf gekommen, dass ich auf dem Desktopsystem nur irgend so ein Pseudo-UEFI habe und die Installation deshalb so einfach war. Wie oben im Artikel schon steht, wenn man ein richtiges UEFI hat, muss man eine zusäzliche Partition vom Typ ef00 einführen (dann aber auf die Partitionsbezeichner acht geben, wenn man diese Anleitung befolgt!) und bei der GRUB Installation muss man auch speziell vorgehen.
Irgendwie doof, dieses UEFI. Aber wenn man es einmal verstanden hat, geht’s.
LG Thomas
Danke.
Die Partitionen waren schon entsprechend belegt.
sda = hdd (darauf hatte ich eine Partition für Bilder, Videos, Musik, etc.)
sdb = ssd (hätte gerne die ssd auf sda gehabt, aber sollte eigentlich egal sein oder? Oder muss EFI immer auf sda liegen?)
-> sdb1 = EFI (mit EF00 und fat32)
-> sdb2 = boot (8300 und ext4)
-> sdb3 = LVM (wie von Dir beschrieben)
Naja, für heute mache ich wohl erst einmal Pause und nächste Woche geht es weiter.
Bei UEFI ist halt noch die Frage: Wie lange kann man unter Linux drauf verzichten oder wird es auch unter Linux mal irgendwann Pflicht. Dann wäre es irgendwie blöd, wenn man im „Bios-Modus“ unterwegs ist.
https://legacy.thomas-leister.de
Da bin ich mir nicht sicher. Wüsste aber keinen Grund, warum das nicht gehen sollte. In den UEFI Einstellungen wird sowieso die Platte eingestellt, von der zuerst gestartet werden soll. In deinem Fall müsstest du dann eben auf die SSD stellen. Dann wird dort nach der EFI Partition gesucht und das EFI kann dann GRUB starten und GRUB kann dann Arch starten ;)
LG Thomas
Arx.. wer lesen kann…
Das Wiki verweist auf eine wichtige Zeile, die vor der Installation von grub/gummiboot oder was auch immer eingegeben werden sollte:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # ignore if already mounted
Das bindet die efivars ins System ein, die grub bei der Installation wohl braucht.
# pacman -S grub efibootmgr
Zum Abschluss kommt dann aber ein entsprechend langer Befehl, was mich etwas verwirrt oO
# grub-install –target=x86_64-efi –efi-directory=[..wo man efi auch immer hingelegt hat] –bootloader-id=arch_grub –recheck
Was bei dem englischen Wiki irritiert: Dort wird die EFI mit ins Boot geworfen.
Beim Deutschen Wiki hat EFI & Boot je eine eigene Partition auf der Platte.
Boot wird dann auf /mnt/boot und EFI auf /mnt/boot/efi eingebunden.
So, habe das System zum Laufen bekommen. Beim ersten Booten erkannte Linux die verschlüsselte LVM-Partition nicht, was dann das Booten zum Scheitern brachte. Das andere Problem war, dass nach dem Reboot die Partitionen andere Device-Nummern hatten (letzteres war aber recht schnell behoben)
Das Stöbern im englischen Arch-Wiki förderte dann folgendes zu Tage:
Damit Linux eine verschlüsselte Partition öffnet und das Passwort abfragt, müssen die Hooks anders gesetzt sein, als du es in der Anleitung hast, also statt:
-> base udev autodetect modconf block filesystems keyboard keymap encrypt lvm2 fsck
soll es diese Reihenfolge sein
-> base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown
Laut dem englischen Wiki ist shutdown auch dann empfohlen, wenn die Root-Partition verschlüsselt ist.
(Quelle: https://wiki.archlinux.org/index.php/LUKS#Configure_initramfs )
https://legacy.thomas-leister.de
Hi,
merkwürdig. Die Hooks habe ich auf Desktop PC und Ultrabook 1:1 so gesetzt wir es in meiner Anleitung steht und es funktioniert einwandfrei. (Gerade nochmal nachgeschaut) Hm. Na Hauptsache, es läuft jetzt bei dir ;)
LG Thomas
Hallo,
ich habe gerade alles nach deiner Anleitung ausgeführt und Stelle fest, dass mein Arch die Swap Partition nicht erkennt. Kann es sein, dass das auch bei dir der Fall ist?
was gibt „top“ bei dir aus?
https://legacy.thomas-leister.de
Hi,
Swap läuft auf beiden Rechnern ohne Probleme. Versuch mal, swap mit dem swapon Kommando nochmal zu aktivieren.
LG Thomas
Hallo, ich bins wieder.
Ich habe nochmal versucht Arch zu installieren, weil ich das mit der Swap Partition nicht hinbekommen habe.
Jetzt habe ich bei:
grub-mkconfig -o /boot/grub/grub.cfg
folgende Fehlermeldungen:
/run/lvm/lvmetad.socket: connect failed: No such file or directory
Ja den Fehler habe ich auch.
Ich glaube das ist so manchmal geht’s manchmal geht’S nicht.
Jedenfalls habe ich das Gefühl…
und beim ersten start bekomme ich an der Stelle wo ich das PW eingeben soll, folgende Fehlermeldung:
[ 1.524067 usb 1-1.2: device descriptor read/64, error -32