Arch Linux Basissystem mit UEFI, LUKS und GRUB Installation
Vorbereitung
uSD-Karte einlegen und Boot-USB-Stick anstecken, booten.
Beim Boot ist die US-Tastaturbelegung aktiv: ‚y ‚ durch ‚z‘ und ‚-‚ durch ‚ß‘ ersetzen
loadkeys de-latin1-nodeadkeys _________________________________ loadkezs deßlatin1ßnodeadkezs |
Netzwerkverbindung herstellen und testen:
dhcpcd ping -c3 www.archlinux.de |
Festplatte mit Zufallszahlen überschreiben
Platten und Plattennummerierung prüfen:
lsblk |
interne eMMC überschreiben:
dd status=progress if =/dev/urandom of=/dev/mmcblk1 |
GPT eMMC (mmcblk1) partitionieren
Folgende Partitionierung wird angestrebt:
LVM:
PV – Physical Volume
VG – Volume Group
LV – Logical Volume
Achtung
In der unten stehenden Installation wird KEIN „/home“ Verzeichnis angelegt, sondern nur „/“
Partition
|
Größe
|
Device
|
Erläuterung
|
---|---|---|---|
/boot | 512MB | mmcblk1p1 | 512MB ist die Mindestgröße, bedingt durch das FAT Dateisystem |
/ | komplette eMMC | mmcblk1p2 | Es wird weder „SWAP“ noch z.B. „/home“ als Partition angelegt, da LVM benutzt wird |
eMMC mmcblk1 partitionieren
lsblk |
Verifizieren, ob die eMMC als „mmcblk1“ eingebunden ist, dann mit „gdisk“ partitionieren:
gdisk /dev/mmcblk1 o # neue leere GPT Partitionstabelle erstellen n # neue Partition erstellen ENTER # Partionsnummer 1 bestätigen ENTER # ersten Sektor bestätigen +512M # 512 MB große Partition anlegen ef00 # Hexcode für EFI Boot n # neue Partition erstellen ENTER # Partitionsnummer 2 bestätigen ENTER # ersten Folgesektor bestätigen ENTER # letzten Sektor bestätigen 8e00 # Hexcode für Linux LVM p # Partitionierung prüfen w # Partitionierung schreiben y # bestätigen |
Ergebnis prüfen:
lsblk |
mmcblk1p1 – Boot Partition formatieren
mkfs.fat -F 32 -n EFI /dev/mmcblk1p1 |
mmcblk1p2 – LUKS einrichten
cryptsetup Performance testen:
cryptsetup benchmark |
Verschlüsselung
modprobe dm-crypt cryptsetup -c aes-xts-plain64 -y -s 512 luksFormat /dev/mmcblk1p2 |
Passwortvergabe
Hier wird jetzt ein komplexes Passwort /eine Passphrase notwendig, dann weiter mit:
cryptsetup luksOpen /dev/mmcblk1p2 lvm |
LVM – Volume und Groups erstellen
Achtung: den Unterschied zwischen "-L" und "-l" beachten:
pvcreate /dev/mapper/lvm vgcreate main /dev/mapper/lvm lvcreate -L 24GB -n root main lvcreate -l 100 %FREE -n swap main |
Regeln für die Größe der SWAP-Partition:
- kleiner Arbeitsspeicher bis 4 GB: Doppelter Arbeitsspeicher
- mittlerer Arbeitsspeicher bis 16 GB: 5-10% größer als der Arbeitsspeicher
- großer Arbeitsspeicher ab 16 GB : 5-10% größer als der Arbeitsspeicher oder keine SWAP_Partition
( je größer der Arbeitsspeicher, desto weniger wird eine SWAP Partition benötigt)
LVM setup prüfen:
pvs vgs lvs |
Dateisysteme erstellen und mounten
mkfs.ext4 -L root /dev/mapper/main-root mount /dev/mapper/main-root /mnt |
mkswap -L swap /dev/mapper/main-swap swapon /dev/mapper/main-swap |
mkdir -p /mnt/boot mount -L EFI /mnt/boot lsblk |
Basisystem
LAN Internetzugang einrichten
LAN / Ethernet Schnittstelle ermitteln:
ip link |
interne IP Adresse bestimmen:
alternativ oder zusätzlich: WLAN einrichten:
Mirrorliste bearbeiten
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.bak | sed '/--/d' > /etc/pacman.d/mirrorlist nano /etc/pacman.d/mirrorlist ------------------------------------------ alternativ "Reflector" benutzen -------------- : pacman -Syy pacman -S reflector reflector -c "Germany" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist |
REFLECTOR
|
|
---|---|
-c | „Land“ in Anführungszeichen |
-f | die schnellsten x Server |
-l | nur die x zuletzt synchronisierten Server |
-n | maximal x Server ausgeben |
–save | sichere in nachfolgende Datei |
Aus der Mirrorliste alle weit entfernten Server jetzt mit # auskommentieren
Basissystem installieren
Achtung „pacstrap“ funktioniert nur, wenn vorab der Webfilter der Firewall deaktiviert wurde ! Nach erfolgreichem „pacstrap“ Webfilter wieder aktivieren !
pacstrap /mnt base base-devel linux linux-firmware nano |
fstab
genfstab -U -p /mnt >> /mnt/etc/fstab nano /mnt/etc/fstab |
fstab editieren und anpassen, da System auf einer emmc instaliert wird:
LABEL=p_arch / ext4 rw,defaults,noatime,discard 0 1 LABEL=p_swap none swap defaults,noatime,discard 0 0 |
CHROOT vom Installationsmedium in das System
arch-chroot /mnt |
Systemkonfiguration
/etc/hostname
echo netzlos > /etc/hostname |
böse Gemüter dürfen hier auch „nutzlos“ als Hostnamen vergeben
/etc/locale.conf
echo LANG=de_DE.UTF- 8 > /etc/locale.conf |
/etc/locale.gen
nano /etc/locale.gen |
Suchen und das # am Anfang folgender Zeilen entfernen:
de_DE.UTF- 8 UTF- 8 de_DE ISO- 8859 - 1 de_DE @euro ISO- 8859 - 15 en_US.UTF- 8 |
Hinweis: Suchen im Editor nano: Strg+W SUCHBEGRIFF↵ Enter Weitersuchen mit gleichem Suchbegriff erneut: Alt+W oder F16
locale-gen |
/etc/vconsole.conf
echo KEYMAP=de-latin1 > /etc/vconsole.conf echo FONT=lat9w- 16 >> /etc/vconsole.conf |
/etc/localtime
Die Zeitzone durch einen symbolischen Link festlegen:
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime |
/etc/hosts
cat /etc/hosts # 127.0 . 0.1 localhost.localdomain localhost :: 1 localhost.localdomain localhost |
Kernel-Image erzeugen
nano /etc/mkinitcpio.conf |
Die Zeile „HOOKS“ wie folgt korrigieren:
HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown) # Der "HOOKS" EIntrag ist wichtig für den Bootloader, der erst später installiert wird # Reihenfolge wichtig: "keyboard" vor "encrypt" und "encrypt" vor "lvm2" |
Kernel-Image erstellen:
Das Paket „lvm2“ muss nachinstalliert werden, sonst scheitert das Generieren der „Hooks“ und die Kernelerstellung
pacman -S lvm2 mkinitcpio -p linux |
Root-Passwort vergeben
passwd |
Bootloader installieren
bootctl install |
# funktioniert nicht : ## blkid | grep mmcblk1p2 | cut -f2 -d\" > /boot/loader/entries/arch.conf ## stattdessen: # blkid > /boot/loader/entries/arch.conf |
mit – alle Zeilen ohne die UUID von mmcblk1p2 löschen
weiter alles außer die UUID löschen
nano /boot/loader/entries/arch.conf |
Datei wie folgt modifizieren:
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options cryptdevice=UUID=:lvm root=/dev/mapper/main-root rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF- 8 |
cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-fallback.conf nano /boot/loader/entries/arch-fallback.conf |
title Arch Linux Fallback linux /vmlinuz-linux initrd /initramfs-linux-fallback.img options cryptdevice=UUID=:lvm root=/dev/mapper/main-root rw |
nano /boot/loader/loader.conf |
timeout 2 default arch |
zusätzliche wichtige Programme installieren
pacman -S dhcpcd |
Installations-System verlassen und reboot
exit # auslogen von arch-chroot umount -R /mnt reboot |