- Steineklopfer.net - https://steineklopfer.net -

Arch Linux Installation

Überlegungen

Nunja, es gibt wohl einige die sich mal die Frage stellen ob sie Linux als Betriebsystem auf ihrem Computer mal ausprobieren wollen. Windows ist ja gut und schön. Wer PC Spiele mag, wird auch selten drum herum kommen. Mir persönlich geht Win 10 aber langsam zu sehr in Richtung Mac. Es wird einem einfach untersagt gewisse Dinge zu machen. weil sie das System destabilisieren könnten. Oder weil der Hersteller es eben so besser findet. Außerdem nehmen ja auch die Daten die gesammelt werden immer mehr zu. Vielleicht sagt einem auch einfach nur die Philisophie mit Open Source dahinter zu. Jeder hat wohl seine eigenen Gründe warum man vor dieser Frage steht.

Hier soll es auch mehr um die eigentliche Installation gehen. Ich habe mich jetzt für Arch Linux entschieden, weil ich schon eine ganze Weile Manjaro ausprobiert habe, welches darauf basiert. Im Prinzip sind beides “Rolling Distros”, heißt so viel wie es gibt keine Releases mehr, sondern der Kernel wird ständig aktuell gehalten. Bei Manjaro ist das noch nicht ganz so, weil man selbst über deren eigenen Kernelmanager aktualisieren muss. Das sollte man aber auch tun, denn der Support wird für die alten Kernel dann auch zeitnah eingestellt. Außnahme sind die LTS Kernel, diese werden länger gepflegt. Bei Arch gibt es auch nur genau diese beiden Kernel in den Repositories. Entweder man nimmt den aktuellen, oder den LTS oder eben auch beide. Natürlich kann man sich auch jederzeit selbst einen Kernel kompillieren. Ich persönlich mag den LTS Kernel lieber, da ich dann doch noch einige Programme habe die nur unter Windows laufen und ich dafür dann die Virtual Box benutze. Diese hat Module die im Kernel laufen und wenn es dafür dann nicht so schnell ein Update gibt, läuft die Box erstmal nicht mehr.

Warum also dieses Mal Arch und nicht wieder Manjaro? Einfach um die installation mal selbst durchzukauen und vielleicht etwas mehr Einblick in das Grundsystem zu bekommen. Außerdem installiert man hier dann wie gesagt einmal den linux-lts Kernel. Dieser wird dann auch automatisch auf den nächsten lts Kernel aktualisiert und man muss es nicht selbst über den Kernelmanager machen. Ob das nun gut oder schlecht ist wird sich wohl noch zeigen. Wahrscheinlich wollte ich mir einfach selbst mal auf die Schulter klopfen.

Hinweise

Wer das jetzt aber auch machen will, dem sei gesagt, dass es so ganz ohne Kenntnisse von Linux wohl doch eher schwer wird. Dann würde ich doch eher Manjaro [1] als Einstieg empfehlen. Diese Distro hat so ziemlich alle Vorteile von Arch, nur dass sie eben eine grafische Installation mitliefert und auch diverse Konfigurationen automatisch vornimmt. Man bekommt auch eine Nachricht wenn man den Kernel updaten sollte und das ist dann auch mit ein paar Klicks erledigt. Arch liefert für die Installation nur ein Grundgerüst mit Konsole und man muss alles selbst installieren und teilweise auch konfigurieren.

Man findet das Image für die Installation einfach bei archlinux.org [2]. Dort ist auch gleich der offizielle Guide [3] für die Installation verlinkt. Diesen sollte man parallel vielleicht auch durchlesen, da ich nicht alle Schritte abhandeln werde. Ich bin mir z.B. sicher, dass ich im UEFI Modus boote, weil ich es vorher so eingestellt habe. Das brauche ich dann nicht extra überprüfen. Zusätzlich fand ich diese Anleitung [4] auch sehr hilfreich. Im Arch Wiki selbst findet man fast zu jedem Problem eine Beschreibung/Lösung.
Um den USB Stick unter Windows zu erstellen gibt es ein nettes kleines Programm names Rufus [5]. Dort wählt man einfach die Iso Datei und den Stick aus und alles andere wird vom Programm erledigt.

