Ich habe mal eine kleine Anleitung zusammengestellt, wie man Arch Linux installiert. Dazu nutze ich virtuelle Maschine. Diese Anleitung kann aber auch genutzt werden, um Arch Linux auf einem PC zu installieren. In diesem Beispiel gehe ich davon aus, dass eine Festplatte nur für das zu installierende Arch Linux zur Verfügung steht.
Inhalt
1. Aktuelles ISO Image herunterladen
Auf der Webseite des Arch Linux Projektes kann man im Downloadbereich sich das aktuelle Image herunter laden. Ich habe gerade eben die Version vom 01.03.2020 heruntergeladen als ISO Image. Dieses kann jetzt entweder auf eine CD gebrannt oder auf einen USB Stick mit entsprechenden Tools kopiert werden.
2. Rechner mit eingelegter CD, bzw. eingestecktem USB Stick starten
Das Verfahren unterscheidet sich nicht von Windows. Man legt entweder die vorbereitete CD oder den USB Stick ein, schaltet den Rechner ein und wählt als Boot Laufwerk entweder das CD Laufwerk oder den USB Stick aus. Nach dem Start kommt als erstes der Bootmanager:

Hier wählt man den ersten Punkt “Arch Linux archiso x86_64 UEFI CD” aus. Danach wird das Betriebssystem von der CD, bzw. USB gestartet. Dies dauert je nach Ausstattung einige Zeit. Wenn der Startvorgang abgeschlossen, kommt lediglich der Konsolenprompt zurück. Eine Menügeführte Installation gibt es bei Arch Linux nicht:

