Arch Linux und »archinstall«

Vorige Woche habe ich die Installation von Arch Linux beschrieben. Ein Leser hat mich nun darauf hingewiesen, dass es zur rein manuellen Installation eine Alternative gibt: Das Script archinstall, das im Live-System von Arch Linux mittlerweile standardmäßig enthalten ist.

Beachten Sie, dass das ArchWiki archinstall als noch »experimentell« bezeichnet und darum bittet, bei Fehlerberichten auf die Verwendung von archinstall hinzuweisen.

Installation starten

Die Installation beginnt wie bei der manuellen Variante: Sie laden von https://archlinux.org/download das Live-Image herunter und booten damit Ihren Rechner bzw. Ihre virtuelle Maschine. Wenn Sie wollen, können Sie ein root-Passwort festlegen, sich dann per SSH im Live-System anmelden und die weitere Installation via SSH durchführen.

Danach gibt es zwei Varianten: Die eine besteht darin, archinstall sofort auszuführen. Das ist dann zweckmäßig, wenn Arch Linux den gesamten Datenträger nutzen darf, z.B. in virtuellen Maschinen. Bei der zweiten Variante kümmern Sie sich zuerst selbst um die Partitionierung, um das Einrichten des Dateisystems (optional samt LVM und RAID) und binden das Root-Dateisystem unter /mnt in den Verzeichnisbaum ein. Beim anschließenden Start von archinstall berücksichtigt das Script /mnt. (Funktioniert nicht, getestet 25.2.2022.)

archinstall stellt während der Installation diverse Optionen zur Auswahl (Sprache, Tastatur, Desktop-System etc.), die Sie durch die Angabe des Namens oder der fortlaufenden Nummer auswählen. Die eigentliche Installation beginnt erst nach einer Anzeige aller Einstellungen und einer letzten Rückfrage.

Bootloader

Auf Rechnern mit EFI haben Sie beim Bootloader die Wahl zwischen GRUB und systemd-boot.

In virtuellen Maschinen mit BIOS installiert archinstall immer GRUB.

Automatische Partitionierung

Ich empfehle Ihnen, die Partitionierung nur dann archinstall zu überlassen, wenn das Script den gesamten Datenträger nutzen darf und Sie keine Rücksicht auf vorhandene Daten oder Betriebssysteme nehmen müssen. Ich habe keine klare Beschreibung gefunden, wie archinstall bei der Partitionierung vorgeht. Bei meinen Tests bin ich zu folgenden Ergebnissen gekommen:

  • BIOS: Eine Systempartition füllt den ganzen Datenträger mit Ausnahme des ersten MiB. GRUB wird in die ersten Sektoren installiert, es gibt keine eigene /boot-Partition.

  • EFI: Hier richtet das Script eine gemeinsame boot- und EFI-Partition ein (vfat-Dateisystem, 500 MB). Den Rest des Datenträgers füllt die Systempartition.

Beispiellauf

Das folgende Listing zeigt einen (etwas gekürzten) Ablauf des Frage- und Antwort-Spiels von archinstall.

archinstall

 ...
 4: de     
 ...
Select one of the above keyboard languages (by number or full name): 4

 ...
11: Germany
 ...
Select one of the above regions to download packages from (by number or full name): 11

0: /dev/loop0 (('638.7M', '/run/archiso/copytoram/airootfs.sfs', None))
1: /dev/sr0   (('774.3M', None, 'ARCH_202106'))
2: /dev/vda   (('25G', '/dev/vda', None))
Select one of the above disks (by name or number) or leave blank to use /mnt: 2

0: btrfs
1: ext4
2: xfs
3: f2fs
Select which filesystem your main partition should use (by number or name): 1

Enter disk encryption password (leave blank for no encryption):  <return>

Would you like to use GRUB as a bootloader instead of systemd-boot? [y/N] y

Desired hostname for the installation: archinstalltest

Enter root password (Recommendation: leave blank to leave root disabled):  <return>

Create a required super-user with sudo privileges: kofler
Password for user kofler: ********
And one more time for verification:  ******** 

Enter a username to create a additional user (leave blank to skip & continue): <return>

0: desktop
1: minimal
2: server
3: xorg
Enter a pre-programmed profile name if you want to install one: 0

0: awesome
1: budgie
2: cinnamon
3: deepin
4: enlightenment
5: gnome
6: i3
7: kde
8: lxqt
9: mate
10: sway
11: xfce4
Select your desired desktop environment: 5

0: AMD / ATI (open-source)
1: All open-source (default)
2: Intel (open-source)
3: Nvidia
4: VMware / VirtualBox (open-source)
Select your graphics card driver: 4

Would you like to install pipewire instead of pulseaudio as the default audio server? [Y/n] y

0: >> linux                                                                                                                                                              1: linux-hardened                                                                                                                             
2: linux-lts          
3: linux-zen          
Choose which kernels to use (leave blank for default: linux): <return>

If you desire a web browser, such as firefox or chromium, you may specify 
it in the following prompt. Write additional packages to install (space 
separated, leave blank to skip):  nano firefox 

0: Copy ISO network configuration to installation
1: Use NetworkManager to control and manage your internet connection
2: enp1s0
Select one network interface to configure (leave blank to skip): 1

Enter a valid timezone (examples: Europe/Stockholm, US/Eastern) 
or press enter to use UTC: Europe/Berlin

Would you like to use automatic time synchronization (NTP) with the 
default time servers? [Y/n]: y

This is your chosen configuration:

{
    "!root-password": "******",
    "audio": "pipewire",
    "bootloader": "grub-install",
    "filesystem": "ext4",
    "harddrive": {
        "model": null,
        "path": "/dev/vda",
        "size": "25G"
    },
    "hostname": "archinstalltest",
    "kernels": [
        "linux"
    ],
    "keyboard-language": "de",
    "mirror-region": {
        "Germany": {
            "https://appuals.com/archlinux/$repo/os/$arch": true,
            "https://arch.jensgutermuth.de/$repo/os/$arch": true,
            ...
            "https://pkg.fef.moe/archlinux/$repo/os/$arch": true
        }
    },
    "nic": {
        "NetworkManager": true,
        "nic": "Use NetworkManager to control and manage your internet connection"
    },
    "ntp": true,
    "packages": [
        "nano",
        "firefox"
    ],
    "profile": {
        "path": "/usr/lib/python3.9/site-packages/archinstall/profiles/desktop.py"
    },
    "script": "guided",
    "superusers": {
        "kofler": {
            "!password": "******"
        }
    },
    "sys-encoding": "utf-8",
    "sys-language": "en_US",
    "timezone": "Europe/Berlin",
    "users": {}
}

Praktische Erfahrungen

Bei meinen Tests, die ich allerdings ausschließlich in virtuellen Maschinen durchgeführt habe, hat archinstall durchwegs gut funktioniert. Ich habe mich allerdings nicht getraut, archinstall auf meine echten Rechner loszulassen, auf denen diverse andere Linux-Distributionen installiert sind.

Die Konfiguration des deutschen Textlayouts für die Konsole hat nur teilweise funktioniert. Die Eingabe deutscher Sonderzeichen war unmöglich. Abhilfe: Öffnen Sie im neu installierten System /etc/vconsole.conf mit einem Editor und ersetzen Sie KEYMAP=de durch KEYMAP=de-latin1.

Quellen/Links