Folgendes wäre noch zu erwähnen:

Installation – Grundsystem

Hat man das alles geschafft, geht es mit der Installation los. Als erstes müssen wir das Tastaturlayout auf Deutsch umstellen. Der – ist beim US Layout auf dem ß.

loadkeys de-latin1

mit timedatectl set-ntp true kann man die Zeit aus dem Internet aktualisieren.

Dann geht es auch schon ans Partitionieren und Formatieren. Da bei mir ja schon partinioniert ist, spare ich mir das. Mit fdisk -l kann man sich die Tabelle nochmal anschauen und bekommt auch die /dev/xxx Einträge angezeigt. Bei mir handelt es sich um eine neue M2 SSD, deswegen ist sie unter /dev/nvme0n1 zu finden mit den Partitionen dann als p1 bis p4. SATA Geräte dürften eher unter /dev/sda o.Ä. zu finden sein.

Wer noch partitionieren muss kann das mit fdisk [6] recht einfach tun. fdisk /dev/nvme0n1 startet das Programm. Mit n erstellt man eine neue Partition die dann p für primär ist. Danach kann man z.B. mit +400GB eine Partition erstellen die dann 400GB groß wird. Die Sektoren werden im Normalfall schon richtig ausgewählt. Falls noch alte Partitionen vorhanden sind kann man vorher mit g eine neue Partitionstabelle (GPT) erstellen. Alles was auf der Platte war wird damit aber gelöscht.

Nun fehlt noch das Formatieren. P1, die EFI Partition und P2 von Windows bleiben wie sie sind.

mkfs.ext4 /dev/nvme0n1p4
mkswap /dev/nvme0n1p3

Damit ist jetzt alles formatiert. Die Partitionen müsses noch gemounted werden damit die Installation beginnen kann. P1 muss mit meinem Bootmanager wie gesagt /boot werden.

swapon /dev/nvme0n1p3
mount /dev/nvme0n1p4 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

Die Downloadserver könnte man jetzt noch anpassen. Mir ist das erstmal egal und ich installiere es mit den Standardservern.

pacstrap /mnt base

Nachdem die Pakete alle installiert wurden, wurde das Basissystem installiert. Allerdings kann man jetzt noch nicht neu starten, da noch ein paar Konfigurationen fehlen. Zum einen die permanenten Mount Einträge. Ohne diese weiß das System nacher nicht mehr wo alles liegt.

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

Diese Datei sollte man dann auch mit einem Texteditor prüfen. Z.b. nano /mnt/evt/fstab
Es sollten drei Einträge vorhanden sein. Einer für / , für /boot und für die swap partition. Mit Strg+x kommt man wieder raus.

Jetzt können wir in das neu installierte System wechseln.
arch-chroot /mnt

Als nächstes kommen ein paar Basiseinstellungen. Zum einen die Zeitzone, Sprache, etc. Die entsprechende Spracheinstellung muss man in der Datei /etc/locale.gen aktivieren und dann generieren.
Ich persönlich mag es lieber wenn das System auf Englisch bleibt. Deswegen aktiviere ich den Eintrag
en_GB.UTF-8 UTF-8 durch löschen des Kommentarsymbols davor.
Danach speichern und mit locale-gen generieren.

nano /etc/locale.gen
locale-gen


Jetzt kann kann die Sprache gespeichert werden.
echo LANG=en_GB.UTF-8 > /etc/locale.conf 

Außerdem wollen wir das Tastaturlayout speichern.
echo KEYMAP=de-latin1 > /etc/vconsole.conf

Um die richtige Zeitzone zu nutzen müssen wir noch einen Link generieren
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock –systohc

Nun fehlen noch ein paar Netzwerkeinstellungen. Dazu geben wir dem Computer einen Namen
echo steineklopfer > /etc/hostname

