In diesem Blogpost möchte ich zeigen, wie ich ArchLinux auf einem Laptop installiere. Hierbei erfolgt die Installation auf eine verschlüsselte Partition, was bei tragbaren Geräten empfehlenswert ist. So fallen keine Daten in falsche Hände, falls das Gerät geklaut oder vergessen wird.
Image auf Stick flashen
- Lade dir ein aktuelles Arch-Image herunter, siehe https://archlinux.org/download/
- Stecke einen USB-Stick in dein Gerät und checke dessen
/dev/-Adresse mittels
$ lsblkDas kann dann z.B. so aussehen:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 259:0 0 931,5G 0 disk
sdb 8:0 1 7,4G 0 disk In diesem Beispiel ist sda die Festplatte, und sdb der USB-Stick. Bei euch kann das durchaus anders aussehen.
- Flashe das Arch-Image auf den Stick, z.B. mittels
$ dd if=archlinux*.iso of=/dev/sdbwobei sdb bei euch evtl. entsprechend angepasst werden muss.
booten vom Stick
Stecke den Stick in den Laptop, und wähle beim Starten den Stick als Bootquelle aus. Bei mir funktioniert das, indem ich F12 beim Starten gedrückt halte.
Es sollte sich recht bald das Arch-Bootmenu melden

