Skip to content

Instantly share code, notes, and snippets.

@superjojo140
Last active February 15, 2023 14:38
Show Gist options
  • Save superjojo140/6c32ac50113575d29951c8140bc69155 to your computer and use it in GitHub Desktop.
Save superjojo140/6c32ac50113575d29951c8140bc69155 to your computer and use it in GitHub Desktop.
Arch Linux UEFI Installation mit KDE Desktop

Diese Anleitung beschreibt die wichtigsten Schritte einer Arch Linux Installation.

Sie ist stark angelehnt an die Anleitung für Einsteiger, verzichtet jedoch auf viele Erklärungen und Variationen.

Installiert wird hier auf UEFI, als Desktop wird KDE Plasma installiert.

Vorbereitungen

Iso herunterladen http://www.archlinux.org/download/

Wenn möglich, immer ein aktuelles Iso benutzen, das spart Ärger beim installieren der Pakete

Kopiere die ISO auf den USB Stick

dd if=/pfad/archlinux-*-x86_64.iso of=/dev/sdX status=progress

Los geht's

Von USB Stick booten

Deutsches Tastaturlayout laden

loadkeys de

Festplatte partitionieren (UEFI)

Alle vorhandenen Partitionen auflisten

lsblk

Partionieren mit gdisk

# Start gdisk
gdisk /dev/sda

# If neccessary delete present partitions
d

#### Create new partitions ####
# If you install arch-linux in dual boot (e.g. with Windows) there should allready exist a EFI Partition. Find it with p in gdisk. You don't need to create a second EFI Partition.

# 1. EFI Partition 512Mb
n       #create new partition
1       #partition number 1
Enter   #commit first sector
+512M   #Size of 512Mb
EF00    #Hex Code for UEFI System Partition

# 2. Swap Partition (Size = Ram)
n       #create new partition
2       #partition number 2
Enter   #commit first sector
+8G     #Size should be the same as your RAM. In this example 8GB
8200    #Hex Code for Linux Swap Partition

# 3. Root Partition
n       #create new partition
3       #partition number 3
Enter   #commit first sector
Enter   #use left space for this partition
8300    #Hex Code for Linux Root Partition

# Check created partitions
p

# Write changes to disk
w

Falls auf BIOS statt UEFI installiert werden soll wird fdisk statt gdisk verwendet. Eine extra Boot Partition ist dann nicht notwendig.

Dateisysteme auf den Partitionen erstellen

mkfs.fat -F 32 -n EFIBOOT /dev/sda1   # Create EFI boot for UEFI installation (skip for BIOS)
mkswap -L p_swap /dev/sda2            # Create swap an set "p_swap" as label
mkfs.ext4 -L p_arch /dev/sda3         # Create ext4 filesystem and set "p_arch" as label

Partitionen einhängen

mount -L p_arch /mnt         # root
mkdir -p /mnt/boot
mount -L EFIBOOT /mnt/boot   # Mount created EFI-Partition (use this if you have created a fresh EFI partition, skip for BIOS)
mount -L /dev/sda? /mnt/boot # Mount existing EFI-Partition (use this if you use dual-boot with an existing EFI partition)
swapon -L p_swap             # swap

Basissystem installieren

Netzwerkverbindung über WLAN herstellen

iwctl --passphrase "<password>" station <wlan0> connect <SSID>

Deutsche Mirror Server in Pacman Config instellen

nano /etc/pacman.d/mirrorlist

mit Strg + k können nicht gewünschte Zeilen gelöscht werden.
Die Server werden von oben nach unten von pacman abgefragt. Nur wenn der oberste Server kein passendes Paket hat, wird der nächste angefragt.
Speichern der Datei mit Strg + x

Installation der Basispakete

pacstrap /mnt base base-devel linux linux-firmware nano bash-completion intel-ucode iwd dhcpcd

Grundlegende Konfiguration

Fstab erzeugen

Die fstab (file system table) ist eine Datei, in der festgelegt wird, welche Laufwerke wo in den Verzeichnisbaum eingehängt werden. Die fstab-Datei wird mit allen eingebundenen Laufwerken erzeugt.

Zur Erzeugung einer fstab mit Dateisystem-Labels.

genfstab -Lp /mnt > /mnt/etc/fstab

Chroot

Nun kann man in das installierte System wechseln

arch-chroot /mnt/

Hostname

Den Rechnernamen festlegen, im Beispiel myhost:

echo myNewHostName > /etc/hostname

Locales | Sprache und Formate

Damit das System und die Anwendungen in passender Sprache laufen und Daten wie Zeit und Datum korrekt formatiert werden, müssen die Locale-Variablen korrekt gesetzt werden.

Locales generieren

Zunächst auswählen welche Sprachen zur Verfügung stehen sollen.

nano /etc/locale.gen

