Arch Installation: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
Keine Bearbeitungszusammenfassung |
||
| (21 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=Installation= | =Installation= | ||
==Aktuelles Image besorgen== | |||
Das ISO wird monatlich neu gebaut. Immer das aktuelle verwenden: | |||
*https://archlinux.org/download/ | |||
Direkt per wget (Mirror mit Weiterleitung auf das neueste Image): | |||
wget https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso | |||
wget https://geo.mirror.pkgbuild.com/iso/latest/sha256sums.txt | |||
Prüfsumme kontrollieren: | |||
sha256sum -c sha256sums.txt --ignore-missing | |||
Hinweis: Seit 2021 gibt es mit '''archinstall''' auch einen geführten Installer auf dem ISO. Für den Kurs wird hier die manuelle Installation gezeigt, weil man dabei sieht, was ein Linux-System zum Starten braucht. | |||
==Die Installation im Überblick== | |||
*[[Die Installation im Überblick]] | |||
==Booten des Images== | ==Booten des Images== | ||
| Zeile 5: | Zeile 20: | ||
Deutsches Tastaturlayout wählen | Deutsches Tastaturlayout wählen | ||
loadkeys de | loadkeys de-latin1 | ||
===Bootmodus prüfen (UEFI oder BIOS)=== | |||
cat /sys/firmware/efi/fw_platform_size | |||
*Ausgabe '''64''' -> UEFI (Normalfall) | |||
*Datei nicht vorhanden -> BIOS/Legacy | |||
Dieser Artikel beschreibt UEFI. Abweichungen für BIOS sind jeweils angegeben. | |||
Hinweis Proxmox: Bei einer VM mit OVMF (UEFI) beim Anlegen der EFI-Disk "Pre-Enroll keys" abwählen, sonst verhindert Secure Boot den Start von GRUB. | |||
===Netzwerk und Uhrzeit im Live-System=== | |||
Kabelgebundenes Netz wird per DHCP automatisch eingerichtet. Testen mit | |||
ip -br addr | |||
ping -c 3 archlinux.org | |||
Die Uhrzeit wird automatisch per NTP gestellt. Kontrolle: | |||
timedatectl | |||
==Festplatten einrichten== | ==Festplatten einrichten== | ||
Die Gerätenamen hängen von der Hardware ab: | |||
*/dev/sda - SATA/SCSI (auch Proxmox mit VirtIO SCSI) | |||
*/dev/vda - VirtIO Block | |||
*/dev/nvme0n1 - NVMe (Partitionen heißen dann /dev/nvme0n1p1 usw.) | |||
Anzeigen mit | |||
lsblk | |||
===Partitionieren=== | ===Partitionieren=== | ||
*[[gdisk]] | *[[Linux fdisk|fdisk]] oder [[gdisk]] | ||
Beispiel-Layout (GPT, UEFI): | |||
{| class="wikitable" | |||
! Partition !! Größe !! Typ (gdisk) !! Verwendung | |||
|- | |||
| /dev/sda1 || 1 GiB || ef00 || EFI-Systempartition, wird /boot | |||
|- | |||
| /dev/sda2 || 4 GiB || 8200 || Swap | |||
|- | |||
| /dev/sda3 || Rest || 8300 || Root / | |||
|} | |||
Nicht-interaktiv mit sgdisk: | |||
sgdisk -Z /dev/sda | |||
sgdisk -n 1:0:+1G -t 1:ef00 -c 1:EFI /dev/sda | |||
sgdisk -n 2:0:+4G -t 2:8200 -c 2:swap /dev/sda | |||
sgdisk -n 3:0:0 -t 3:8300 -c 3:root /dev/sda | |||
BIOS mit GPT: statt der EFI-Partition eine BIOS-Boot-Partition anlegen (1 MiB, Typ ef02). Sie wird nicht formatiert und nicht eingehängt. /boot liegt dann einfach auf der Rootpartition. | |||
sgdisk -n 1:0:+1M -t 1:ef02 -c 1:biosboot /dev/sda | |||
===Formatieren=== | ===Formatieren=== | ||
==== | ====EFI-Partition==== | ||
mkfs. | mkfs.fat -F 32 /dev/sda1 | ||
====Swappartition==== | |||
mkswap -L swap /dev/sda2 | mkswap -L swap /dev/sda2 | ||
====Rootpartition==== | |||
mkfs.ext4 -L root /dev/sda3 | |||
===Partitionen einbinden=== | ===Partitionen einbinden=== | ||
| Zeile 31: | Zeile 98: | ||
Rootpartition | Rootpartition | ||
mount /dev/sda1 /mnt | mount /dev/sda3 /mnt | ||
EFI-Partition (nur UEFI) | |||
mount --mkdir /dev/sda1 /mnt/boot | |||
Swappartition | Swappartition | ||
swapon /dev/sda2 | swapon /dev/sda2 | ||
Kontrolle | |||
lsblk -f | |||
==Installation des Basissystems== | ==Installation des Basissystems== | ||
Die Spiegelserver werden im Live-System automatisch von '''reflector''' sortiert. Bei Bedarf anpassen: | |||
;/etc/pacman.d/mirrorlist | |||
Basissystem, Kernel, Firmware und Editor installieren: | |||
pacstrap -K /mnt base linux linux-firmware vim man-db man-pages | |||
pacstrap /mnt | *base - Grundsystem (enthält u.a. systemd, iproute2, pacman) | ||
*linux - Kernel (seit 2019 nicht mehr in base enthalten) | |||
*linux-firmware - Firmware für echte Hardware (in einer VM verzichtbar) | |||
*-K - legt im neuen System einen eigenen, leeren Pacman-Schlüsselbund an | |||
Auf echter Hardware zusätzlich den Microcode installieren: | |||
pacstrap /mnt intel-ucode | |||
oder | |||
pacstrap /mnt amd-ucode | |||
base-devel (Compiler, make usw.) wird nur gebraucht, wenn man selbst Pakete baut (z.B. aus dem AUR). | |||
==fstab erzeugen== | ==fstab erzeugen== | ||
genfstab - | genfstab -U /mnt >> /mnt/etc/fstab | ||
-U trägt die Dateisysteme über ihre UUID ein. Das ist unabhängig davon, ob die Platte später sda oder vda heißt. | |||
Überprüfen mit | Überprüfen mit | ||
| Zeile 49: | Zeile 143: | ||
cat /mnt/etc/fstab | cat /mnt/etc/fstab | ||
== | ==In das neue System wechseln== | ||
arch-chroot /mnt | |||
Ab hier arbeitet man im neu installierten System. Gestartet ist es aber noch nicht. | |||
==Einrichten des Systems== | ==Einrichten des Systems== | ||
=== | ===Zeitzone=== | ||
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime | |||
hwclock --systohc | |||
===Sprache und Lokalisierung=== | |||
In /etc/locale.gen das # vor folgender Zeile entfernen: | |||
#de_DE.UTF-8 UTF-8 | |||
Mit vi oder direkt per sed: | |||
sed -i 's/^#de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen | |||
Locale erzeugen | |||
locale-gen | |||
Ausgabe: | |||
Generating locales... | |||
de_DE.UTF-8... done | |||
Generation complete. | |||
Systemsprache festlegen | |||
echo LANG=de_DE.UTF-8 > /etc/locale.conf | echo LANG=de_DE.UTF-8 > /etc/locale.conf | ||
Optional: Sortierung nach ASCII statt nach deutscher Sprachregel (z.B. bei ls) | |||
echo LC_COLLATE=C >> /etc/locale.conf | echo LC_COLLATE=C >> /etc/locale.conf | ||
| Zeile 72: | Zeile 188: | ||
echo KEYMAP=de-latin1 > /etc/vconsole.conf | echo KEYMAP=de-latin1 > /etc/vconsole.conf | ||
=== | ===Hostname=== | ||
echo arch01 > /etc/hostname | |||
===Konfiguration der Hosts=== | ===Konfiguration der Hosts=== | ||
vi /etc/hosts | vi /etc/hosts | ||
127.0.0.1 localhost | |||
127.0.0.1 | ::1 localhost | ||
::1 | 127.0.1.1 arch01.example.lan arch01 | ||
=== | ==Netzwerk einrichten mit systemd-networkd== | ||
systemd-networkd und systemd-resolved sind Teil von systemd und damit schon installiert. Die Einrichtung erfolgt noch im chroot, damit das System nach dem ersten Start sofort Netz hat. | |||
===Schnittstellen ermitteln=== | |||
ip link show | |||
Die Schnittstellen heißen nicht mehr eth0, sondern z.B. ens18 (Proxmox), enp0s3 (VirtualBox) oder enp3s0 (echte Hardware). Im chroot sieht man die Namen des Live-Systems. Sie sind im installierten System identisch. | |||
===Variante DHCP=== | |||
vi /etc/systemd/network/20-wired.network | |||
<pre> | |||
[Match] | |||
Name=en* | |||
[Network] | |||
DHCP=yes | |||
</pre> | |||
=== | ===Variante statische Adresse=== | ||
vi /etc/ | vi /etc/systemd/network/20-wired.network | ||
<pre> | |||
[Match] | |||
Name=ens18 | |||
[Network] | |||
Address=192.168.0.100/24 | |||
Gateway=192.168.0.1 | |||
DNS=192.168.0.1 | |||
</pre> | |||
===Dienste aktivieren=== | |||
systemctl enable systemd-networkd systemd-resolved | |||
Die Verlinkung von /etc/resolv.conf auf systemd-resolved erfolgt nach dem Verlassen des chroot (siehe unten), weil arch-chroot die Datei selbst belegt. | |||
==Initramfs erzeugen== | |||
Das Initramfs wurde von pacstrap bereits automatisch erzeugt. Nach Änderungen an /etc/mkinitcpio.conf wird es neu gebaut mit | |||
== | |||
mkinitcpio -P | |||
-P baut die Images für alle installierten Kernel. | |||
==Rootpasswort vergeben== | ==Rootpasswort vergeben== | ||
| Zeile 122: | Zeile 252: | ||
passwd | passwd | ||
New password: geheim | |||
Retype new | Retype new password: geheim | ||
passwd: password updated successfully | |||
==Benutzer und sudo (optional)== | |||
pacman -S sudo | |||
useradd -m -G wheel kurs | |||
passwd kurs | |||
Der Gruppe wheel sudo-Rechte geben: | |||
EDITOR=vim visudo | |||
Folgende Zeile auskommentieren: | |||
%wheel ALL=(ALL:ALL) ALL | |||
== | ==SSH-Server (optional)== | ||
pacman -S | pacman -S openssh | ||
systemctl enable sshd | |||
Hinweis: root darf sich per SSH standardmäßig nicht mit Passwort anmelden. Deshalb einen normalen Benutzer anlegen (siehe oben) oder einen Schlüssel hinterlegen. | |||
==Bootloader GRUB installieren und einrichten== | |||
===UEFI=== | |||
pacman -S grub efibootmgr | |||
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB | |||
grub-mkconfig -o /boot/grub/grub.cfg | grub-mkconfig -o /boot/grub/grub.cfg | ||
===BIOS=== | |||
pacman -S grub | |||
grub-install --target=i386-pc /dev/sda | |||
grub-mkconfig -o /boot/grub/grub.cfg | |||
Achtung: Bei BIOS wird die Platte (/dev/sda) angegeben, nicht die Partition. | |||
==Alternative: systemd-boot (nur UEFI)== | |||
systemd-boot ist Teil von systemd und braucht kein zusätzliches Paket. | |||
bootctl install | |||
vi /boot/loader/loader.conf | |||
<pre> | |||
default arch.conf | |||
timeout 3 | |||
</pre> | |||
vi /boot/loader/entries/arch.conf | |||
== | <pre> | ||
title Arch Linux | |||
linux /vmlinuz-linux | |||
initrd /initramfs-linux.img | |||
options root=UUID=HIER-DIE-UUID rw | |||
</pre> | |||
Die UUID der Rootpartition direkt anhängen lassen und anschließend in die options-Zeile verschieben: | |||
blkid -s UUID -o value /dev/sda3 >> /boot/loader/entries/arch.conf | |||
==System neustarten== | |||
chroot verlassen | |||
exit | |||
resolv.conf auf systemd-resolved verlinken | |||
ln -sf ../run/systemd/resolve/stub-resolv.conf /mnt/etc/resolv.conf | |||
Alles aushängen und neu starten | |||
umount -R /mnt | |||
reboot | |||
ISO bzw. CD-Laufwerk aus der VM entfernen, damit nicht wieder das Live-System startet. | |||
==Kontrolle nach dem ersten Start== | |||
networkctl | |||
ip -br addr | |||
resolvectl status | |||
ping -c 3 archlinux.org | |||
==Temporäre IP zuteilen (ohne Konfigurationsdatei)== | |||
Zum Testen oder zur Fehlersuche kann man die Adresse auch von Hand setzen. Sie ist nach einem Neustart wieder weg. | |||
ip link set dev ens18 up | |||
ip addr add 192.168.0.100/24 dev ens18 | |||
ip route add default via 192.168.0.1 | |||
=Paketverwaltung= | =Paketverwaltung= | ||
| Zeile 204: | Zeile 353: | ||
==Pacman== | ==Pacman== | ||
Pacman ist der All-in-One Paketmanager von Arch Linux. Mit ihm kann man Pakete suchen, herunterladen, installieren | Pacman ist der All-in-One Paketmanager von Arch Linux. Mit ihm kann man Pakete suchen, herunterladen, installieren, aktualisieren, überprüfen und entfernen. | ||
Die wichtigsten Optionen sind | Die wichtigsten Optionen sind | ||
*-S Paket installieren | *-S Paket installieren | ||
*-Syu komplettes System aktualisieren (Paketdatenbank holen und alle Pakete aktualisieren) | |||
*-Ss nach Paketen in den Repositories suchen. Ein Teil des Namens ist ausreichend | |||
*-Si Informationen zu einem Paket aus den Repositories anzeigen | |||
*-R Paket deinstallieren | *-R Paket deinstallieren | ||
*- | *-Rs Paket samt nicht mehr benötigter Abhängigkeiten deinstallieren | ||
*- | *-Rns wie -Rs, zusätzlich werden gesicherte Konfigurationsdateien (.pacsave) entfernt | ||
*- | *-Qs unter den installierten Paketen suchen | ||
*-Qi Informationen zu | *-Qi Informationen zu einem installierten Paket anzeigen | ||
*- | *-Ql welche Dateien sind im installierten Paket | ||
*-Qo | *-Qo zu welchem installierten Paket gehört eine Datei | ||
*-Qdtq verwaiste Pakete auflisten (als Abhängigkeit installiert, aber nicht mehr benötigt) | |||
*-Fy Dateidatenbank aktualisieren | |||
*-F in welchem (auch nicht installierten) Paket steckt eine Datei, z.B. pacman -F dig | |||
Verwaiste Pakete auf einen Schlag entfernen: | |||
pacman -Rns $(pacman -Qdtq) | |||
==Wichtig: keine Teilupdates== | |||
Arch unterstützt keine Teilupdates. Deshalb: | |||
*niemals pacman -Sy paket ausführen (neue Datenbank, aber altes System -> Bibliotheken passen nicht mehr zusammen) | |||
*stattdessen immer pacman -Syu paket | |||
*-Su ohne y aktualisiert nur gegen die vorhandene, eventuell veraltete Paketdatenbank | |||
==Paketcache aufräumen== | |||
Pacman hebt alle heruntergeladenen Pakete in /var/cache/pacman/pkg auf. | |||
pacman -S pacman-contrib | |||
paccache -r | |||
Behält die letzten drei Versionen jedes Pakets. Automatisch wöchentlich: | |||
systemctl enable --now paccache.timer | |||
==AUR== | |||
Das Arch User Repository enthält Bauanleitungen (PKGBUILD) für Software, die nicht in den offiziellen Repositories ist. Gebaut wird mit makepkg, dafür wird base-devel benötigt. AUR-Pakete sind nicht geprüft, das PKGBUILD sollte man vor dem Bauen lesen. | |||
*https://aur.archlinux.org/ | |||
==Links== | |||
*[https://wiki.archlinux.org/title/Installation_guide Installation guide (Arch Wiki)] | |||
*[https://wiki.archlinux.org/title/Pacman/Rosetta Pakethandlingvergleich (Pacman Rosetta)] | |||
Aktuelle Version vom 11. Oktober 2026, 11:47 Uhr
Installation
Aktuelles Image besorgen
Das ISO wird monatlich neu gebaut. Immer das aktuelle verwenden:
Direkt per wget (Mirror mit Weiterleitung auf das neueste Image):
wget https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso wget https://geo.mirror.pkgbuild.com/iso/latest/sha256sums.txt
Prüfsumme kontrollieren:
sha256sum -c sha256sums.txt --ignore-missing
Hinweis: Seit 2021 gibt es mit archinstall auch einen geführten Installer auf dem ISO. Für den Kurs wird hier die manuelle Installation gezeigt, weil man dabei sieht, was ein Linux-System zum Starten braucht.
Die Installation im Überblick
Booten des Images
Deutsches Tastaturlayout wählen
loadkeys de-latin1
Bootmodus prüfen (UEFI oder BIOS)
cat /sys/firmware/efi/fw_platform_size
- Ausgabe 64 -> UEFI (Normalfall)
- Datei nicht vorhanden -> BIOS/Legacy
Dieser Artikel beschreibt UEFI. Abweichungen für BIOS sind jeweils angegeben.
Hinweis Proxmox: Bei einer VM mit OVMF (UEFI) beim Anlegen der EFI-Disk "Pre-Enroll keys" abwählen, sonst verhindert Secure Boot den Start von GRUB.
Netzwerk und Uhrzeit im Live-System
Kabelgebundenes Netz wird per DHCP automatisch eingerichtet. Testen mit
ip -br addr ping -c 3 archlinux.org
Die Uhrzeit wird automatisch per NTP gestellt. Kontrolle:
timedatectl
Festplatten einrichten
Die Gerätenamen hängen von der Hardware ab:
- /dev/sda - SATA/SCSI (auch Proxmox mit VirtIO SCSI)
- /dev/vda - VirtIO Block
- /dev/nvme0n1 - NVMe (Partitionen heißen dann /dev/nvme0n1p1 usw.)
Anzeigen mit
lsblk
Partitionieren
Beispiel-Layout (GPT, UEFI):
| Partition | Größe | Typ (gdisk) | Verwendung |
|---|---|---|---|
| /dev/sda1 | 1 GiB | ef00 | EFI-Systempartition, wird /boot |
| /dev/sda2 | 4 GiB | 8200 | Swap |
| /dev/sda3 | Rest | 8300 | Root / |
Nicht-interaktiv mit sgdisk:
sgdisk -Z /dev/sda sgdisk -n 1:0:+1G -t 1:ef00 -c 1:EFI /dev/sda sgdisk -n 2:0:+4G -t 2:8200 -c 2:swap /dev/sda sgdisk -n 3:0:0 -t 3:8300 -c 3:root /dev/sda
BIOS mit GPT: statt der EFI-Partition eine BIOS-Boot-Partition anlegen (1 MiB, Typ ef02). Sie wird nicht formatiert und nicht eingehängt. /boot liegt dann einfach auf der Rootpartition.
sgdisk -n 1:0:+1M -t 1:ef02 -c 1:biosboot /dev/sda
Formatieren
EFI-Partition
mkfs.fat -F 32 /dev/sda1
Swappartition
mkswap -L swap /dev/sda2
Rootpartition
mkfs.ext4 -L root /dev/sda3
Partitionen einbinden
Rootpartition
mount /dev/sda3 /mnt
EFI-Partition (nur UEFI)
mount --mkdir /dev/sda1 /mnt/boot
Swappartition
swapon /dev/sda2
Kontrolle
lsblk -f
Installation des Basissystems
Die Spiegelserver werden im Live-System automatisch von reflector sortiert. Bei Bedarf anpassen:
- /etc/pacman.d/mirrorlist
Basissystem, Kernel, Firmware und Editor installieren:
pacstrap -K /mnt base linux linux-firmware vim man-db man-pages
- base - Grundsystem (enthält u.a. systemd, iproute2, pacman)
- linux - Kernel (seit 2019 nicht mehr in base enthalten)
- linux-firmware - Firmware für echte Hardware (in einer VM verzichtbar)
- -K - legt im neuen System einen eigenen, leeren Pacman-Schlüsselbund an
Auf echter Hardware zusätzlich den Microcode installieren:
pacstrap /mnt intel-ucode
oder
pacstrap /mnt amd-ucode
base-devel (Compiler, make usw.) wird nur gebraucht, wenn man selbst Pakete baut (z.B. aus dem AUR).
fstab erzeugen
genfstab -U /mnt >> /mnt/etc/fstab
-U trägt die Dateisysteme über ihre UUID ein. Das ist unabhängig davon, ob die Platte später sda oder vda heißt.
Überprüfen mit
cat /mnt/etc/fstab
In das neue System wechseln
arch-chroot /mnt
Ab hier arbeitet man im neu installierten System. Gestartet ist es aber noch nicht.
Einrichten des Systems
Zeitzone
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime hwclock --systohc
Sprache und Lokalisierung
In /etc/locale.gen das # vor folgender Zeile entfernen:
#de_DE.UTF-8 UTF-8
Mit vi oder direkt per sed:
sed -i 's/^#de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen
Locale erzeugen
locale-gen
Ausgabe:
Generating locales... de_DE.UTF-8... done Generation complete.
Systemsprache festlegen
echo LANG=de_DE.UTF-8 > /etc/locale.conf
Optional: Sortierung nach ASCII statt nach deutscher Sprachregel (z.B. bei ls)
echo LC_COLLATE=C >> /etc/locale.conf
Tastaturbelegung
echo KEYMAP=de-latin1 > /etc/vconsole.conf
Hostname
echo arch01 > /etc/hostname
Konfiguration der Hosts
vi /etc/hosts
127.0.0.1 localhost ::1 localhost 127.0.1.1 arch01.example.lan arch01
Netzwerk einrichten mit systemd-networkd
systemd-networkd und systemd-resolved sind Teil von systemd und damit schon installiert. Die Einrichtung erfolgt noch im chroot, damit das System nach dem ersten Start sofort Netz hat.
Schnittstellen ermitteln
ip link show
Die Schnittstellen heißen nicht mehr eth0, sondern z.B. ens18 (Proxmox), enp0s3 (VirtualBox) oder enp3s0 (echte Hardware). Im chroot sieht man die Namen des Live-Systems. Sie sind im installierten System identisch.
Variante DHCP
vi /etc/systemd/network/20-wired.network
[Match] Name=en* [Network] DHCP=yes
Variante statische Adresse
vi /etc/systemd/network/20-wired.network
[Match] Name=ens18 [Network] Address=192.168.0.100/24 Gateway=192.168.0.1 DNS=192.168.0.1
Dienste aktivieren
systemctl enable systemd-networkd systemd-resolved
Die Verlinkung von /etc/resolv.conf auf systemd-resolved erfolgt nach dem Verlassen des chroot (siehe unten), weil arch-chroot die Datei selbst belegt.
Initramfs erzeugen
Das Initramfs wurde von pacstrap bereits automatisch erzeugt. Nach Änderungen an /etc/mkinitcpio.conf wird es neu gebaut mit
mkinitcpio -P
-P baut die Images für alle installierten Kernel.
Rootpasswort vergeben
passwd
New password: geheim Retype new password: geheim passwd: password updated successfully
Benutzer und sudo (optional)
pacman -S sudo useradd -m -G wheel kurs passwd kurs
Der Gruppe wheel sudo-Rechte geben:
EDITOR=vim visudo
Folgende Zeile auskommentieren:
%wheel ALL=(ALL:ALL) ALL
SSH-Server (optional)
pacman -S openssh systemctl enable sshd
Hinweis: root darf sich per SSH standardmäßig nicht mit Passwort anmelden. Deshalb einen normalen Benutzer anlegen (siehe oben) oder einen Schlüssel hinterlegen.
Bootloader GRUB installieren und einrichten
UEFI
pacman -S grub efibootmgr grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB grub-mkconfig -o /boot/grub/grub.cfg
BIOS
pacman -S grub grub-install --target=i386-pc /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
Achtung: Bei BIOS wird die Platte (/dev/sda) angegeben, nicht die Partition.
Alternative: systemd-boot (nur UEFI)
systemd-boot ist Teil von systemd und braucht kein zusätzliches Paket.
bootctl install
vi /boot/loader/loader.conf
default arch.conf timeout 3
vi /boot/loader/entries/arch.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=UUID=HIER-DIE-UUID rw
Die UUID der Rootpartition direkt anhängen lassen und anschließend in die options-Zeile verschieben:
blkid -s UUID -o value /dev/sda3 >> /boot/loader/entries/arch.conf
System neustarten
chroot verlassen
exit
resolv.conf auf systemd-resolved verlinken
ln -sf ../run/systemd/resolve/stub-resolv.conf /mnt/etc/resolv.conf
Alles aushängen und neu starten
umount -R /mnt reboot
ISO bzw. CD-Laufwerk aus der VM entfernen, damit nicht wieder das Live-System startet.
Kontrolle nach dem ersten Start
networkctl ip -br addr resolvectl status ping -c 3 archlinux.org
Temporäre IP zuteilen (ohne Konfigurationsdatei)
Zum Testen oder zur Fehlersuche kann man die Adresse auch von Hand setzen. Sie ist nach einem Neustart wieder weg.
ip link set dev ens18 up ip addr add 192.168.0.100/24 dev ens18 ip route add default via 192.168.0.1
Paketverwaltung
Pacman
Pacman ist der All-in-One Paketmanager von Arch Linux. Mit ihm kann man Pakete suchen, herunterladen, installieren, aktualisieren, überprüfen und entfernen.
Die wichtigsten Optionen sind
- -S Paket installieren
- -Syu komplettes System aktualisieren (Paketdatenbank holen und alle Pakete aktualisieren)
- -Ss nach Paketen in den Repositories suchen. Ein Teil des Namens ist ausreichend
- -Si Informationen zu einem Paket aus den Repositories anzeigen
- -R Paket deinstallieren
- -Rs Paket samt nicht mehr benötigter Abhängigkeiten deinstallieren
- -Rns wie -Rs, zusätzlich werden gesicherte Konfigurationsdateien (.pacsave) entfernt
- -Qs unter den installierten Paketen suchen
- -Qi Informationen zu einem installierten Paket anzeigen
- -Ql welche Dateien sind im installierten Paket
- -Qo zu welchem installierten Paket gehört eine Datei
- -Qdtq verwaiste Pakete auflisten (als Abhängigkeit installiert, aber nicht mehr benötigt)
- -Fy Dateidatenbank aktualisieren
- -F in welchem (auch nicht installierten) Paket steckt eine Datei, z.B. pacman -F dig
Verwaiste Pakete auf einen Schlag entfernen:
pacman -Rns $(pacman -Qdtq)
Wichtig: keine Teilupdates
Arch unterstützt keine Teilupdates. Deshalb:
- niemals pacman -Sy paket ausführen (neue Datenbank, aber altes System -> Bibliotheken passen nicht mehr zusammen)
- stattdessen immer pacman -Syu paket
- -Su ohne y aktualisiert nur gegen die vorhandene, eventuell veraltete Paketdatenbank
Paketcache aufräumen
Pacman hebt alle heruntergeladenen Pakete in /var/cache/pacman/pkg auf.
pacman -S pacman-contrib paccache -r
Behält die letzten drei Versionen jedes Pakets. Automatisch wöchentlich:
systemctl enable --now paccache.timer
AUR
Das Arch User Repository enthält Bauanleitungen (PKGBUILD) für Software, die nicht in den offiziellen Repositories ist. Gebaut wird mit makepkg, dafür wird base-devel benötigt. AUR-Pakete sind nicht geprüft, das PKGBUILD sollte man vor dem Bauen lesen.