Wähle den ersten Eintrag aus und warte, bis dich die Kommandozeile begrüßt.
Netzwerkverbindung herstellen
Ist Arch gestartet, stellen wir als erstes eine Netzwerkverbindung her. Das Netzwerk brauchen wir, um frische Installationspakete zu holen, aber auch, um uns gleich per SSH auf die neue Kiste einzuloggen.
LAN
Wenn ein LAN-Kabel bereit liegt, kann dieses einfach eingesteckt werden, und die Verbindung sollte direkt funktionieren.
WLAN
Möchtet ihr euch mit einem WLAN verbinden, geht dies am Einfachsten mit dem Befehl
$ iwctlUm den WLAN-Devicenamen herauszufinden hilft der Befehl
$ devices listMeistens heisst das Device wlan0.
Stelle eine Verbindung zum WLAN her mittels
$ station wlan0 connect <SSID>Gib das Passwort des WLANs ein. Wenn alles fertig ist, verlasse das Proggi mittels
$ exitSSH
Ich verbinde mich an dieser Stelle gerne mittels SSH auf den Laptop. Stelle sicher, dass sshd läuft,
$ systemctl start sshdSetze ein temporäres Admin-Passwort mittels
$ passwdFinde die IP-Adresse des Laptops heraus, zB mittels
$ ip aLogge dich von einem anderen PC auf die neue Kiste ein mittels
$ ssh root@IP-ADRESSEPartitionierung der Festplatte
Nun partitionieren wir die Festplatte. Wir wollen 2 Partitionen erstellen,
- eine
EFI-Partition zum Booten, - und eine verschlüsselte
root-Partition für das Archsystem.
Zunächst finden wir wieder die /dev/-Bezeichnungen der Laptopfestplatte heraus mittels
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 259:0 0 931,5G 0 disk
sdb 8:0 1 7,4G 0 disk
├─sdb1 8:1 1 917M 0 part
└─sdb2 8:2 1 15M 0 part In diesem Beispiel ist sda die Festplatte des Laptops und sdb der Boot-Stick. Wir wollen also /dev/sda partitionieren.
Starte gdisk mittels
$ gdisk /dev/sdaWir können mit p schauen, welche Partitionen schon auf der Platte sind. Meine Platte ist neu und leer, und daher gibt es nichts zu sehen. Möchtet ihr eine bereits gebrauchte Festplatte benutzen, könnt ihr die vorhandenen Partitionen mittels d löschen.
Wir erstellen eine neue Partition mittels n.
- die erste Partition wird unsere Boot-Partition.
- die voreingestellte Partitionsnummer
1ist korrekt, so dass wir einfachENTERdrücken können. - ebenfalls korrekt ist der erste Sektor. Auch diesen können wir mittels
ENTERbestätigen. - beim “letzten Sektor” geben wir
+512Mein, damit die Partition 512 MB groß wird. - der Partitionscode im Hexformat lautet:
ef00(EFI-Partition)
Wir erstellen eine weitere Partition mittels n.
- diese zweite Partition soll die verschlüsselte Systempartition werden.
- die voreingestellte Partitionsnummer
2ist korrekt, so dass wir einfachENTERdrücken können. - ebenfalls korrekt ist der erste Sektor. Auch diesen können wir mittels
ENTERbestätigen - und auch der letzte Sektor ist korrekt, weil wir den gesamten Rest der Festplatte verwenden möchten. Wir können also einfach
ENTERdrücken können. - der Partitionscode im Hexformat lautet:
8309(LUKS-Partition)
Wir können mittels p überprüfen, ob alles richtig ist.
Zum Schluss schreiben wir die Partitionstabelle mittels w.
Verschlüsselung
Um sicher zu sein, dass alles klappen wird, laden wir die Encryption-Module
$ modprobe dm-crypt
$ modprobe dm-modNun erstellen wir ein LUKS-LVM auf der root-Partition (/dev/sda2):
$ cryptsetup luksFormat -v -s 512 -h sha512 /dev/sda2Hier geben wir unser gewünschtes Passwort ein und merken es uns!!!. Wenn ihr das Passwort vergesst, kommt ihr nicht mehr an eure Daten!!!
Jetzt können wir das Laufwerk mounten
$ cryptsetup open /dev/sda2 luks_lvm(hier muss das Passwort eingegeben werden, welches wir soeben für die Partition erzeugt haben)
Volume Setup
Zunächst erstellen wir ein Volume und eine Volume-Gruppe
$ pvcreate /dev/mapper/luks_lvm
$ vgcreate arch /dev/mapper/luks_lvmWir benötigen auch ein SWAP-Volume. Als Faustregel gilt: RAM-Größe plus 2GB. Mein Laptop hat zB 8GB RAM, daher erstellen wir 10GB Swap mittels
$ lvcreate -n swap -L 10G archDen Rest der Platte verwenden wir für unser Arch-System
$ lvcreate -n root -l +100%FREE archFilesystems
Nun müssen die Partitionen formatiert werden.
Die EFI-Partition benötigt das Format FAT32:
$ mkfs.fat -F32 /dev/sda1 Für die verschlüsselte root-Partition können wir z.B. btrfs oder ext4 verwenden. Ich persönlich begnüge mich mit ext4.
$ mkfs.btrfs -L root /dev/mapper/arch-root
# oder
$ mkfs.ext4 -L root /dev/mapper/arch-rootNun formatieren wir noch unseren Swap:
$ mkswap /dev/mapper/arch-swapMounten
Zuerst mounten und aktivieren wir die SWAP-Partition
$ swapon /dev/mapper/arch-swap
$ swapon -aAnschließend mounten wir die root-Partition nach /mnt:
$ mount /dev/mapper/arch-root /mntUnterhalb von /mnt erstellen wir das /boot-Verzeichnis:
mkdir -p /mnt/bootHierhin mounten wir die erzeugte boot Partiton (/dev/sda1)
$ mount /dev/sda1 /mnt/bootInstalliere ArchLinux
Nun ist es endlich an der Zeit gekommen, Archlinux zu installieren. Dieser Befehl bringt die essentiellen Pakete auf die neue Platte:
$ pacstrap -K /mnt base base-devel linux linux-firmware nano opensshWir erzeugen die fstab-Datei für unser neues System mittels:
$ genfstab -U -p /mnt > /mnt/etc/fstabchroot in die Installation
Wir wechseln in unser neues System mittels:
$ arch-chroot /mnt /bin/bashHier können wir nun die grundlegenden Konfigurationen vornehmen.
Konfiguration
entschlüssele die Laufwerke
Damit Linux unsere Partition entschlüsseln kann, müssen wir die Datei mkinitcpio.conf anpassen.
Öffne mkinitcpio.conf
$ nano /etc/mkinitcpio.confund füge encrypt lvm2 zwischen die Hooks block und filesystem ein. Das sieht dann in etwa so aus:
HOOKS=(... block encrypt lvm2 filesystems fsck)Wir müssen gleich noch weitere Änderungen an der Datei vornehmen, aber zunächst installieren wir den Volumemanager lvm2
$ pacman -S lvm2Bootloader
Wir werden systemd-boot für unser System nutzen. Dafür benötigen wir noch ein paar Pakete:
$ pacman -S efibootmgr dosfstools gptfdiskZuerst installieren wir den EFI-Booteintrag per:
$ bootctl installJetzt müssen wir die UUID unserer verschlüsselten LUKS-Partition herausfinden. Da wir Partition /dev/sda2 verschlüsselt haben, erhalten wir dessen UUID per:
$ blkid /dev/sda2Das sieht dann in etwa so aus:
/dev/sda2: UUID="272b13c4-ce78-47de-b04c-66210edb977d" TYPE="crypto_LUKS" PARTLABEL="Linux LUKS" PARTUUID="6b6b86e4-b8fe-4b7d-874d-96c67075b90c"Die UUID lautet in unserem Beispiel also 272b13c4-ce78-47de-b04c-66210edb977d.
Mit diesem Wissen können wir die Datei /boot/loader/entries/arch-uefi.conf mit folgendem Inhalt erstellen:
$ nano /boot/loader/entries/arch-uefi.conftitle Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/mapper/arch-root cryptdevice=UUID=<uuid>:luks_lvm locale=de_DE.UTF-8In unserem Beispiel ändert sich die letzte Zeile in
options root=/dev/mapper/arch-root cryptdevice=UUID=272b13c4-ce78-47de-b04c-66210edb977d:luks_lvm locale=de_DE.UTF-8Nun bearbeiten wir die Datei /boot/loader/loader.conf so, dass automatisch in unser Archsystem gebootet wird:
$ nano /boot/loader/loader.confdefault arch-uefi
timeout 1Keyfile
Optional können wir noch Keyfiles erstellen. Hierfür erzeugen wir ein eigenes Verzeichnis:
$ mkdir /secure…und erstelle ein Keyfile für unserer root-Partition.
$ dd if=/dev/random of=/secure/root_keyfile.bin bs=512 count=8Anschließend muss die Berechtigung geändert werden:
$ chmod 000 /secure/*Jetzt können wir den Keyfile der Partition zuweisen:
$ cryptsetup luksAddKey /dev/sda2 /secure/root_keyfile.bin(hier muss wieder das Passwort eingegeben werden, welches wir für die Partition erzeugt haben)
Den Schlüssel müssen wir noch für Linux bekanntmachen:
$ nano /etc/mkinitcpio.confUnter FILES fügen wir den Pfad auf den Keyfile hinzu:
FILES=(/secure/root_keyfile.bin)…und erstellen Linux neu:
$ mkinitcpio -p linuxSystemkonfiguration
Zeit für ein paar weitere Systemkonfigurationen.
Timezone
Unsere Zeitzone ist Europe/Berlin.
$ ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtimeNTP
Mittels NTP holen wir uns die aktuelle Zeit aus dem Netz
$ nano /etc/systemd/timesyncd.confFolgende NTP Server können wir verwenden.
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.orgJetzt kann NTP aktiviert werden
$ systemctl enable systemd-timesyncd.serviceLocale
Wir stellen die Sprache auf “deutsch”. Hierfür öffnen wir /etc/locale.gen
$ nano /etc/locale.genund kommentieren die Zeile mit de_DE.utf8 aus.
#de_CH ISO-8859-1
de_DE.UTF-8 UTF-8
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15Jetzt erzeugen wir alle lokalen Sprachdateien
$ locale-gen…und schreiben es auch noch in /etc/locale.conf
$ nano /etc/locale.confLANG=de_DE.UTF-8virtuelle und TTY Konsolen
Damit auch die virtuellen Tastaturen auf deutsch eingestellt sind, gebe ich noch ein:
$ echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
$ localectl --no-convert set-x11-keymap de pc105 deadgraveacute
$ localectl --no-convert set-keymap de-latin1-nodeadkeysWir können die Einstellungen noch überprüfen mit
$ localectl statusDie Ausgabe sollte so aussehen:
System Locale: LANG=de_DE.UTF-8
VC Keymap: de-latin1-nodeadkeys
X11 Layout: de
X11 Model: pc105
X11 Variant: deadgraveacuteBeim nächsten Neustart ist das Tastaturlayout auch für TTY auf deutsch.
Hostname
Mein Laptop soll “Norbert” heissen.
$ echo "Norbert" > /etc/hostnameUsers
Bislang waren wir als root unterwegs. Erzeugen wir uns also einen neuen Benutzer “produnis” mit sudo-Rechten
$ useradd -m -G wheel -s /bin/bash produnisund vergeben ein Passwort für diesen User mittels
$ passwd produnisDamit “produnis” sudo-Rechte bekommt, führen wir folgenden Befehl aus
$ EDITOR=nano visudound kommentieren die folgende Zeile aus:
%wheel ALL=(ALL:ALL) ALLDamit unsere sudo-Befehle nicht aus-timen, kann am Ende der Datei noch hinzugefügt werden:
Defaults passwd_timeout=0Netzwerk
Damit wir beim Neustart Netzwerk haben, installieren und aktivieren wir den Networkmanager.
$ pacman -S networkmanager
$ systemctl enable NetworkManagerDamit auch ssh funktioniert, ergänzen wir
$ systemctl enable sshdMicrocode
Es wird empfohlen, die Micorcodes entsprechend eurer CPU zu installieren.
# Für AMD
$ pacman -S amd-ucode
# ODER
# Für Intel
$ pacman -S intel-ucodeDesktop
An dieser Stelle sind wir eigentlich schon fertig und können zum ersten Mal neustarten. Ich installiere aber noch einen Desktop und Login-Manager, damit ich direkt auf einer graphischen Oberfläche loslegen kann. Ich selbst verwende am liebsten KDE (also Plasma) mit Wayland (ihr könnt aber auch GNOME oder XFCE installieren). Für eine minimale Installation wähle ich
$ pacman -S plasma-desktop plasma-wayland-session kde-applications sddm sddm-kcm plasma-nmIch bestätige immmer die Vorauswahl, falls Pacman fragt.
Zum Schluss aktiviere ich noch den Loginmanager sddm
$ systemctl enable sddmFertig, Zeit für einen Reboot.
Reboot
Zunächst verlassen wir die chroot-Umgebung und unmounten die Partitionen.
$ exit
$ umount -R /mnt
$ reboot nowBei mir meldet sich nach dem Start nun das UEFI-Bootmenu, welches nach 2 Sekunden Archlinux bootet. Hier werde ich nach dem Verschlüsslungspasswort gefragt. Anschließend meldet sich der sddm-Loginbildschirm, und ich kann meine Plasmasession starten.
Deutsches Tastaturlayout
Noch ist die KDE-Tastatur nicht auf deutsch eingestellt. Hierfür geht ihr in die Systemeinstellungen, und wählt unter “Tastaur” den Reiter “Belegungen”.

Setzt den Haken bei “Belegungen einrichten” und fügt “Deutsch” hinzu. Sobald ihr unten auf “Anwenden” klickt, ist die Tastatur auf deutsches Layout eingestellt.
…what if?
Falls doch etwas schief laufen sollte, und ihr z.B. nicht ins System booten könnt, stellt ihr wie folgt wieder die chroot-Umgebung her:
- boote vom USB-Stick, so wie oben beschrieben
cryptsetup open /dev/sda2 luks_lvmmount /dev/mapper/arch-root /mntmount /dev/sda1 /mnt/bootarch-chroot /mnt /bin/bash
Jetzt liegt es aber an euch, den Fehler zu finden… ;)
Weblinks
- https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger
- https://github.com/dreamsofautonomy/arch-from-scratch
- https://www.youtube.com/watch?v=YC7NMbl4goo