# Simple, modern and secure installation of Arch Linux with KDE Plasma. **Load the preferred keyboard. In my case it's "de" for Germany.** $ loadkeys de **List devices to make sure you partition the right device.** $ lsblk **Partition the device using gdisk (assuming /dev/sda).** $ gdisk /dev/sda **Create GPT and EFI-partion.** _# Creates new GPT-partition table._ $ o _# Accept._ $ y _# New partition._ $ n _# 512 MB should be plenty for /boot._ $ +512M _# Mark as EFI._ $ ef00 _# New main partition, accept all the following using "y"._ $ n **Print and check your partitions.** $ p **Write partitions to device.** $ w _# Accept._ $ y **Encrypt primary partition.** $ cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2 $ YES **Open encrypted partition, map as "root" and create filesystem.** $ cryptseup luksOpen /dev/sda2 root $ mkfs.fat -F 32 -n UEFI /dev/sda1 **-F specifies the type of file allocation tables used (12, 16 or 32 bit).** **-n sets the volume name (label) of the filesystem to "UEFI".** **Create ext4 filesystem on primary partition.** $ mkfs.ext4 /dev/mapper/root **Create mountpoints and mount partitions.** $ mount /dev/mapper/root /mnt $ mkdir /mnt/boot $ mount /dev/sda1 /mnt/boot **Optionally update mirrorlist using reflector.** **In this case use the latest 10 mirrors from Germany, that have been synchronized within the last 24 hours and sort the by download-rate and write them to the pacman mirrorlist.** $ reflector --verbose --latest 10 --country Germany --age 24 --sort rate --save /etc/pacman.d/mirrorlist **Install base system and basic packages (network, editor, sudo).** **The package base-devel is not necessary but recommended.** $ pacstrap /mnt base base-devel linux linux-firmware networkmanager nano sudo **Generate fstab.** $ genfstab -Lp /mnt > /mnt/etc/fstab **-L = Use labels for source identifiers (shortcut for -t LABEL).** **-p Exclude pseudofs mounts (default behavior).** **Chroot into your installation.** $ arch-chroot /mnt **Set your hostname.** $ echo mycomputer > /etc/hostname **Generate locale.gen for your preferred language (and preferribly english).** $ nano /etc/locale.gen **Uncomment your language, e.g. de_DE.UTF-8 UTF-8 (and en_US.UTF-8).** **Generate the locale.** $ locale-gen **Add necessary HOOKS and MODULES.** $ nano /etc/mkinitcpio.conf **MODULES=(ext4)** **HOOKS=(base udev autodetect modconf block keyboard keymap encrypt filesystems fsck shutdown)** **Create mkinitcpio.** $ mkinitcpio -p linux **Start NetworkManager for automatic network access on next boot.** $ systemctl enable NetworkManager **Set a root-password.** $ passwd **Install systemd-boot bootloader.** $ bootctl install **Create the bootloader config.** $ nano /bootloader/entries/arch.conf **Add the following:** ``` title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options cryptdevice=/dev/sda2:root root=/dev/mapper/root rw lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8 ``` **Create a fallback config.** $ cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-fallback.conf **Edit the fallback config.** $ nano /boot/loader/entries/arch-fallback.conf **Change it to the following:** ``` title Arch Linux Fallback initrd /initramfs-linux-fallback.img ``` **Edit loader config.** $ nano /boot/loader/loader.conf **Change it to the following:** ``` timeout 1 default arch.conf ``` **Exit and reboot.** $ exit $ umount /mnt/boot $ reboot **Enter encryption-password and login as root.** **Set the keyboard to your preferred language permantently.** $ echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf **Create a user with a /home-directory.** $ useradd -m myusername **Set password for your user.** $ passwd myusername **Add $myusername to group wheel for sudo access.** $ gpasswd -a $myusername wheel **Edit sudoers-file for sudo access.** $ nano /etc/sudoers **Uncomment „%wheel ALL=(ALL) ALL“.** **Logout as root.** $ exit **Login as you user.** **Install SDDM and a minimal KDE Plasma.** $ pacman -S sddm sddm-kcm plasma-desktop **Install KDE terminal for easier installation of packages in Plasma.** $ pacman -S konsole **Enable and start SDDM to login to Plasma.** $ systemctl enable sddm $ systemctl start sddm **Now you are logged in to your Plasma desktop environment and ready to configure and use your Arch Linux.** **Suggested packages to install.** - microcode (https://wiki.archlinux.org/index.php/Microcode) - kde-gtk-config (Adds graphical settings for GTK apps.) - kdeplasma-addons („All kind of addons to improve your Plasma experience.“) - kscreen (Adds screen section to graphical settings.) - ksystemlog (Graphical system log viewer) - partitionmanager (Graphical partition manager) - plasma-nm (Network manager applet) - plasma-pa (Audio manager applet) - powerdevil (Adds energy manager to graphical settings.) - spectacle (Graphical screenshot tool.) - systemd-swap (https://wiki.archlinux.org/index.php/swap#systemd-swap)