2.1 Tastatursprache einstellen
Nach dem Start des Images von CD oder USB ist eine englische Tastatur eingestellt. Damit die Umlaute verfügbar und auch Sonderzeichen auf den entsprechenden tasten sitzen, muss als erste die deutsche Sprache eingestellt werden. Dazu gibt man auf der Konsole folgendes ein:
# loadkeys de-latin1
Optional könnte man sich vorher die möglichen Tastaturbelegungen, bzw. Sprachen anzeigen lassen um die geeignete auswählen zu können:
# localectl list-keymaps
2.2 Netzwerk / Internet
Als erstes sollte getestet werden, ob das Netzwerk funktioniert, bzw. der Zugang zum Internet gegeben ist. Ich gehe hier von einem Netzwerk aus, welches mit einem Kabel hergestellt wurde, also kein WLAN. Dafür werde ich noch eine gesonderte Anleitung erstellen.
# ping -c 5 archlinux.org
Wenn der Server erreichbar ist, braucht erst einmal nichts weiter unternommen werden. Ansonsten erst einmal schauen, ob eine Netzwerkschnittstelle vorhanden ist:
# ip link
Es erfolgt eine Auflistung der Netzwerkschnittstellen. Unter anderem “lo“, welches das Loopbackinterface darstellt, also nur lokal auf dem Rechner selber funktioniert. Ferner sollte hier noch eine weitere oder mehrere Schnittstellen wie eth0, ens33, enp35s0 auftauchen. Der Namen ist unter anderem von der Hardware abhängig. Auch die Nummer kann abweichen. Je nach Motherboard können auch mehrere Schnittstellen angezeigt werden.
Sollte die Vergabe einer Netzwerkadresse (IP-Adresse) während des starten nicht funktioniert haben, kann mit
# dhcpcd eth0
manuell noch einmal eine Netzwerkkonfiguration durchgeführt werden. Ich gehe davon aus, das im Internetrouter DHCP konfiguriert ist, was bei fast allen Geräten automatisch aktiviert ist.
2.3 Lokale oder entfernte Installation?
Wenn man auf einem Desktop Rechner Arch Linux installieren will, wird man vermutlich auch vor genau diesem Rechner sitzen und die entsprechenden Eingaben machen. Sollte es sich um einen Server handeln, der ggf. sogar in einem anderen Raum steht, kann die Installation auch “Remote” per SSH durchgeführt werden.
2.3.1 Entfernte Installation per SSH
Damit man per SSH auf den gestarteten Rechner zugreifen kann, muss als erstes der SSH Daemon gestartet werden:
# systemctl start sshd
Dann muss noch ein Passwort für den Benutzer “root” festgelegt werden. Dies ist jetzt nur das Passwort für das gebootete Image, welches gerade im RAM des Rechners läuft. Dieses Passwort wird also nicht gespeichert und ist nach der Installation wieder gelöscht und muss später erneut gesetzt werden:
# passwd
Jetzt wird noch die IP Adresse benötigt, welche einfach abgefragt werden kann:
# ip a
Jetzt kann sich per SSH (Bei Windows zum Beispiel mit dem Open Source Tool “puTTY”) auf den Rechner zugegriffen werden.
2.3.2 Lokale Installation
Im Grunde gibt es hier nichts besonders zu beachten. Die Tastatur ist schon entsprechend weiter oben eingestellt worden. Einzig die Größe der Texte könnte noch angepasst werden. Auf einem HiDPI Monitor könnte ansonsten die Ausgabe schwer zu lesen sein, weil durch die hohe Auflösung des Monitors die Buchstaben schon extrem klein wären. Bei Bedarf einfach eine andere, bzw. größere Schriftart wählen:
# setfont ter-132n
2.4 Uhrzeit setzen
Aktuelle Uhrzeit per NTP (Network Time Protocol) setzen und Status abfragen.
# timedatectl set-ntp true # timedatectl status
Es sollte die aktuelle Uhrzeit angezeigt werden, sowie unter “System clock synchronized” ein “yes” stehen.
2.5 Festplatte partitionieren
2.5.1 Festplatte identifizieren und löschen
Als erstes sollte festgestellt werden, wie viele Festplatten verbaut sind und wie deren Device-Namen lauten:
# lsblk -l
Bei meiner Installation kommt unter anderem ein Device mit der Bezeichnung “sda” und dem Typ “disk” zurück. Bei einer NVMe würde die Bezeichnung zum Beispiel “nvme0n1” lauten. Je nach Controller oder Festplatte gibt es noch weitere Bezeichnungen (zum Beispiel bei einem Hardware RAID Controller, etc.). Das Device in meinem Beispiel wird unter “/dev/sda” geführt.
Um ganz sicher zu gehen, sollte man die Festplatte, auf der Arch Linux installiert werden soll, komplett löschen. Sofern diese Festplatte schon mal benutzt wurde, sind dort vermutlich noch Partitionen enthalten. Als erstes alle Filesysteme löschen, die ggf. schon vorhanden sind:
# wipefs -af /dev/sda
Dann werden alle Partitionen entfernt:
# sgdisk --zap-all --clear /dev/sda
2.5.2 Festplatte neu partitionieren
Es werden insgesamt 3 Partitionen angelegt, die EFI, bzw. Boot Partition, eine Swap Partition und eine große Partition, wo das eigentliche Betriebssystem installiert wird. Ich nutze dafür das Tool “gdisk“, welches Menügeführt gesteuert wird.
Als erstes wird die EFI Partition angelegt:
# gdisk /dev/sda
Jetzt gibt man folgende Sequenz ein:
n 1 0 +1G ef00
Als erstes wird mit “n” der Befehl für “Neue Partition” aufgerufen. Dann wird die Nummer der anzulegenden Partition eingegeben, also “1“. Da dies die erste Partition ist, wird der Startsektor mit “0” angegeben. Und der letzte Sektor wird für die Größe angegeben, bzw. man kann mit “+1G “( Startsektor plus 1 Gigabyte) dies das Tool automatisch ausrechnen lassen. Für die EFI Partition würden auch 512M reichen, aber ein wenig mehr kann nie schaden. Und letztendlich muss noch der Partitionstyp angegeben werden, welcher bei dieser Partition “ef00” ist.
Jetzt die SWAP Partition:
n 2 <ENTER> +8G 8200
Hier wird Partition “2” angegeben. Der richtige Startsektor wird automatisch übernommen, wenn man einfach die Eingabe nur mit <ENTER> bestätigt. Die Größe soll 8GB betragen und der Partitionstyp lautet “8200” für SWAP.
Und zum Schluss die Linux Partition:
n 3 <ENTER> <ENTER> 8300
Wie schon zuvor geht es jetzt um Partition Nummer “3“. Auch hier wird der Startsektor automatisch übernommen. Ebenfalls wird der Endsektor automatisch übernommen, was den Rest der Festplatte bedeutet. Der Typ für die Linux Partition ist “8300“.
Mit “p” kann man sich jetzt noch einmal das Layout anschauen, welches man gerade konfiguriert hat. Dies sollte dann in etwas so aussehen (Ich hatte eine 64GB große Festplatte zum installieren):
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB EF00 EFI system partition 2 2099200 18876415 8.0 GiB 8200 Linux swap 3 18876416 134217694 55.0 GiB 8300 Linux filesystem
Wenn alles in Ordnung ist, wird mit “w” alles gespeichert, bzw. die Partitionen angelegt. Zu Sicherheit wird um eine Bestätigung gefragt, die mit “Y” gegeben wird:
Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully.
2.5.3 Partitionen formatieren
Noch können die Partitionen nicht genutzt werden, dazu müssen diese noch formatiert werden:
Die EFI Partition wird im FAT32 Format eingerichtet. Wichtig ist auf die Partitions-Nummer zu achten. Diese ist für die erste Partition “/dev/sda1“:
# mkfs.fat -F32 -n BOOT /dev/sda1
SWAP Partition anlegen:
# mkswap -L SWAP /dev/sda2
Und zum Schluss die Linux Partition mit einem EXT4 Filesystem anlegen:
# mkfs.ext4 -L ROOT /dev/sda3
2.6 Dateisysteme mounten
Als erstes wird das Linux Filesystem unterhalb von “/mnt” eingehängt:
# mount -L ROOT /mnt
Danach wird unterhalb von /mnt ein Verzeichnis mit dem Namen “boot” erstellt und die Boot, bzw. EFI Partition eingehängt:
# mkdir /mnt/boot # mount -L BOOT /mnt/boot/
Und abschließend noch die SWAP Partition aktiviert:
# swapon -L SWAP
3. Arch Linux auf Festplatte installieren
3.1 Spiegelserver Liste aktualisieren
Jetzt wird der Paketmanager synchronisiert und der Reflector Dienst installiert, damit man die Paketquellen entsprechend konfigurieren kann:
# pacman -Syy # pacman -S reflector
Und die für seinen Standort besten Spiegelserver aktualisieren (Hier ist als Standort Deutschland angegeben):
# reflector --verbose --protocol https --latest 10 --country Germany --sort rate --save /etc/pacman.d/mirrorlist
3.2 Minimales Basissystem installieren
3.2.1 Überprüfen, welche Hardwareplatform verwendet wird
Ich gehe von einem normalen PC aus, welcher entweder auf der Intel oder AMD Plattform basiert. Systeme, die zum Beispiel auf ARM basieren, werden in diesem Artikel nicht betrachtet:
# grep vendor_id /proc/cpuinfo
Als Ausgabe bekommt man dann zum Beispiel folgendes:
vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD vendor_id : AuthenticAMD
Hier wird für jeden CPU Kern eine Zeile ausgegeben. Es können also je nach Hardware mehr oder weniger viele Zeilen ausgegeben werden. In diesem Fall handelt es sich also um ein AMD System. Bei Intel würde die Ausgabe entsprechend anders aussehen.
In meinem Fall, also für die AMD Plattform wird nun folgendes eingegeben:
# export microcode="amd-ucode"
Wer aber ein System hat, welches auf der Intel-Plattform basiert, gibt stattdessen folgendes ein:
# export microcode="intel-ucode"
3.2.2 Linux Basissystem übertragen
Mit dem Befehl “pacstrap” werden jetzt die notwendigen Pakete installiert. Man kann hier auch schon eventuelle Pakete angeben, die man auf jeden Fall braucht. Aber für die erste Installation habe ich mich auf die wichtigsten beschränkt:
# pacstrap /mnt base base-devel linux linux-firmware ${microcode} dhcpcd vim bash-completion man-db mlocate networkmanager reflector sudo openssh efibootmgr dosfstools gptfdiskDies nimmt nun, je nach verfügbare Internet Bandbreite, einige Zeit ein. Die Pakete werden aus dem Internet heruntergeladen und nach “/mnt” installiert.
3.2.3 Anlegen der /etc/fstab
Damit später die Partitionen automatisch nach dem starten des Rechners eingehängt werden, wird die Datei /etc/fstab benötigt. Diese liegt derzeit noch unterhalb “/mnt“, also “/mnt/etc/fstab“. Da die entsprechenden Dateisystem schon weiter oben eingehangen wurden, kann man einfach die derzeitig gemounteten Dateisysteme in diese Datei übernehmen:
# genfstab -U -p /mnt >> /mnt/etc/fstab
3.2.4 Wechseln auf das gerade installierte Arch Linux
Damit alle folgenden Änderungen sich nicht nur auf das gebootete Image beziehen (und nach einem Neustart wieder weg sind), werden die nach “/mnt” eingehangenen Dateisysteme jetzt zu “/“:
# arch-chroot /mnt /bin/bash
4. Grundkonfiguration
4.1 Hostname einrichten
Der Namen des Rechners wird in die Datei “/etc/hostname” eingetragen. In meinem Beispiel habe ich den Namen archvm gewählt:
# echo "archvm" > /etc/hostname
Und die “/etc/hosts” konfiguriert:
# vim /etc/hosts
Dort trägt man, entsprechend dem Hostnamen, folgendes ein:
# Static table lookup for hostnames. # See hosts(5) for details. 127.0.0.1 localhost ::1 localhost 127.0.0.1 archvm
4.2 Diverse Systemdienste aktivieren
Damit nach einem Neustart das Netzwerk funktioniert und der Zugrif per ssh möglich ist, müssen die entsprechenden Dienste aktiviert werden. Zusätzlich sollte noch die Dienste für das SSD Trim, die Zeitsynchronisierung und dem Reflector aktiviert werden:
# systemctl enable NetworkManager # systemctl enable sshd # systemctl enable fstrim.timer # systemctl enable systemd-timesyncd.service # systemctl enable reflector.timer
4.3 Passwort für Benutzer “root” vergeben
Jetzt muss ein Passwort für den Benutzer “root” vergeben werden. Das weiter oben vergebene Passwort war ja lediglich für das gebootete Image gewesen:
# passwd
4.4 Eigenen Benutzer anlegen
Aus Sicherheitsgründen sollte niemals mit dem Benutzer “roor” als Standarduser gearbeitet werden. Es wird dafür ein eigene Benutzer angelegt. Dieser Benutzer wird “sudo” Rechte erhalten (über die Gruppe “wheel“) und als Standard Shell die BASH zugewiesen bekommen. Der Name ist hier im Beispiel archuser:
# useradd -m -G wheel -s /bin/bash archuser
Und auch diesem Benutzer wird ein Passwort zugewiesen:
# passwd archuser
Und nun über die “/etc/sudoers” die Gruppe “wheel” freischalten:
# EDITOR=vim visudo
In der jetzt geöffneten Datei nach folgendem Eintrag suchen und diesen auskommentieren, also das “#” vor der Zeile löschen:
# %wheel ALL=(ALL:ALL) ALL
4.5 Spracheinstellungen
Damit die Konsole und die Ausgabe ebenfalls auf Deutsch funktioniert, müssen noch diverse Einstellungen vorgenommen werden. Als erstes muss die Datei /etc/locale.gen editiert werden:
# vim /etc/locale.gen
Dort kommentiert man die Zeile für die deutsche und englische Sprache aus:
de_DE.UTF-8 UTF-8 en_US.UTF-8 UTF-8
Und erzeugt die entsprechenden Sprachdateien:
# locale-gen
Generating locales... de_DE.UTF-8... done en_US.UTF-8... done Generation complete.
Und fügt diese der Datei /etc/locale.conf hinzu:
# echo LANG=de_DE.UTF-8 > /etc/locale.conf # echo LANGUAGE=de_DE.UTF-8 >> /etc/locale.conf
Ebenso das deutsche Tastaturlayout in die Datei /etc/vconsole:
# echo KEYMAP=de-latin1 > /etc/vconsole.conf
4.6 Zeitzone festlegen
Damit das Datum und die Uhrzeit auch richtig angezeigt wird, muss noch eine Zeitzone eingestellt werden. Für Deutschland wäre dies:
# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
4.7 /etc/adjtime erzeugen und Hardware Uhr auf UTC einstellen
Die Systemzeit sollte weiterhin mit UTC laufen, damit die Zeitzone auch richtig funktioniert:
$ hwclock --systohc --utc
4.8 Default Editor festlegen
Damit diverse Linux Tools, wie zum Beispiel visudo den bevorzugten Editor nutzen, kann dieser voreingestellt werden. Hier wird der “vim” voreingestellt. Es kann auch jeder andere Editor hier gewählt werden:
# echo "EDITOR=vim" > /etc/environment # echo "VISUAL=nvim" >> /etc/environment
4.9 Linux Image erzeugen
Nun wird das Linux Image noch erzeugt, welches in “/boot” installiert wird:
# mkinitcpio -p linux
4.10 Booten per UEFI
Mit dem “efistubmgr” Tool wird das System so konfiguriert, dass das UEFI “BIOS” des Rechners direkt den Linux Kernel booten kann. Dazu wird dann kein weiterer Bootmanager, wie zum Beispiel “GRUB” benötigt:
# efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux -L "Arch Linux" -u "initrd=/initramfs-linux.img root=/dev/sda3 rw"
Der “efistub” wird so konfiguriert, dass die Festplatte “dev/sda” benutzt wird, die Boot, bzw. EFI Partition die 1. auf der Festplatte ist und die Root Partition auf “/dev/sda3” zu finden ist. Diese Parameter müssen natürlich entsprechend angepasst werden, wenn von der obigen Anleitung abgewichen wurde.
5. Neustart
Zum Abschluss wird der Rechner jetzt nur noch neu gestartet:
# exit # reboot
Anschließend sollte der Rechner nach dem Neustart mit dem gewohnten Linux Prompt aufwarten.
6. Kleiner Tipp zum Schluss
Es gibt ein interessantes Software Repository für Arch, auf welches ich unter dem Artikel “Arch User Repository (AUR) nutzen” eingehe. Auch kann ich die Anleitung für Samba unter Arch Linux empfehlen, die zeigt, wie man Windows Laufwerke einbindet, bzw. Arch Linux zu einem Server macht, der Laufwerke für Windows bereit stellt.
Um eine grafische Oberfläche zu erhalten, empfehle ich diesen Artikel.