Alle Sprachen die generiert werden sollen hier auskommentieren: Beispiel für englische Systemsprache mit deutschen Formaten

en_US.UTF-8 UTF-8  
en_US ISO-8859-1
de_DE.UTF-8 UTF-8
de_DE ISO-8859-1

Suchen im Editor nano: Strg + W

Locales generieren:

locale-gen

LC Variablen setzen

Um zu konfigurieren, welche Sprache für welche Formate verwendet werden soll, folgende Werte in der /etc/locale.conf eintragen:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ADDRESS=de_DE.utf8
LC_COLLATE=de_DE.utf8
LC_CTYPE=de_DE.utf8
LC_IDENTIFICATION=de_DE.utf8
LC_MEASUREMENT=de_DE.utf8
LC_MESSAGES=de_DE.utf8
LC_MONETARY=de_DE.utf8
LC_NAME=de_DE.utf8
LC_NUMERIC=de_DE.utf8
LC_PAPER=de_DE.utf8
LC_TELEPHONE=de_DE.utf8
LC_TIME=de_DE.utf8

Weitere Regionseinstellungen

Tastaturlayout und Schrift festlegen:

echo KEYMAP=de-latin1 > /etc/vconsole.conf
echo FONT=lat9w-16 >> /etc/vconsole.conf

Deutsche Zeitzone festlegen

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Initramfs erzeugen

mkinitcpio -p linux

Root Password

Setzen des Root-Passworts:

passwd

Bootloader installieren (bootctl)

Falls GRUB verwendet werden soll (empfiehlt sich für BIOS) dieser Anleitung folgen: https://wiki.archlinux.de/title/GRUB

Notwendige Pakete installieren

pacman -S efibootmgr dosfstools gptfdisk

Zuerst den EFI-Booteintrag installieren und einrichten:

bootctl install

Anschließend die Datei /boot/loader/entries/arch-uefi.conf mit folgendem Inhalt erstellen:

title    Arch Linux
linux    /vmlinuz-linux
initrd   /initramfs-linux.img
options  root=LABEL=p_arch rw resume=LABEL=p_swap

Das Gleiche noch für Arch Linux fallback die Datei /boot/loader/entries/arch-uefi-fallback.conf mit folgendem Inhalt erstellen (nicht unbedingt nötig):

title    Arch Linux Fallback
linux    /vmlinuz-linux
initrd   /initramfs-linux-fallback.img
options  root=LABEL=p_arch rw resume=LABEL=p_swap

Nun die Datei /boot/loader/loader.conf bearbeiten:

default   arch-uefi
timeout   1

Reboot

Das installierte Arch-Linux verlassen und wieder in das Installationsmedium zurückkehren:

exit
umount /dev/sda1
reboot

Nun kann der USB Stick entfernt werden und zum ersten Mal das neue System direkt gebootet werden. Anmelden und weiter geht's.

Internetverbindung herstellen

Über LAN mittels dhcpcd enp4s0

Das passende Netzwerkinterface kann mit ip link ermittelt werden.

Über WLAN mit iwd:

systemctl start iwd
iwctl --passphrase "<password>" station <wlan0> connect <SSID>

Falls es im Echtsystem noch Probleme mit der Internetverbindung gibt, können die nachfolgenden Operationen auch noch in der chroot Umgebung ausgeführt werden. Spätestens mit Plasma und dem NetworkManager sollte das WLAN dann laufen.

Nutzer hinzufügen:

useradd -m -g users -s /bin/bash newUserName
passwd newUserName

Dem neuen Nutzer erlauben, Adminbefehle über sudo auszuführen:

nano /etc/sudoers

Folgende Zeile einkommentieren: #%wheel ALL=(ALL) ALL

Nutzer der Gruppe wheel hinzufügen:

gpasswd -a newUserName wheel

Hintegrunddienste installieren

Dienste mit pacman installieren:

pacman -S acpid dbus avahi networkmanager

Dienste beim Hochfahren automatisch starten

systemctl enable --now fstrim.timer
systemctl enable acpid
systemctl enable avahi-daemon
systemctl enable --now systemd-timesyncd.service
systemctl enable NetworkManager

Grafische Oberfläche Installieren

Grafikkarte

Eigene Grafikkarte herausfinden

lspci |grep VGA

Passenden Grafiktreiber installieren

Liste der häufigsten Treiber: https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Grafiktreiber_installieren

# Example: Driver for Intel
pacman -S xf86-video-intel

KDE installieren

Pakete installieren

pacman -S xorg-server xorg-xinit xf86-input-synaptics ttf-dejavu plasma sddm sddm-kcm konsole dolphin firefox

Beim Hochfahren automatisch Plasma (über SDDM) starten:

systemctl enable sddm

Standardprogramme installieren

sudo pacman -S thunderbird okular kwrite git nextcloud-client gimp ark
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment