Arch Linux Installation

Diese Anleitung geht von einem x86_64 System aus mit einer Festplatte (/dev/sda), DHCP-konfiguriertem Netzwerk und Verwendung von bootctl mit UEFI.

  1. Setze das Tastaturlayout mit loadkeys de_CH-latin1.
  2. Überprüfe den Boot-Modus mit ls /sys/firmware/efi/efivars.
  3. Synchronisiere die Systemuhr mit timedatectl.
  4. Listet alle Laufwerke auf und partitioniere sie mit fdisk -l und fdisk /dev/sdX.
  5. Formatieren die Partitionen. Beispielsweise:
    • Ext4 für die Root-Partition: mkfs.ext4 /dev/sda3.
    • Swap erstellen: mkswap /dev/sda2.
    • EFI-Systempartition formatieren: mkfs.fat -F 32 /dev/sda1.
  6. Binde die Partitionen ins Dateisystem ein:
    • mount /dev/sda3 /mnt
    • mount --mkdir /dev/sda1 /mnt/boot
    • swapon /dev/sda2.
  7. Installiere das Basissystem, den Kernel und die Firmware mit pacstrap -K /mnt base linux linux-firmware.
  8. Generiere eine fstab-Datei mit genfstab -U /mnt >> /mnt/etc/fstab.
  9. Wechsle in das neue System mit arch-chroot /mnt.
  10. Setze die Zeitzone: ln -sf /usr/share/zoneinfo/Region/City /etc/localtime und hwclock --systohc.
  11. Aktiviere die benötigten Sprachpakete in /etc/locale.gen und generiere sie mit locale-gen. Setze dann LANG in /etc/locale.conf.
locales.sh
# /etc/locale.conf
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
  1. Stelle die Tastaturlayout-Konfiguration in /etc/vconsole.conf ein.
# /etc/vconsole.conf
KEYMAP=de-latin1
  1. Setze den Hostnamen hostnamectl set-hostname kub-ctrl-01.
  2. Initialisiere RAMFS mit mkinitcpio -P
  3. Installiere systemd-boot mit bootctl --path=/boot install.
  4. Speichere die Block-ID in arch.conf mit blkid /dev/sda2 >> /boot/loader/entries/arch.conf und bearbeite dann die Datei arch.conf und loader.conf
# /boot/loader/entries/arch.conf
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=PARTUUID=YOUR-PARTUUID-CODE-HERE rw

# /boot/loader/loader.conf
default arch
timeout 4
console-mode max
editor no
  1. Aktualisiere systemd-boot mit bootctl --path=/boot update.
  2. Installiere Dhclient, Network Manager und OpenSSH mit pacman -S dhclient openssh networkmanager und aktiviere den SSH-Dienst: systemctl enable sshd und den Network Manager systemctl enable NetworkManager und systemctl enable systemd-resolved
  3. Setze das Root-Passwort mit passwd.
  4. Füge einen neuen Benutzer hinzu: useradd -m -g users -G wheel,power,storage -s /bin/bash username, wobei “username” der Name des neuen Benutzers ist.
  5. Installiere folgende Pakete für ein “modernes” Unix:
    1. vim
    2. duf
    3. zsh
    4. git
    5. dog
    6. lsd
    7. htop
    8. bat
    9. yq
    10. dust
  6. Starte das System neu.

Pakete zum Management:

salt: Der Salt-Master ist der nodemaster

netdata: Die Prometheus-Metriken sind im Endpoint /api/v1/allmetrics?format=prometheus erreichbar.

Automatisieren der Installation mit Archinstall

archinstall \
  --config http://nodemaster/archinstall.json \
  --creds http://nodemaster/credentials.json \
  --disk_layouts http://nodemaster/disks.json

Wenn man ein Template kopiert, werden auch die PARTUUID der Disks mitkopiert, was zu Problemen führen kann. Ein Workaround ist, nach dem Kopieren mit Labeln zu arbeiten:

sudo e2label /dev/sda2 root_fs_part
# /boot/loader/entries/arch.conf
options root=LABEL=root_fs_part rw
bootctl --path=/boot update
tune2fs -U random /dev/sda2