und editieren die Datei /etc/hosts
nano /etc/hosts

Diese sollte folgende Einträge enthalten

127.0.0.1 localhost 
::1 localhost
127.0.1.1 steineklopfer.localdomain steineklopfer

Nun fehlt noch der Netzwerkadapter selbst.
ip link

zeigt uns die verfügbaren Geräte. Ich habe nur einen Kabelanschluss, deswegen habe ich nur zwei Geräte in der Liste. Leute mit WLAN Modulen mögen noch mehr haben. Das erste ist aber meistens der Loopback Adapter und uninteressant. Der zweite heißt bei mir enp7s3, Mit dieser ID muss ich also die Konfiguartions Datei benennen und erstmal als DHCP konfigurieren [7].
nano /etc/systemd/network/enp7s3.network

[Match] 
Name=en* 
[Network] 
DHCP=yes

Außerdem brauchen wir noch DNS Server um URLs auflösen zu können. Dafür verwende ich erstmal die beiden Google Server
nano /etc/resolv.conf

nameserver 8.8.8.8 
nameserver 8.8.4.4

Aktivieren könen wir das Ganze erst nach einem Neustart. Mit passwd erstellen wir aber erst noch ein Passwort für den root Benutzer. Die normalen Benutzer werden später erstellt.

Befor wir aber neu starten können fehlt noch der Bootmanager. Ich nehme dafür den systemd-boot der schon installiert ist.
bootctl –path=/boot install

Ich persönlich habe mir keinen Pacman Hook eingerichtet zum automatischen Updaten. Wer das will, kann es hier [8] nachlesen. Jetzt sollte der Bootmanager installiert sein und vom UEFI auch gestartet werden. Checken und ändern kann man das indem man das Programm efibootmgr noch installiert.
pacman -S efibootmgr

Damit unser Linux aber auch in der Auswahl auftaucht, müssen wir noch ein paar Einstellungen vornehmen. Außerdem habe ich ja am Anfang erwähnt, dass ich lieber mit dem LTS Kernel arbeite. Der ist auch noch nicht installiert.
pacman -S linux-lts

Zum einen brauchen wir die Datei /boot/loader/loader.conf mit diesem Inhalt

default  arch
timeout 4
console-mode max
editor no
auto-entries 0 (da ich keine automatischen Einträge möchte)

Zum anderen müssen wir noch einen Eintrag im Bootmenü erzeugen. Für unser Linux wäre das arch.conf im /boot/loader/entries/ Verzeichnis. Wir haben als Standard Auswahl ja auch schon “arch” in der config oben eingetragen. Für den Eintrag brauchen wir noch die ID der Partition auf der sich Arch Linux befindet.

blkid -s PARTUUID -o value /dev/nvme0n1p4
Die ID muss dann anstelle von [ID] in die conf Datei unten eingetragen werden.

title   Arch Linux LTS
linux /vmlinuz-linux-lts
(initrd /intel-ucode.img) nur wenn es ein solches Microcode Image gibt. Bei meinem AMD nicht.
initrd /initramfs-linux-lts.img
options root=PARTUUID=[ID] rw

Das Gleiche kann man dann auch für Windows oder einen zweiten Linux Kernel oder das Fallback Image machen. Jeder Eintrag bekommt seine eigene *.conf Datei. Einfacher ist es für Windows natürlich in der ersten Datei den “auto-entries 0” Eintrag zu löschen oder auf 1 zu setzen.

Jetzt können wir neu starten (shutdown -r now) und sollten im Bootmanager einen Eintrag für “Arch Linux LTS” sehen der auch als Standard ausgewählt ist.

Nachdem wir uns wieder als root Benutzer mit dem Passwort von vorhin angemeldet haben können wir gleich überprüfen ob die Internetverbindung funktioniert (Strg+C unterbricht den Befehl wieder).
ping archlinux.org

