Die Anleitung erhebt keinen Anspruch auf Vollständigkeit. Sie ist ein reiner Notiz-Zettel. Anregungen nehme ich gern entgegen. :)

Disk

Partitionierung

Partition Type (fdisk) Grösse Bemerkung
/dev/nvme0n1p1 EF00 (1) 512M EFI/Boot
/dev/nvme0n1p2 crypt 100%-512M crypt

Verschlüsselung

cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup luksOpen /dev/nvme0n1p2 crypt
Anmerkung: BTRFS kann nativ (noch) keine Verschlüsselung.

LVM

pvcreate /dev/mapper/crypt
vgcreate vg00 /dev/mapper/crypt
lvcreate -L 8G vg00 -n swap
lvcreate -l +100%FREE vg00 -n arch

Anmerkung: Swapfile auf BTRFS ist möglich aber nicht sinnvoll. Lieber eine extra Partition oder beziehungsweise ein LV.

Dateisystem

mkswap /dev/vg00/swap
mkfs.btrfs /dev/vg00/arch

swapon /dev/vg00/swap

mount /dev/vg00/arch /mnt
btrfs subvolume create /mnt/ROOT
umount /mnt
mount /dev/vg00/arch /mnt -o subvol=ROOT

mkfs.vfat -F 32 /dev/nvme0p1
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/

Installation

Vorbereitung

  • Color / Highlight f. Pacman aktivieren
  • Parallele Downloads ermöglichen
vim /etc/pacman.conf

...
[options]
...
Color
...
ParallelDownloads = 5
...

Installation Grundsystem

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs cryptsetup vim lvm2 terminus-font 

KeyFile

dd bs=512 count=4 if=/dev/random iflag=fullblock | install -m 0600 /dev/stdin /etc/crypt.key
cryptsetup luksAddKey /dev/nvme0n1p2 /mnt/etc/crypt.key

Anpassung des neuen Systems

  • genfstab -U /mnt >> /mnt/etc/fstab
    echo hostname >> /mnt/etc/hostname
    
    echo LANG=de_DE.UTF-8 >> /mnt/etc/locale.conf
    echo KEYMAP=de-latin1 >> /mnt/etc/vconsole.conf
    echo FONT=ter-m22b >> /mnt/etc/vconsole.conf
    
    #
    arch-chroot /mnt
    
    vim /etc/locale.gen
    de_DE.UTF-8 UTF-8
    
    bootctl install
    
    ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
    
  • /etc/mkinitcpio.conf
    BINARIES=(fsck fsck.btrfs btrfs btrfsck)
    FILES=(/etc/crypt.key)
    HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck lvm2 encrypt resume shutdown)
    
    mkinitcpio -p linux
    
  • pacman -Sy networkmanager tmux htop lnav nmap iperf3 intel-ucode openssh
    systemctl enable NetworkManager
    systemctl enable sshd
    
    passwd
    

BootLoader

  • /boot/loader/loader.conf
    timeout 5
    console-mode auto
    auto-entries yes
    auto-firmware yes
    default arch.conf
    
  • /boot/loader/entries/arch.conf
    title Arch Linux
    linux /vmlinuz-linux
    initrd /intel-ucode.img
    initrd /initramfs-linux.img
    options cryptdevice=UUID=<UUID>:allow-discards cryptkey=rootfs:/etc/crypt.key root=/dev/vg00/arch rootflags=subvol=ROOT rw resume=/dev/vg00/swap nvidia-drm.modeset=1 apm=power_off
    

Abschluss

umount -R /mnt
reboot

Installation DesktopEnvironment

Login als root

pacman -S gdm gnome
systemctl enable gdm
systemctl enable sshd

pacman -S firefox{,-i18n-de} thunderbird{,-i18n-de} \
  signal-desktop telegram-desktop gnome-tweaks prismlauncher \
  steam libreoffice-still{,-de} nextcloud-client keepassxc \
  cups gimp pinta gnome-firmware git mc gnome-browser-connector
systemctl enable cups
systemctl enable bluetooth

localectl set-keymap de-latin1
localectl set-x11-keymap de

## AUR
cd /tmp/ ; git clone https://aur.archlinux.org/trizen.git ; cd trizen ; makepkg -si
trizen -S gnome-shell-extension-tray-icons-reloaded gnome-shell-extension-dash-to-dock

systemctl enable btrfs-scrub@-.timer

Nutzeranlage

NEWUSER=abcuser
useradd --btrfs-subvolume-home -m $NEWUSER

gpasswd -a $NEWUSER lp
gpasswd -a $NEWUSER adm
gpasswd -a $NEWUSER wheel

Updates des Artikels

  • 2024-09-02
    • pacstrap packages
    • HOOKS
    • change sda -> nvme0n1
    • pacman Vorbereitung
    • Korrektur Typos
    • Bootloader
  • 2024-09-03
    • DesktopEnvironment
  • 2024-11-22
    • add openssh package install

Links