Installation eines Arch Linux Basesystem mit Festplattenverschlüsselung (BIOS)

Die Installation von Arch Linux erfolgt vollständig über die Komandozeile. Dieses How-To führt Schritt für Schritt durch die Installation des Arch Linux Basesystems.

Vorbereitung

Als erstes ist benötigen wir das Installationsimage.  Download hier:

 https://www.archlinux.org/download/

Dieses Image muß dann auf eine CD oder DVD gebrannt werden, oder man erstellt einen bootfähigen USB Datenträger. Dies lässt sich unter Windows mit dem Tool Rufus erledigen. Download hier:

https://rufus.akeo.ie/

Unter Linux lässt sich das auf der Kommandozeile wie folgt erledigen, wobei /dev/sdx das entsprechende Devicefile darstellt. Dieses lässt sich mit dem Kommando lsblk herausfinden. Vorher ist sicherzustellen das der Datenträger nicht eingebunden ist.

sudo umount /dev/sdx
sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx

Unter MacOS läuft das ganze ähnlich wie unter Linux auf der Kommandozeile ab. Mit dem Kommando „diskutil list“ lässt dich das Devicefile des USB Datenträgers herausfinden z.B. /dev/disk5. Das Image lässt sich dann mit folgendem Kommando auf den USB Datenträger schreiben. Vorher ist der Datenträger auszuhängen.

sudo diskutil umountDisk /dev/diskX
sudo dd bs=4m if=/path/to/archlinux.iso of=/dev/diskX

Wenn das erstellen des Datenträgers beendet ist kann der Rechner, auf dem die Installation erfolgen soll, von diesem gebootet werden. Eventuell muß die Bootreihenfolge im BIOS Setup des Rechners angepasst werden.

Installation

Die Installation erfordert eine Internetverbindung. In den allermeisten Fällen sollte die Netzwerkhardware automatisch erkannt werden. Ist der Rechner über ein Kabel mit dem Netzwerk verbunden wird das Interface automatisch konfiguriert, vorausgesetzt im LAN ist ein DHCP Server aktiv.
Soll die Installation über Wifi erfolgen muß dies jetzt eingerichtet werden. Einige Wifi Chipsätze (z.B. Broadcom 43xxx) erfordern eine proprietäre Firmware. Diese ist in der Installationsumgebung nicht verfügbar und kann erst nach der Installation des Basissystems eingebunden werden. In diesem Fall bleibt nur die Installation über eine LAN Verbindung.

Nachdem der Startvorgang der Installationsumgebung abgeschlossen ist erscheint folgender Eingabepromt:

root@archiso ~ #

Die Installationsumgebung ist nun bereit. Allerdings ist das Tastaturlayout noch auf Englisch gesetzt. Folgendes Kommando ändert das Layout auf deutsch.

loadkeys de

Soll die Installation über Wifi erfolgen lässt sich die Internetverbindung einfach wie folgt einrichten:

wifi-menu

Über das Textmenü kann jetzt die zu benutzende SSID (WLAN Name) ausgewählt werden. Nach eingabe des Keys sollte nun eine Internetverbindung bestehen. Zur Überprüfung der Internetverbindung dient beispielsweise folgendes Kommando:

ping archlinux.org

Die Ausgabe sieht, wenn eine Internetverbindung steht, wie folgt aus.

64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=1 ttl=55 time=31.2 ms
64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=2 ttl=55 time=30.8 ms
64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=3 ttl=55 time=30.2 ms
64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=4 ttl=55 time=30.6 ms
64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=5 ttl=55 time=34.1 ms
64 bytes from apollo.archlinux.org (138.201.81.199): icmp_seq=6 ttl=55 time=32.3 ms

Partitionierung der Festplatte

Im nächsten Schritt ist die Festplatte zu partitionieren. Es werden bei diesem Vorgang alle Daten auf der Festplatte gelöscht!!!! Hierzu dient das Tool cfdisk.  Die Bedienung erfolgt über die Cursortasten. In diesem Beispiel werden 3 Partitionen auf der Festplatte angelegt.
1. Eine boot Partition (hier wird alles abgelegt das für den rudimentären Start des Systems erforderlich ist)
2. Eine swap Partition (diese dient als Auslagerungsspeicher für den Fall das der physikalische Arbeitsspeicher des Systems nicht mehr ausreicht)
3. Eine root Partition. (auf dieser werden Programme und Benutzerdaten abgelegt, daher wird diese bei der Installation verschlüsselt)

cfdisk /dev/sdx

Da wir auf einem BIOS System installieren ist hier das DOS Partitionsschema auszuwählen.

Anlegen der Boot Partition. Diese sollte 100 – 200 MB groß sein. Wichtig ist hier das diese Partition als „Bootable“ markiert wird. Bei der Abfrage der Partitionsgröße ist 100M bzw. 200M als Parameter anzugeben. Diese Partition bleibt unverschlüsselt und dient ausschließlich dem initialen Start des Betriebssystems. Hier werden keinerlei Benutzerdaten abgelegt.

Als nächstes ist die SWAP Partition anzulegen. Diese sollte die doppelte Größe des installierten Arbeitsspeichers umfassen. Wichtig ist das der Typ der Partition auf Linux swap / Solaris geändert wird. Bei der Abfrage der Größe ist hier die doppelte Größe des Arbeitsspeichers anzugeben. Hier 8129M

Jetzt ist die root Partition anzulegen. Diese umfasst hier den restlichen freien Bereich der Festplatte. Das Endergebniss sollte wie folgt aussehen:

Jetzt kann die Partitionstabelle mit „write“ auf den Datenträger geschrieben werden und das Programm über „quit“ beendet werden.

Anlegen und Einbinden der Dateisysteme

Um die root Partition zu verschlüsseln ist zunächst ein virtuelles Devicefile im Luksverschlüsselungs Mode anzulegen.

cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3

Jetzt wird die Passphrase die als key für die Verschlüsselung des Dateisystems verwendet wird abgefragt. Diese ist dann bei jedem Systemstart einzugeben um das root Dateisystem zu entschlüsseln.

Nun können wir das neu erstellte Cryptodateisystem entsperren und als virtuelles Devicefile  /dev/mapper/cryptroot anlegen.

cryptsetup open --type luks /dev/sda3 cryptroot

Um fortzufahren ist jetzt die eben vergebene Passphrase einzugeben um dann mit folgenden Kommandos die Dateisysteme mit dem ext4 Filesystem zu formatieren.

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/mapper/cryptroot

Die Auslagerungspartition wird dann wie folgt formatiert.

mkswap /dev/sda2

Im nächsten Schritt werden die erzeugten Dateisysteme in die Installationsumgebung eingehängt. Zu erst die root Partition:

mount -t ext4 /dev/mapper/cryptroot /mnt

Jetzt ist der Einhängepunkt für die boot Partition anzulegen:

mkdir -p /mnt/boot

Und dann wird die boot Partition entsprechend eingebunden:

mount -t ext4 /dev/sda1 /mnt/boot

Installation des Basissystems

pacstrap -i /mnt base base-devel

Hier kann einfach mit „Enter“ der Vorgang gestartet werden.

Und auch die zweite Abfrage kann einfach mit „Enter“ bestätigt werden.

Jetzt noch mit „y“ den eingentlichen Installationsprozess anstoßen. Dieser Vorgang dauert jetzt je nach Bandbreite der Internetverbindung eine Weile. Wenn die Installation des Basissystems erfolgreich war ist als nächstes die Dateisystemtabelle anzulegen.

genfstab -U -p /mnt >> /mnt/etc/fstab

Um sicher zu stellen das dieser Vorgang erfolgreich war kann wie folgt überprüft werden.

cat /mnt/etc/fstab

Um die swap Partiton beim Systemstart einzubinden ist die Datei /etc/fstab um folgende Zeile zu ergänzen. Die Datei mit folgendem Kommando editieren:

nano /etc/fstab

Am Ende der Datei folgenden Eintrag hinzufügen:

/dev/sda2           swap       swap            defaults      0      0

Dann die Datei mit Strg-X speichern und den Editor verlassen.

Im nächsten Schritt wird vom root Verzeichniss der Installationsumgebung in das root Verzeichniss des neu installierten Systems auf der Festplatte gewechselt. Dieser Vorgang nennt sich changeroot.

arch-chroot /mnt

Jetzt ist die Systemlokalisierung zu setzten. Hierzu ist die Datei /etc/locale.gen zu bearbeiten:

nano /etc/locale.gen

In der Zeile #de_DE-UTF-8 UTF-8 ist das Kommentarzeichen # am Anfang der Zeile zu entfernen und dann die Datei mit Strg-X zu speichern um dann die System locale wie folgt zu erzeugen:

locale-gen

Jetzt ist eine Konfigurationsdatei anzulegen die das System auf die gewünschte Sprache setzt. In unserem Fall Deutsch mit Unicode Zeichensatz.

echo LANG=de_DE.UTF-8 > /etc/locale.conf

Um in der laufenden Umgebung die Spracheinstellungen zu setzen:

export LANG=de_DE.UTF-8

Nun ist die Zeitzone des Systems zu setzen. Dies erfolgt über das Anlegen eines symbolischen Links.

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Das setzten des deutschen Tastaturlayouts erfolgt durch folgendes Kommando:

echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf

Und die Uhr des Systems auf die Koordinierte Welt Zeit (UTC) zu setzten:

hwclock --systohc --utc

Der gewünschte Hostname wird mit dem Kommando:

echo MyHostname > /etc/hostname

gesetzt. Nun wird das Passwort für den Benutzer root gesetzt:

passwd

Das Passwort ist nun zwei mal einzugeben. Es wird keine Ausgabe auf dem Prompt angezeit.  Als nächstes wird ein Benutzerkonto für die normale Benutzung des Systems angelegt.

useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash benutzername

Und dann ein Passwort gesetzt.

passwd benutzername

Um diesem Benutzer bzw. allen Benutzern der Gruppe „wheel“ das Recht, Kommandos als root Benutzer auszuführen, einzuräumen ist die Datei /etc/sudoers zu bearbeiten

EDITOR=nano visudo

Durch entfernen des Kommentarzeichens „#“ in der Zeile:

%wheel ALL=(ALL)ALL

bekommen alle Benutzer das Recht Kommandos mit root Rechten auszuführen, werden aber zur Eingabe ihres Passwortes aufgefordert.

Die Zeile

&wheel ALL=(ALL) NOPASSWD:ALL

hat die gleiche Auswirkung jedoch muß der Benutzer kein Kennwort eingeben.

 

Die Installation des Bootloaders und des OS-Probers erfolgt mit folgendem Kommando.

pacman -S grub os-prober

Um von der verschlüsselten Partition booten zu können ist eine kleine Anpassung der Konfiguration des Bootloaders grub erforderlich:

nano /etc/default/grub

Der Eintrag GRUB_CMDLINE_LINUX““ ist wie folgt zu ändern:

Des Weiteren ist die Konfiguration des Tools mkinitcpio anzupassen um die für die Festplattenentschlüsselung benötigten Module in die initiale Ramdisk einzubinden.

nano /etc/mkinitcpio.conf

Hier ist der Eintrag HOOKS wie folgt zu ergänzen:

 

Da ein Hook zur mkinitcpio Konfigurationsdatei hinzugefügt wurde muß nun die initiale Ramdisk neu erzeugt werden. Die geschiet mit foldendem Kommando:

mkinitcpio -p linux

Die Ausgabe sollte dann wie folgt aussehen:

Nun bleibt nur den Bootloader in den Master Boot Record der Festplatte zu schreiben:

grub-install --recheck /dev/sda

Und die Konfigurationsdatei für den Bootloader zu erstellen:

grub-mkconfig --output /boot/grub/grub.cfg

Damit ist die Installation des Basissystems beendet. Die chroot Umgebung wird mit dem Kommando

exit

verlassen, die Dateisysteme mit den Kommandos

umount -R /mnt/boot
umount -R /mnt

ausgehängt und das virtuelle Cryptdevice mit

cryptsetup close cryptroot

geschlossen.

Jetzt kommt der spannende Moment. Mit dem Kommando

systemctl reboot

wird das System nun neu gestartet.  Nun sollte folgender Prompt erscheinen:

Hier ist die Passphrase die beim anlegen der virtuellen Cryptodevices angegeben wurde einzugeben. Es erfolgt keine Bildschirmausgabe. Dann sollte das System starten und es wird dann zur Anmeldug aufgefordert.

Das wars dann auch schon.  Die erste Anmeldung mit dem Benutzer „root“ und dem vergebenen Passwort sollte jetzt möglich sein. Eine Verbindung mit dem Internet herzustellen bzw. das Netzwerk per DHCP zu konfigurieren erfolgt mit dem Kommando:

dhcpcd

Wird eine Wifi Verbinung benötigt lässt die diese mit dem Kommando

wifi-menu

wie schon wärend der Installation herstellen.

Die Installation des Arch Linux Basissystems ist abgeschlossen. Von dieser Basis ausgehend kann das System nun für den gewünschten Zweck angepasst werden, die Ausgangsbasis ist prinzipiell immer die hier beschriebene Basisinstallation.