diff --git a/linux/arch/installation.md b/linux/arch/installation.md new file mode 100644 index 0000000..53a3167 --- /dev/null +++ b/linux/arch/installation.md @@ -0,0 +1,131 @@ +# 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/ +mkswap -L swap /dev/ +mkfs.ext4 -L root /dev/ +``` + +### 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= rw resume=UUID= +``` + +Um den Fallback verwenden zu können, legen wir die Datei `/boot/loader/entries/arch-uefi-fallback.conf`an: + +``` +title Arch Linux Fallback +linux /vmlinuz-linux +initrd /initramfs-linux-fallback.img +options root=UUID= rw resume=UUID= +``` + +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/` + +``` +netctl enable +netctl start +``` \ No newline at end of file