Deutsches Tastatur Layout laden

    loadkeys de
    # loadkeys de-latin1-nodeadkeys

    Touchpad beim Tippen/angeschlossener Maus deaktivieren

    yay -S touchpad-indicator

    SSH Zugang aktivieren

    wifi-menu
    passwd
    systemctl start sshd.service

    Partitionierung

    Laufwerksbuchstabe ermitteln

    dmesg | grep disk

    Partitionen anlegen

    gdisk /dev/sda
    Command (? for help): o
    This option deletes all partitions and creates a new protective MBR.
    Proceed? (Y/N): Y
    
    Command (? for help): n
    Partition number (1-128, default 1): [ENTER]
    First sector (34-242187466, default = 2048) or {+-}size{KMGTP}: [ENTER]
    Last sector (2048-242187466, default = 242187466) or {+-}size{KMGTP}: +512M
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): EF00
    Changed type of partition to 'EFI System'
    
    Command (? for help): n
    Partition number (2-128, default 2): [ENTER]
    First sector (34-242187466, default = 1050624) or {+-}size{KMGTP}: [ENTER]
    Last sector (1050624-242187466, default = 242187466) or {+-}size{KMGTP}: [ENTER]
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 
    Changed type of partition to 'Linux filesystem'
    
    Command (? for help): w

    Partitionen formatieren

    mkfs.vfat -n UEFIBOOT -F32 /dev/sda1
    

    LUKS einrichten

    cryptsetup -v luksFormat /dev/sda2
    cryptsetup luksOpen /dev/sda2 luks_root

    BTRFS (Sub)-Volume anlegen

    mkfs.btrfs -L arch /dev/mapper/luks_root
    mount -t btrfs /dev/mapper/luks_root /mnt
    btrfs sub create /mnt/@
    btrfs sub create /mnt/@home
    umount /mnt

    Partitionen zusammenmounten

    mount -o subvol=@ /dev/mapper/luks_root /mnt
    mkdir /mnt/home
    mount -o subvol=@home /dev/mapper/luks_root /mnt/home
    mkdir /mnt/boot
    mount /dev/sda1 /mnt/boot
    

    Basis System Installieren

    Basis System inkl. Werkzeuge installieren

    Bis zum 06.10.2019 wurde durch die Installation des Paketes base weitere  Pakete installiert, wie zum Beispiel der Linux Kernel. Am 06.10 wurde das Paket base durch ein das Meta Paket base ersetzt, in dem z.B. der Kernel fehlt. Bei einer Neuinstallation sind somit gegenüber älteren Anleitungen mehr Pakete anzugeben. Die meiner Meinung nach minimal notwendigen Pakete sind nachfolgend ergänzt und fett markiert.

    pacstrap /mnt base cryptsetup device-mapper dhcpcd e2fsprogs inetutils linux linux-firmware lvm2 \
    logrotate man-db man-pages nano less netctl s-nail sysfsutils usbutils vi which base-devel btrfs-progs \
    vim bash-completion dialog wpa_supplicant mlocate htop efibootmgr dosfstools gptfdisk mkinitcpio linux

    fstab anpassen

    genfstab -U -p /mnt >> /mnt/etc/fstab
    vim /mnt/etc/fstab
    tmpfs /tmp tmpfs rw,nodev,nosuid 0 0
    tmpfs /dev/shm tmpfs rw,nodev,nosuid,noexec 0 0

    # If you have SSD change relatime on all non-boot partitions to noatime.

    Chroot Wechsel

    arch-chroot /mnt

    Zeitzone setzten

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

    Hostname setzten

    echo <your-hostname> > /etc/hostname

    Hosts Datei anpassen

    vim /etc/hosts
    ...
    127.0.0.1 localhost.localdomain localhost
    ::1 localhost.localdomain localhost
    127.0.0.1 $HOSTNAME.localdomain $HOSTNAME

    Root Kennwort setzen und normalen Benutzer anlegen

    passwd
    useradd -m -G wheel -s /bin/bash <username>
    passwd <username>

    Spracheinstellung festlegen

    echo LANG=de_DE.UTF-8 > /etc/locale.conf

    Vor diesen Einträgen „#“ entfernen:

    vim /etc/locale.gen
    #de_DE.UTF-8 UTF-8
    #de_DE ISO-8859-1
    #de_DE@euro ISO-8859-15

    Locale generieren:

    locale-gen

    Tastaturbelegung festlegen:

    echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf

    Linux Kernel erzeugen

    vim /etc/mkinitcpio.conf
    # in Zeile MODULES "vfat crc32c-intel" hinzufügeb
    # in Zeile BINARIES "/usr/bin/btrfsck" hinzufügen
    # in der Zeile HOOKS:
    #  - hinzufügen: "encrypt" for "filesystems"
    #  - ersetzen "fsck" durch "btrfs"
    #
    # Danach den Kernel neu zusammenbauen lassen
    
    mkinitcpio -p linux

    Update 20.11.2020
    aes_x86_64 wurde mit kernel 5.4 entfernt. (Link)

    systemd bootctl installiere

    Es werden im übernächsten Schritt die IDs der Partition benötigt. Für den Fall dass man direkt ohne Maus an der Konsole sitzt werden zuerst die IDs in die Datei eingefügt. Nicht benötigter Text kann dann im danach folgenden Schritt gelöscht werden.

    Alternativ können die IDs auch direkt im übernächsten Schritt übernommen und der Text eingefügt werden.

    bootctl install
    blkid /dev/sda2 > /boot/loader/entries/arch.conf
    blkid /dev/sda2 >> /boot/loader/entries/arch.conf
    blkid /dev/mapper/luks_root >> /boot/loader/entries/arch.conf
    # /dev/sda2 LABEL="arch" UUID=11111111-1111-1111
    # /dev/mapper/root LABEL="Arch Linux" UUID=2222222-2222-2222

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

    vim /boot/loader/loader.conf
    ...
    timeout 3
    default arch
    ...
    vim /boot/loader/entries/arch.conf
    ...
    
    title Arch Linux
    linux /vmlinuz-linux
    initrd /initramfs-linux.img
    options rw cryptdevice=UUID=11111111-1111-1111:luks-11111111-1111-1111 root=UUID=2222222-2222-2222 rootfstype=btrfs rootflags=subvol=@
    ...
    #options cryptdevice=UUID=<UUID>:<mapped-name> root=/dev/mapper/<mapped-name> rootflags=subvol=<subvol> quiet rw
    options cryptdevice=UUID=11111111-1111-1111:luks_root root=UUID=2222222-2222-2222 rootfstype=btrfs rootflags=subvol=@

    Das Gleiche noch für Arch Linux fallback die Datei /boot/loader/entries/arch-uefi-fallback.conf mit folgendem Inhalt erstellen:

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

    Der timeout (in Sekunden) kann natürlich frei gewählt werden.

    Quelle: https://wiki.archlinux.de/title/UEFI_Installation#systemd_bootctl_.28ehemals_Gummiboot.29

    Software installieren

    Gnome und GDM installieren

    pacman -Syu gnome gnome-extra gdm firefox firefox-i18n-de networkmanager network-manager-applet bluez bluez-utils power-profiles-daemon
    systemctl enable gdm.service
    systemctl enable NetworkManager.service
    systemctl enable bluetooth.service

    Plymouth

    pacman -S plymouth
    
    rm /usr/share/pixmaps/archlinux-logo.png
    
    plymouth-set-default-theme -R Spinner
    
    vim /etc/mkinitcpio.conf
    [...]
    HOOKS=(... plymouth encrypt filesystems...)
    
    /etc/plymouth/plymouthd.conf
    Check if any delay is specified

    Nautilus (thumbnailer, checksum, ..)

    pacman -S gst-libav gst-plugins-ugly gstreamer
    
    yay -S nautilus-renamer nautilus-compare nautilus-mediainfo nautilus-checksums python-nautilus
    nautilus -q

    Task Manager (Mission Center)

    yay -S mission-center
    settings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "Taskmanager"
    gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command '/usr/bin/missioncenter'
    gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding '<Primary><Shift>Escape'
    gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"

    Energiemanagement A (power-profiles-daemon)

    pacman -S power-profiles-daemon
    systemctl enable power-profiles-daemon.service

    Energiemanagement B (tlp)

    pacman -S tlp tlp-rdw
    systemctl enable power-profiles-daemon.service
    
    flatpak install com.github.d4nj1.tlpui

    Microsoft Edge Browser

    flatpak instalk com.microsoft.Edge

    Touchpadgesten

    pacman -S touchegg
    systemctl enable touchegg.service
    
    yay -S touche

    Dokumentebetrachter (PDF etc.)

    pacman -S evince
    

    Cups

    pacman -S cups gutenprint
    systemctl enable cups.service
    
    yay -S cups-bjnp
    

    LibreOffice

    pacman -S libreoffice-fresh libreoffice-fresh-de

    Visual Studio Code

    yay -S code
    xdg-mime default org.gnome.Nautilus.desktop inode/directory

    Thunderbird

    pacman -S thunderbird thunderbird-i18n-de libgnome-keyring

    Design

    pacman -S papirus-icon-theme arc-gtk-theme

    Gnome-Shell Extension

    pacman -S gnome-shell-extensionsgnome-browser-connector

    Inkomaptibel mit GNome 45

    Enable Fractional Scaling

    gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

    VLC

    pacman -S vlc

    NTFS Support

    pacman -S ntfs-3g

    Audio Codecs

    pacman -S a52dec faac faad2 flac jasper lame libdca libdv libmad libmpeg2 libtheora libvorbis libxv wavpack x264 xvidcore gstreamer0.10-plugins

    Veracrypt

    pacman -S veracrypt

    Nextcloud Client

    pacman -S nextcloud-client

    Firmware Update Daemon

    pacman -S fwupd
    fwupdmgr refresh
    fwupdmgr update

    FWBuilder

    pacman -S fwbuilder

    Gnome Update Viewer

    pacman -S gnome-packagekit pacman-contrib
    gnome-shell-extension-arch-update

    Powerline

    pacman -S powerline powerline-fonts

    .bashrc (end of file)

    # Debian
    if [ -f /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh ]; then  
      source /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh  
    fi  
    
    # (open)SUSE; Fedora
    if [ -f /usr/share/powerline/bash/powerline.sh ]; then  
      source /usr/share/powerline/bash/powerline.sh
    fi  
    
    # Arch
    if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
      . /usr/share/powerline/bindings/bash/powerline.sh
    fi

    .vimrc (end of file)

    set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/
    " Always show statusline
    set laststatus=2
    " Use 256 colours (Use this setting only if your terminal supports 256 colours)
    set t_Co=256
    let g:powerline_pycmd = 'py3'

    Wireguard

    pacman -Sy wireguard-arch resolvconf

    Power Management

    pacman -Sy acpid tlp powertop
    systemctl enable --now acpid
    systemctl enable --now tlp.service

    Sudo Rechte für AUR package manager anpassen

    Sudo Rechte folgen folgendem Schema:
    <wer> <auf welchem Host>=(<als welcher Benutzer>) <darf was ausführen>

    echo "$USER ALL=(ALL) ALL" > /etc/sudoers.d/yay.conf

    AUR package manager

    pacman -S git go
    git clone https://aur.archlinux.org/yay.git
    cd yay
    sudo -u $USER makepkg -si
    
    yay -Sy

    Vorta

    yay -Sy vorta

    Microsoft Schriften

    yay -Sy ttf-ms-fonts

    Timeshift

    yay -Sy timeshift

    Anpassung für Grub um Snapshots im BootMenü anzuzeigen

    sudo systemctl edit --full grub-btrfsd
    ExecStart=/usr/bin/grub-btrfsd --syslog /.snapshots

    ersetzten durch 

    ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto

    Probelauf

    sudo systemctl start grub-btrfsd && journalctl -f | grep -E '(timeshift|grub)'

    … das starten von Timeshift sollte erkannt und die Erstellung eines Snaphots zu der Neuerstellung des Grub Menues führen. Wenn das der Fall ist, Dienst dauerhaft aktivieren

    sudo systemctl enable grub-btrfsd

    Spotify

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

    Software öffnen und nach Spotify suchen

    GNome-Shell-Extensions

    flatpak install flathub org.gnome.Extensions

    Known Issues

    Error: grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.

    Reason: Live System was booted in legacy mode

    Quellen

    Leave A Reply