Arch Linux installieren

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.



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 gptfdisk

Dies 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 &gt; /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.

0 Comments
Älteste
Neueste
Inline-Feedbacks
Alle Kommentare anzeigen
Nach oben scrollen