Falls nur time-outs kommen, müssen wir die Verbindung noch aktivieren.
systemctl start systemd-networkd
systemctl enable systemd-networkd

Tjaaa. Damit wäre dann die Grundinstallation abgeschlossen. Jetzt kann man mit pacman alle möglichen Pakete installieren die man braucht. Unter anderem eben auch die Grafische Oberfläche, Grafikkartentreiber und natürlich auch ein Benutzer der nicht root ist. Es ist nicht sonderlich ratsam das System als root zu benutzen.

Installation – Grafische Oberfläche

Dafür muss man sich natürlich erstmal entscheiden welche der vielen Linux Oberflächen man nutzen möchte. KDE, Gnome, Cinnamon, Deepin, Xfce, … [9] um nur ein paar zu nennen. Ich persönlich habe mich für die neue KDE Oberfläche Plasma entschieden. Diese läuft im Moment noch mit X11. Wahrscheinlich irgendwann dann auch mit Wayland, im Moment kommt man aber um die Xorg Sachen [10] noch nicht drumrum. Da bei mir auch eine recht neue Nvidia Grafikkarte im System werkelt, eine 1070, entschließe ich mich unter anderem die closed source Nvidia Treiber zu verwenden. Nicht zuletzt, weil in einem Livesystem vom Stick die Oberfläche doch deutlich geflimmert hat mit den open source Treibern. Da der ganze Xorg Kram schon als Abhängigkeit beim nvidia Paket dabei ist, brauche ich das nicht extra installieren. Ansonsten natürlich schon. Wichtig ist noch, da ich die LTS Kernel verwende, brauche ich auch das nvidia-lts Paket. Außerdem fragt das Paket welche OpenGL Bibliothek ?? verwendet werden soll? Dabei hat bei mir nur der Standard (libgl…) funktioniert und ist wohl auch richtig. Antwort zwei wäre ein veraltetes nvidia-utils Paket. Damit schlägt die Installation sowieso fehl, da das alte dann dem neuen im Weg ist.

pacman -S nvidia-lts

Hier gibt es viele Möglichkeiten. Entweder man konfiguriert den X11 Kram selbst [11]. Dafür müssen dann am Besten in der Datei /etc/X11/xorg.conf.d/20-nvidia.conf die richtigen Einträge stehen. Oder man überlässt es dem Nvidia-config-tool.

nvidia-xconfig

Dieses erstellt allerdings die Datei /etc/X11/xorg.conf und sollte auch gecheckt werden ob die Einträge plausibel sind. Da bei mir alles fürchterlich klein war, aber ich manuell noch folgende Einträge unter DEVICE hinzugefügt

Option “UseEdidDpi” “FALSE”
Option “DPI” “96 x 96”


Danach können wir testen ob die X11 Oberfläche läuft oder nicht indem wir einfach “Xorg” starten. Sollte es schief gehen wird zeigen das die Meldungen auf dem Bildschirm. Wenn der Bildschirm schwarz bleibt heiß es bei mir, dass es geklappt hat. Allerdings konnte ich nur mit Strg+Alt+F2 die Konsole wechseln und von dort weiter machen oder eben neu starten.

Also nächste können wir schon KDE Plasma [12] installieren. Dieses liefert den Display Manager SDDM [13] schon mit. Ansonsten müssten wir natürlich auch noch einen installieren.

pacman -S plasma

Damit der Display Manager auch beim starten läd, muss er noch aktiviert werden.

systemctl enable sddm.service

Um sich aber überhaupt einloggen zu können brauchen wir auch noch einen Nutzer mit eigenem home Verzeichnis. Dafür legen wir uns unseren eigenen Benutzer an.

useradd -m -G sys,wheel jens
passwd jens

Damit gehört der Nutzer “jens” zusätzlich zu den Gruppen sys und wheel. Wheel ist nützlich um das sudo Kommando benutzen zu können. Außerdem haben wir das Passwort gleich festgelegt.

Um das “sudo” Kommando [14] wirklich auch nutzen zu können müssen wir es aber noch installieren.

