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/fstabvim /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 installblkid /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-daemonsystemctl 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-centersettings 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 codexdg-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-extensions
gnome-browser-connector
- Gnome 4x UI Improvements
- pacman -S gnome-shell-extension-appindicator
- pacman -S gnome-shell-extension-gsconnect
- Clipboard Indicator
- Just-Perfection
- Arch Update Indicator
- Dash-to-Dock
- Quick Settings
- Just another search bar
- Battery Health Charge
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-btrfsdExecStart=/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