From 01e93e66d8a4dac169f7e2a2755788aae9ad572d Mon Sep 17 00:00:00 2001 From: martin schmidt Date: Wed, 12 Jan 2022 15:04:21 +0000 Subject: [PATCH] Update README.md --- README.md | 291 +++++++++++++++++++++++++++--------------------------- 1 file changed, 145 insertions(+), 146 deletions(-) diff --git a/README.md b/README.md index cc874db..81d66d6 100644 --- a/README.md +++ b/README.md @@ -1,167 +1,166 @@ # 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 +$ 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 -**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:** +**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:** + +**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:** + +**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.** - + +**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.“)