pacman -S sudo

Danach müssen wir die “wheel” Gruppe aber noch dafür freischalten. Dafür editieren wir die Datei /etc/sudoers. Etwas weiter unten ist der Eintrag für die wheel-Gruppe auskommentiert. Wir müssen das Kommentarzeichen löschen und die Datei wieder speichern.

sudo -lU jens

Checkt ob Nutzer jens dann auch sudo benutzen darf.
Jetzt können wir das System noch kurz updaten bevor wir es neu starten.

pacman -Syu

Zusätzlich müssen wir noch einmal das Layout der Tastatur setzten, bisher haben wir das nur für die Console gemacht. Ansonsten haben wir in der Oberfläche wieder die US Tastatur.

localectl set-x11-keymap de pc105 nodeadkeys compose:rwin

mit localectl status kann man checken was dann dort steht.

Danach sollten wir uns nach einem Neustart automatisch auf der SDDM Oberfläche für den Login wiederfinden. Und können uns da als jens mit dem Passwort auf den KDE Plasma Desktop einloggen. Damit lassen sich dann auch eine ganze Menge Einstellungen über die Oberfläche erledigen. Z.B. kann man auch hier wieder das Tastaturlayout einstellen.

Interessant wäre dann sicher noch einen sogenannten AUR-Helper [15] zu installieren. Da es doch einige nette Pakete von Benutzen gibt die nicht in den offiziellen Repos sind. Nutzung allerdings auf eigene Gefahr. Lesenswert wären sicher diese beiden Artikel aus dem Arch Wiki. Zusätzliche Hinweise [16] und empfohlene Programme [17]. Alles was man so für eine Bedürfnisse braucht muss man natürlich jetzt noch installieren. Bisher war das nur das Basissystem + Oberläche, bei der schon ein paar wenige Tools dabei sind.

Wer einen AUR Helper benutzten will muss sich im klaren sein, dass diese Pakete nicht von pacman direkt geupdated werden. Man muss diese dann auch mit dem Helper updaten. Im Prinzip macht ein AUR Helper nichts anderes wie was wir jetzt manuell machen müssen um überhaupt einen zu installieren. Nur macht er es eben schneller und hat ein besseres Gedächtnis. Ich habe mich hier für Pikaur entschieden. Wahrscheinlich weil es in Python geschrieben ist und ich das zumindest schon Mal selbst benutzt habe. Yaourt wird zwar noch überall erwähnt und war früher wohl das erste solche Tool. Es ist aber schon in die Jahre gekommen und kann vieles nicht. Außerdem wird es nicht mehr gewartet, deswegen würde ich dieses eher nicht benutzen.

In der Konsole bin ich jetzt nicht mehr als root sondern als jens in meinem Verzeichnis /home/jens. Als erstes müssen wir ein paar Pakete installieren.

sudo pacman -S base-devel git wget

mit den nötigen Abhängigkeiten natürlich. Danach geht es auch schon los.

mkdir temp
cd temp
git clone https://aur.archlinux.org/pikaur.git
cd pikaur
makepkg -si


Damit wäre pikaur installiert und kann wie pacman benutzt werden aber durchsucht eben zusätzlich auch die Nutzer Repos (das AUR). [18]

Vielleicht noch ein Wort zu Deinstallationen. Das wird alles mit Pacman erledigt.

sudo pacman -R xxx

statt xxx muss dann natürlich der Paketname stehen. Das deinstalliert jenes Paket. Mit -Rs kann man alle, nicht von anderen Paketen benötigten, Abhänigkeiten mit deinstallieren. -Rns löscht zusätzlich noch die Konfigurationen die nicht im /home/jens/ Verzeichnis liegen. Und letztendlich deinstalliert -Rnss auch alle Pakete die bei der Installation installiert wurden, auch wenn sie von anderen Paketen gebraucht werden. Dadurch funktionieren dann aber diese Programme wahrscheinlich nicht mehr richtig.