Installation mit UEFI und Verschlüsselung: Unterschied zwischen den Versionen
E1mo (Diskussion | Beiträge) K Pfad zur /etc/mkinitcpio.conf angeben |
Blödsinn bei der Locale-Konfiguration überarbeitet; siehe auch Diskussionsseite |
||
Zeile 93: | Zeile 93: | ||
* {{ic|echo MeinTollerRechnername > /etc/hostname}} – Hostnamen festlegen | * {{ic|echo MeinTollerRechnername > /etc/hostname}} – Hostnamen festlegen | ||
Die | Die verfügbaren Sprachen werden in {{ic|/etc/locale.gen}} definiert, indem man die gewünschten Angaben einkommentiert. | ||
{{hc|/etc/locale.gen|de_DE.UTF-8 UTF-8 | {{hc|/etc/locale.gen|de_DE.UTF-8 UTF-8 | ||
Zeile 99: | Zeile 99: | ||
en_US.UTF-8 UTF-8}} | en_US.UTF-8 UTF-8}} | ||
Danach mittels {{ic|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. | Danach mittels {{ic|locale-gen}} die entsprechenden Locales generieren. Welche Sprache die Benutzeroberfläche nachher haben soll, kann in {{ic|/etc/locale.conf}} oder den entsprechenden Dateien im Homeverzeichnis der jeweiligen Anwender definiert werden. Systemd stellt hierzu den Befehl {{ic|localectl set-locale}} zur Verfügung. | ||
Sofern man eine deutsche Tastatur verwendet, und öfters ohne [[X]] unterwegs ist, bietet sich an, dies per {{ic|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 {{ic|ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime}}. Weitere Informationen dazu, finden sich in [[Arch Linux auf Deutsch stellen]]. | Sofern man eine deutsche Tastatur verwendet, und öfters ohne [[X]] unterwegs ist, bietet sich an, dies per {{ic|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 {{ic|ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime}}. Weitere Informationen dazu, finden sich in [[Arch Linux auf Deutsch stellen]]. |
Version vom 25. Oktober 2020, 16:34 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
- Es kommt GPT als Partitionstabelle zum Einsatz
/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
Zunächst muss das Arch-Image heruntergeladen und auf einen USB-Stick gebracht werden. Das aktuelle Image erhält man auf der Download-Seite. Das System dann per Live-Image starten und eine Netzwerkverbindung herstellen.
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- N – Erstellen einer leeren Partitionstabelle
- ↵ Enter – Erstellen einer Partition
- ↵ Enter – Den ersten Sektor bestätigen
+512M
– Die Partition 512 Megabyte groß zu machenef00
– Bestimmen, dass es eine EFI-Partition istn
– Eine weitere Partition erstellen- ↵ Enter – Erstellen der Partition bestätigen
- ↵ Enter – Ersten Sektor bestätigen
- ↵ Enter – Letzten Sektor bestätigen
- ↵ Enter – Partitionstypen 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 vim
– Installation des Hauptsystems mit allen nötigen Tools. Statt Vim kann auch jeder andere textbasierende Editor verwendet werden.genfstab -Lp /mnt > /mnt/etc/fstab
– Übertragen/erzeugen der fstabarch-chroot /mnt
– In das installierte System wechselnecho MeinTollerRechnername > /etc/hostname
– Hostnamen festlegen
Die verfügbaren Sprachen werden in /etc/locale.gen
definiert, indem man die gewünschten Angaben einkommentiert.
/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 /etc/locale.conf
oder den entsprechenden Dateien im Homeverzeichnis der jeweiligen Anwender definiert werden. Systemd stellt hierzu den Befehl localectl set-locale
zur Verfügung.
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
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