From 3c95f6e1abe269a81465b5b656cfa7bd5fb2a623 Mon Sep 17 00:00:00 2001 From: martin schmidt Date: Wed, 12 Jan 2022 14:53:54 +0000 Subject: [PATCH] Update README.md --- README.md | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 169 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bf0297b..287ee5f 100644 --- a/README.md +++ b/README.md @@ -1 +1,169 @@ -## Test +## 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._ +$ o # _Creates new GPT-partition table._ +$ y # _Accept._ +$ n # _New partition._ +$ +512M # _512 MB should be plenty for /boot._ +$ ef00 # _Mark as EFI._ +$ n # _New main partition, accept all the following using "y"._ + +# _Print and check your partitions._ +$ p + +# _Write partitions to device._ +$ w +$ y # _Accept._ + +# _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)