Files
Wiki/linux/arch/installation.md
2020-03-28 16:44:31 +01:00

4.0 KiB

Installationsanleitung

Festplatte vorbereiten

Wir wollen die folgende Aufteilung für unsere Partitionen:

| Name | Mountpoint | Größe | Dateisystem | Partitionstyp | | UEFI System Partition & boot | /boot | 1 GB | vfat | 0xEF00 (EFI System) | | Swap | swap | 16 GB | swap | 0x8200 (Linux swap) | | Root | / | Rest | ext4 | 0x8300 (Linux filesystem) |

Partitionerung

Man kann /boot und die UEFI System Partition zusammenfassen.

Die Partitonierung kann man mit gdisk oder cgdisk (curses-Frontend für gdisk) machen. fdisk sollte natürlich auch funktionieren.

Dateisysteme

ext4 ist nicht vorgegeben, ich nutze es nur.

Kurze Erklärung der benutzten Schalter:

  • mkfs.fat
    • -F - Setzt die FAT_SIZE (8, 16 oder 32), also die Größe der "file allocation tables"
    • -n - Setzt den Namen des Dateisystems
  • mkswap bzw. mkfs.ext4
    • -L - Setzt das Label (bzw. den Namen) des Dateisystems
mkfs.fat -F 32 -n EFIBOOT /dev/<partition1>
mkswap -L swap /dev/<partition2>
mkfs.ext4 -L root /dev/<partition3>

Partitionen einhängen

Wir mounten die root-Partition nach /mnt. Dann erstellen wir das /boot-Verzeichnis und mounten EFIBOOT dorthin. Als letztes aktivieren wir die Swappartition.

mount -L root /mnt
mkdir -p /mnt/boot
mount -L EFIBOOT /mnt/boot
swapon -L swap

Installation und Konfiguration des Basissystems

Die Grundpakete

Auswahl des Mirrors in /etc/pacman.d/mirrorlist (Noch im Kontext des USB-Sticks)

pacstrap bootstrapt das Basissystem nach /mnt. Es installiert die angegebenen Pakete bzw. Paketgruppen.

  • base bzw. base-devel - Eine Gruppe von Basispaketen
  • linux bzw. linux-firmware - Der Kernel und die Firmware
  • vim - Ein Editor
  • efibootmgr - "Editor" für die EFI-Systemvariablen
  • dosfstools - Tools, um mit Fat-Dateisystemen umzugehen
  • gptfdisk - gdisk bzw. cgdisk - Partionierungstools, die mit GPT umgehen können
  • bash-completion - Autovervollständigung für die Bash
  • intel-ucode - CPU-spezifischer Microcode
  • netctl - Ein einfacher Netzwerkmanager
pacstrap /mnt base base-devel linux linux-firmware vim efibootmgr dosfstools gptfdisk bash-completion intel-ucode netctl man-db man-pages

Die Dateisystemtabelle anlegen

Oder auch fstab, auch hier wieder mit UUIDs (-U)

genfstab -Up /mnt > /mnt/etc/fstab

Konfiguration

Wechsel ins chroot

arch-chroot /mnt/

Do config yadda yadda

Konfiguration von systemd-bootctl (Gummiboot)

Wir wollen systemd-bootctl benutzen. Das verkürzt die Bootzeit, da direkt über UEFI gebootet wird. Um die Verwechslungsgefahr der Partitionen zu verringern, benutzen wir die UUIDs der Partitionen. Herausfinden kann man die UUIDs mit dem Befehl blkid.

Wir erstellen die Datei /boot/loader/entries/arch-uefi.conf und fügen folgendes ein:

title    Arch Linux
linux    /vmlinuz-linux
initrd   /initramfs-linux.img
options  root=UUID=<UUID der root-Partition> rw resume=UUID=<UUID der swap-Partition>

Um den Fallback verwenden zu können, legen wir die Datei /boot/loader/entries/arch-uefi-fallback.confan:

title    Arch Linux Fallback
linux    /vmlinuz-linux
initrd   /initramfs-linux-fallback.img
options  root=UUID=<UUID der root-Partition> rw resume=UUID=<UUID der swap-Partition>

In der Datei /boot/loader/loader.conf können wir die generelle Konfiguration des Bootloaders bearbeiten. Der default-Eintrag gibt an, welcher Eintrag des Bootloaders als Standard gestartet werden soll. Er bezieht sich auf die Dateinamen der Einträge im entries Verzeichnis. Wir wählen arch-uefi. Außerdem kann man den timeout angeben, also die Zeit, bis der Standardeintrag automatisch gestartet wird.

default   arch-uefi
timeout   1

Netctl

Anlegen von Config: /etc/netctl/<Config-Name>

netctl enable <Config-Name>
netctl start <Config-Name>