Installation mit UEFI und Verschlüsselung: Unterschied zwischen den Versionen
Tuxnix (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
* Es wird UEFI zum Booten genutzt | * Es wird UEFI zum Booten genutzt | ||
* SecureBoot wird deaktiviert sein | * SecureBoot wird deaktiviert sein | ||
* {{ic|/home}} und {{ic|/}} werden in einem [[LVM]] sein | * {{ic|/home}} und {{ic|/}} werden in einem [[LVM]] sein | ||
* Es wird keine [[Swap]]-Partition geben | * Es wird keine [[Swap]]-Partition geben | ||
Zeile 12: | Zeile 11: | ||
== Vorarbeiten == | == Vorarbeiten == | ||
* [https://www.archlinux.de/download Das aktuelle Arch-Image] herunterladen und auf einen USB-Stick bringen | |||
* Das Live-Image starten und eine Netzwerkverbindung herstellen ([[WLAN]] manuell verbinden falls nötig) | |||
* Mittels {{ic|loadkeys de-latin1}} das Tastaturlayout einstellen (deutsche Tastatur mit Umlauten, ansonsten entsprechend) | |||
== Partitionierung == | == Partitionierung == | ||
Zeile 90: | Zeile 91: | ||
* Mit der Bevorzugten Methode die [[Pacman#Spiegelserver|Spiegelserver]] auswählen | * Mit der Bevorzugten Methode die [[Pacman#Spiegelserver|Spiegelserver]] auswählen | ||
* {{ic|pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware | * {{ic|pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware dhcpcd nano}} – Installation des Hauptsystems. | ||
* {{ic|genfstab -Lp /mnt > /mnt/etc/fstab}} – Übertragen/erzeugen der [[fstab]] | * {{ic|genfstab -Lp /mnt > /mnt/etc/fstab}} – Übertragen/erzeugen der [[fstab]] | ||
* {{ic|arch-chroot /mnt}} – In das installierte System wechseln | * {{ic|arch-chroot /mnt}} – In das installierte System wechseln | ||
Zeile 126: | Zeile 127: | ||
{{hc|/boot/loader/loader.conf|timeout 1 | {{hc|/boot/loader/loader.conf|timeout 1 | ||
default arch}} | default arch.conf}} | ||
Achtung: Es wird dem System zwar mittels {{ic|init{{=}}/usr/lib/systemd/systemd}} die richtige Init-Binary genannt, allerdings kann das Paket {{paket|systemd-sysvcompat}} seit dem 6. Oktober 2019 nicht mehr deinstalliert werden, da es [https://bugs.archlinux.org/task/64071 zwangsweise] {{sprache|en}} als harte Abhängigkeit mit dem {{ic|base}}-Metapaket installiert wird. | Achtung: Es wird dem System zwar mittels {{ic|init{{=}}/usr/lib/systemd/systemd}} die richtige Init-Binary genannt, allerdings kann das Paket {{paket|systemd-sysvcompat}} seit dem 6. Oktober 2019 nicht mehr deinstalliert werden, da es [https://bugs.archlinux.org/task/64071 zwangsweise] {{sprache|en}} als harte Abhängigkeit mit dem {{ic|base}}-Metapaket installiert wird. | ||
Zeile 144: | Zeile 145: | ||
* [[X|Installation von X]] | * [[X|Installation von X]] | ||
* [[:Kategorie:Fenstermanager|Fenstermanager]] und [[:Kategorie:Desktopumgebung|Desktopumgebungen]] | * [[:Kategorie:Fenstermanager|Fenstermanager]] und [[:Kategorie:Desktopumgebung|Desktopumgebungen]] | ||
== Weblinks == | == Weblinks == |
Aktuelle Version vom 23. Juni 2021, 15:03 Uhr
Dieser Artikel beschreibt wie man Arch verschlüsselt und mit UEFI installiert. Das fertige System wird am Ende wie folgt konfiguriert sein.
- Es wird UEFI zum Booten genutzt
- SecureBoot wird deaktiviert sein
/home
und/
werden in einem LVM sein- Es wird keine Swap-Partition geben
- Das LVM wird mit einem Passwort verschlüsselt sein
Die weiterführende Installation von Programmen, das Anlegen von Useraccounts, und die Konfiguration des Systems über die Grundinstallation hinaus sind nicht Teil dieses Artikels.
Vorarbeiten
- Das aktuelle Arch-Image herunterladen und auf einen USB-Stick bringen
- Das Live-Image starten und eine Netzwerkverbindung herstellen (WLAN manuell verbinden falls nötig)
- Mittels
loadkeys de-latin1
das Tastaturlayout einstellen (deutsche Tastatur mit Umlauten, ansonsten entsprechend)
Partitionierung
Es wird in diesem Artikel davon ausgegangen, dass es sich um ein modernes System mit NVMe-SSD handelt, entsprechend wird nvme0n1
verwendet, um den Datenträger zu referenzieren. Auf dem System sollte vorab mittels lsblk -do KNAME,TYPE,SIZE,MODEL
geprüft werden, welche Datenträger erkannt werden, und wie diese referenziert werden. An allen Stellen, an denen nvme0n1
genannt wird, muss dies mit dem ermittelten Device ersetzt werden.
Sofern die SSD schon Daten enthielt, ist es sinnvoll den Datenträger zuerst einmal zu bereinigen. Hierzu ist es ausreichend, das komplette Device mit Nullen zu überschreiben. Sofern die Dateisysteme noch Daten enthalten, die man weiterhin verwenden möchte, so ist vorher ein Backup zu machen. Die Daten sind hinterher unwiederbringlich verloren!
dd status=progress if=/dev/zero of=/dev/nvme0n1
Wenn der Vorgang abgeschlossen ist, wird die Partitionierung wie folgt vorgenommen. Die EFI-Partition ist mit 512 Megabyte relativ groß, bietet dadurch aber maximale Flexibilität und ist Zukunftssicherer, als zum Beispiel nur 100 oder gar 50 Megabyte zu verwenden, vor allem, weil auf der Partition später auch die Kernel-Images liegen, da sie zusätzlich als /boot
verwendet wird.
gdisk /dev/nvme0n1
– Starten von gdisk- o – Erzeugen einer neuen GPT im cache. (Protektiver MBR zur Kompatibilität)
- y – Bestätigung
- n – Erstellen einer neuen Partition
- ↵ Enter – Partitionsnummer bestätigen
- ↵ Enter – Den ersten Sektor bestätigen
+512M
– Die Partitionsgröße festlegenef00
– Den Partitionstyp einer EFI-Partition setzenn
– Eine weitere Partition erstellen- ↵ Enter – Partitionsnummer bestätigen
- ↵ Enter – Ersten Sektor bestätigen
- ↵ Enter – Letzten Sektor bestätigen
- ↵ Enter – Linux Partitionstyp (8300) bestätigen
Mittels P kann man sich die Partitionstabelle nun noch mal ansehen. Es sollten dort zwei Partitionen erscheinen, die erste Partition hat als „Name“ „EFI System“ angegeben und ist 512 MiB groß, die zweite Partition ist „Linux System“ und ist so groß, wie der restliche Platz auf dem Datenträger
Wenn dies der Fall ist, mittels W und danach Y die Partitionstabelle auf die SSD schreiben.
Zweite Partition verschlüsseln und das LVM einrichten
Nach Einrichtung der Partitionen wird in der zweiten Partition nun mittels dm-crypt ein verschlüsselter Container erstellt, der sich über die gesamte Partition erstreckt. In diesem Container wird ein LVM erstellt, das die Root-Partition /
und die /home
-Partition enthält. Dies wird gemacht, damit man mit nur einem Passwort an alle Dateisysteme kommt, ohne mit Scripts oder einer crypttab
arbeiten zu müssen.
Zuerst sollte mittels blkid
geprüft werden, welches das Device für die Zweite Partition ist. Der Artikel geht davon aus, dass dies /dev/nvme0n1p2
ist. Diese Referenz ist entsprechend anzupassen.
modprobe dm-crypt
– Kernelmodul für die Verschlüsselung ladencryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/nvme0n1p2
– Verschlüsseln (YES
und dann zweimal das gewünschte Passwort)
Die zweite Partition ist damit verschlüsselt. Das Passwort unbedingt gut merken, ohne dieses ist kein rankommen mehr an alle Dateien im späteren /
und /home
.
Die Dateisysteme werden in einem LVM angelegt. Hierzu wird der verschlüsselte Container zuerst entschlüsselt und gemappt. In dem dann zugänglichen Container wird dann ein Physical Volume (PV) erstellt in dem dann eine Volume Group (VG) angelegt wird, in der dann die nötigen Logical Volumes (LVs) definiert werden.
Die Root-Partition sollte dem zukünftigen Verwendungszweck des Geräts angepasst werden. Wenn man sehr viel große Software wie zum Beispiel Spiele installiert, sollte man /
entsprechend größer bemessen. Wenn man nur ein Basis-System haben will, und die Daten nur Benutzerseitig anfallen, reichen 30-40 Gigabyte aus. Auch hier gilt, im Zweifelsfall lieber auf Nummer sicher gehen.
Auf einem durchschnittlichen Alltagssystem reichen 50 Gigabyte im Regelfall sehr gut aus, und schaffen einen guten Kompromiss aus Ausfallsicherheit und für Anwender nutzbarem Platz
cryptsetup luksOpen /dev/nvme0n1p2 lvm
– Den Container nach/dev/mapper/lvm
mappenpvcreate /dev/mapper/lvm
– PV erstellenvgcreate main /dev/mapper/lvm
– VG anzulegenlvcreate -L 50GB -n root main
– LV für/
definierenlvcreate -l 100%FREE -n home main
– LV für/home
erstellen (kleines L im Parameter beachten!)
Dateisysteme erstellen und für die Installation mounten
Nach der Einrichtung des Verschlüsselten LVMs müssen die erzeugen LVs noch formatiert werden. Auch die angelegte EFI-Partition muss noch entsprechend vorbereitet werden. Der Artikel geht davon aus, dass die erste Partition /dev/nvme0n1p1
ist.
mkfs.fat -F 32 -n UEFI /dev/nvme0n1p1
– Formatieren der EFI-Partitionmkfs.ext4 -L root /dev/mapper/main-root
– Das zukünftige/
formatierenmkfs.ext4 -L home /dev/mapper/main-home
– Das zukünftige/home
formatieren
Nachdem die Dateisysteme erstellt wurden, müssen sie für die Installation gemountet werden.
# Rootpartition mounten mount /dev/mapper/main-root /mnt # Homepartition mounten mkdir /mnt/home mount /dev/mapper/main-home /mnt/home # Bootpartition mounten mkdir /mnt/boot mount /dev/nvme0n1p1 /mnt/boot
Hiernach kann die Grundinstallation angegangen werden
Die Grundinstallation durchführen und System konfigurieren
Die nun durchführbare Grundinstallation unterscheidet sich im großen und ganzen nur an einigen Stellen von einer herkömmlichen Grundinstallation.
- Mit der Bevorzugten Methode die Spiegelserver auswählen
pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware dhcpcd nano
– Installation des Hauptsystems.genfstab -Lp /mnt > /mnt/etc/fstab
– Übertragen/erzeugen der fstabarch-chroot /mnt
– In das installierte System wechselnecho MeinTollerRechnername > /etc/hostname
– Hostnamen festlegen
Die Systemsprache wird in /etc/locale.gen
und /etc/locale.conf
definiert. Es ist eine gute Entscheidung, das System als solches auf Englisch zu belassen, also in /etc/locale.conf
keine Konfiguration vorzunehmen, sondern lediglich in /etc/locale.gen
die gewünschten Angaben einzukommentieren.
/etc/locale.gen
de_DE.UTF-8 UTF-8 en_DK.UTF-8 UTF-8 en_US.UTF-8 UTF-8
Danach mittels locale-gen
die entsprechenden Locales generieren. Welche Sprache die Benutzeroberfläche nachher haben soll, kann in den entsprechenden Dateien im Homeverzeichnis der jeweiligen Anwender definiert werden.
Sofern man eine deutsche Tastatur verwendet, und öfters ohne X unterwegs ist, bietet sich an, dies per echo KEYMAP=de-latin1 > /etc/vconsole.conf
entsprechend im System zu hinterlegen. Ebenso sollte man seine Zeitzone entsprechend verlinken. Für Deutschland geht das per ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
. Weitere Informationen dazu, finden sich in Arch Linux auf Deutsch stellen.
Damit das System beim booten alle nötigen Module laden kann, muss die mkinitcpio angepasst werden. Und zwar gibt es dort eine Liste MODULES
und eine Liste HOOKS
, diese müssen wie folgt aussehen.
/etc/mkinitcpio.conf
MODULES=(ext4) HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)
Wenn die Datei angepasst wurde, muss mittels mkinitcpio -p linux
das Kernel-Image neu erstellt werden. Danach wird noch mittels passwd
ein Root-Password gesetzt.
UEFI-Bootloader installieren und konfigurieren
Der Einfachheit halber kommt als EFI-Bootloader bootctl von Systemd zum Einsatz. Dieser wird mittels bootctl install
vorbereitet. Nach der Vorbereitung müssen die zu bootenden Systeme konfiguriert werden. Dies geschieht, indem man die entsprechenden Dateien wie folgt anlegt.
/boot/loader/entries/arch.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options cryptdevice=/dev/nvme0n1p2:main root=/dev/mapper/main-root rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
/boot/loader/entries/arch-fallback.conf
title Arch Linux Fallback linux /vmlinuz-linux initrd /initramfs-linux-fallback.img options cryptdevice=/dev/nvme0n1p2:main root=/dev/mapper/main-root rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
/boot/loader/loader.conf
timeout 1 default arch.conf
Achtung: Es wird dem System zwar mittels init=/usr/lib/systemd/systemd
die richtige Init-Binary genannt, allerdings kann das Paket systemd-sysvcompat seit dem 6. Oktober 2019 nicht mehr deinstalliert werden, da es zwangsweise als harte Abhängigkeit mit dem base
-Metapaket installiert wird.
System verlassen und neu starten
An diesem Punkt ist das System installiert und konfiguriert, sowie der EFI-Bootloader installiert und konfiguriert. Nun wird das Installierte System sauber verlassen, und das Gerät neu gestartet.
exit umount /mnt/{boot,home,} reboot
Beim starten wird man nun nach dem Passwort für /dev/nvme0n1p2
gefragt. Dies enthält, wie konfiguriert, die VG mit den beiden LVs für /
und /home
. Wenn das System hochgefahren ist, kann man sich mit root mit dem zuvor vergebenen Kennwort anmelden. An diesem Punkt hat man eine verschlüsselte, UEFI nutzende, vollwertige Installation von Arch Linux, die man als Grundlage nutzen kann, um sein System individuell nach Einsatzzweck aufzubauen.
Anschließende Artikel
- Benutzer und Gruppen
- Arch Linux auf Deutsch stellen
- Installation von X
- Fenstermanager und Desktopumgebungen