These are some guides for various use.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

221 lines
9.2 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. # Arch installation with LUKS encryption and LVM
  2. This is the german version of the [installation guide on rvbg.eu](https://wiki.rvbg.eu/#arch/installation.md).
  3. This guide is based upon a [german arch wiki entry](https://wiki.archlinux.de/title/Moderne_Installation_mit_UEFI_und_Verschlüsselung).
  4. At the end of this guide a fully functional Arch Linux will be installed.
  5. ## 1. Preparation
  6. Ahead of the installation an Arch boot-stick has to be created. The iso-file can be found on the [official website](https://www.archlinux.org/download/).
  7. The iso can be written on an USB-stick using ```dd```.
  8. After that the USB can be plugged in the system on which Arch should be installed.
  9. Boot the target system and select ```Boot Arch Linux (x86_64)```.
  10. If you need to set the keyboard layout to anything other than english you can temporarily do so by using the ```loadkeys``` command.
  11. This has to be followed by your country id (for example a german keyboard layout would be ```de```,```de-latin1``` or ```de-latin1-nodeadkeys```.
  12. ## 2. Formatting of the target drive
  13. Using ```lsblk``` you can list all the drives and partitions.
  14. Select a drive to install Arch on.
  15. In this step you can see if old partitions need to be deleted.
  16. For reasons of simplicity the following guide will assume the selected drive to be ```/dev/sda```.
  17. ### Clear disk completely:
  18. This step can take quite a while especially for large drives.
  19. - `dd status=progress if=/dev/zero of=/dev/sda`
  20. Now all partitions should be removed.
  21. ### Create new partitions:
  22. If you missclick during the progress of the following commands you can press ```CTRL+C``` to close the program.
  23. No changes will be made until the confirmation at the end.
  24. The swap partition will be created later under lvm.
  25. - `gdisk /dev/sda`
  26. - `N` - Create a new empty partition table
  27. - `↵ Enter` - Create a partition
  28. - `↵ Enter` - Confirm first sector
  29. - `+512M` - Assign size of 512 MB for the first partition
  30. - `ef00` - Make the partition bootable
  31. - `n` - Create a second partition
  32. - `↵ Enter` - Confirm creation of partition
  33. - `↵ Enter` - Confirm first sector
  34. - `↵ Enter` - Confirm last sector
  35. - `↵ Enter` - Confirm partition type
  36. - `P` - Show created partitions
  37. - `W` - Save all changes
  38. - `Y` - Confirm saving changes
  39. ## 3. Encryption
  40. We need to find out which partitions is the one we want to encrypt.
  41. Using ```blkid | grep /dev/sda``` all partitions we created get listed.
  42. The right partition has the label ```Linux filesystem```.
  43. For this guide this partition is assumed to be ```/dev/sda2```.
  44. - `modprobe dm-crypt` - load kernelmodule for encryption
  45. - `cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2` - encryption
  46. - confirm with ```YES```
  47. - Now you can assign a passphrase.
  48. The passphrase has to be entered at boot to decrypt the system.
  49. Recovering of this passphrase is **not** possible.
  50. ## 4. Setup LVM
  51. - `cryptsetup luksOpen /dev/sda2 lvm` - Opening encrypted partition and mapping it to ```/dev/mapper/lvm```
  52. - `pvcreate /dev/mapper/lvm` - Create a LVM physical volume
  53. - `vgcreate main /dev/mapper/lvm` - Create LVM Volume Group
  54. - `lvcreate -L 16G -n swap main` - Create Swap in LVM (recommended: swap size is equal to ram size)
  55. - `lvcreate -l 100%FREE -n root main` - Create LVM Logical Volume for /
  56. ## 5. Create filesystems and mounting them temporarily
  57. We have to find out which partition is our boot-partition.
  58. Using ```blkid | grep /dev/sda``` once again, we can identify it by looking for the ```EFI system partition``` label.
  59. The guide assumes this partition to be at ```/dev/sda1```.
  60. - ```mkfs.fat -F 32 -n UEFI /dev/sda1``` - Assign filesystem of EFI partition
  61. - ```mkfs.ext4 -L root /dev/mapper/main-root``` - Assign filesystem of root partition
  62. - ```mkswap /dev/mapper/main-swap``` - Assign swap filesystem
  63. Now the created filesystems will be mounted for the installation.
  64. - `mount /dev/mapper/main-root /mnt` - Mounting root partition
  65. - `mkdir /mnt/boot`
  66. - `mount /dev/sda1 /mnt/boot` - Mount EFI partition
  67. - `swapon /dev/mapper/main-swap` - Mounting swap partition
  68. ## 6. Prepare base installation (optional)
  69. In this step the country specific mirrorserver for the installation will be configured.
  70. This will improve the download speed.
  71. - `cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak` - Create a backup of mirrorlist
  72. - `grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.bak | sed '/--/d' > /etc/pacman.d/mirrorlist` - Example command to only use *German* mirrors
  73. - `cat /etc/pacman.d/mirrorlist` - Check if the file is to your liking. If it is not, you can just recover by using ```mirrorlist.bak```
  74. ## 7. Starting base installation
  75. - `pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware networkmanager vim` - Installation of main system with needed tools
  76. - `pacstrap /mnt wpa_supplicant wireless_tools` - (optional) installation of wireless tools
  77. - `genfstab -Up /mnt > /mnt/etc/fstab` - creation of fstab
  78. - `arch-chroot /mnt` - Switch into the newly installed system
  79. - `echo ArchLinux > /etc/hostname` - Assign hostname. ```ArchLinux``` can be changed for any name of your preference.
  80. ## 8. Set Region and Language
  81. - `echo LANG=en_US.UTF-8 > /etc/locale.conf` - Assign system Language to be english (you can use other languages, look into the ```/etc/locale.conf``` for a list of all available languages)
  82. - `vim /etc/locale.gen` - Assigning system language by uncomment the lines depending on your needs.
  83. In this example:
  84. ```
  85. en_US.UTF-8 UTF-8
  86. ```
  87. - `locale-gen` - Generate languages
  88. - if you need any other keymap than english you can change it now for example to German by `localectl --no-convert set-keymap de-latin1-nodeadkeys`.
  89. - `localectl status` - Check if the layout is right
  90. - `tzselect` - Set region
  91. # 9. Configure and create kernel-image
  92. - `vim /etc/mkinitcpio.conf`
  93. - Search the line `MODULES=()` and change it to:
  94. `MODULES=(ext4)`
  95. - Search the line `HOOKS=([...])` and change it to:
  96. `HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)`
  97. - `mkinitcpio -p linux` - generate Kernel-Image
  98. ## 10. Install and configure UEFI bootloader
  99. - `bootctl install` - Prepare bootloader
  100. - `ls -l /dev/disk/by-uuid` - find out the UUID
  101. - `lsblk -no UUID /dev/sda2 | head -n1 > /boot/loader/entries/arch.conf` - print the UUID in your configuration file
  102. - `vim /boot/loader/entries/arch.conf` - Create configuration
  103. - Change the config to look similar to this:
  104. ```
  105. title Arch Linux
  106. linux /vmlinuz-linux
  107. initrd /initramfs-linux.img
  108. options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root:lvm:allow-discards resume=/dev/mapper/main-swap rw quiet lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
  109. ```
  110. - `cp /boot/loader/entries/arch-fallback.conf` - Create a fallback
  111. - `vim /boot/loader/entries/arch-fallback.conf` - Edit the file
  112. - change the file to look similar to this:
  113. ```
  114. title Arch Linux
  115. linux /vmlinuz-linux
  116. initrd /initramfs-linux.img
  117. options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root:lvm:allow-discards resume=/dev/mapper/main-swap rw quiet lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
  118. ```
  119. - `vim /boot/loader/loader.conf` - Create loader configuration
  120. - Insert the following text
  121. ```
  122. timeout 1
  123. default arch
  124. ```
  125. ## 11. Finishing base installation
  126. - `exit` - exit the installed system
  127. - `umount /mnt/{boot,}` - unmount all partitions
  128. - `shutdown now` - shutdown device
  129. - Now remove the Arch boot-stick
  130. - Start the device again
  131. If the system is installed in a virtual environment or a system with deactivated UEFI, don't forget to enable the EFI option, otherwise the system won't boot.
  132. ## 12. Activate Networkconnection
  133. - Log in as ```root``` user
  134. - `systemctl enable NetworkManager.service` - Activate NetworkManager
  135. - `systemctl enable wpa_supplicant.service` - (Optional) activate wpa_supplicant
  136. - `systemctl start NetworkManager.service` - Start NetworkManager
  137. The device should connect to the internet if it is connected via LAN.
  138. Using ```nmtui``` you can administer the wired and wireless connections
  139. ## 13. Automatic timesettings
  140. - `pacman -Syu ntp` - Installing time service
  141. - `ntpd -qg` - Get current time
  142. - `hwclock --systohc` - Synchronize hardwareclock
  143. - `systemctl enable ntpd.service` - enable timeservice
  144. ## 14. Create user
  145. - `vim /etc/sudoers` - Open suoders file
  146. - uncomment the following lines
  147. ```
  148. %whell All=(ALL) ALL
  149. ```
  150. - `useradd -m user` - Create a user with ```user``` as name. For the user a home directory will be created.
  151. - `usermod -aG wheel user` - Add user ```user``` to wheel group
  152. - `passwd -d user` - Remove password for user ```user```
  153. - `logout` - logout from root
  154. - log in as the newly created user
  155. On the freshly installed system there are 2 users.
  156. Make sure to set the password!
  157. You can add one using ```passwd```.
  158. ## 15. Install yay
  159. - `sudo pacman -S git` - install git
  160. - `cd /opt`
  161. - `sudo git clone https://aur.archlinux.org/yay-git.git` - Clone the yay git repository
  162. - `sudo chown -R user:user yay-git` - Change owner
  163. - `cd yay-git`
  164. - `makepkg -si` - Start installation
  165. ## 16. Activate sound
  166. - `yay -S alsa-utils pulseaudio-alsa`
  167. The volume can be changed with `alsamixer`.
  168. ## Changelog and versions
  169. > 03.04.2020 - Version 1.1en (based on 03.04.2020 - Version 1.1)
  170. > 05.04.2020 - Version 2.1en (based on 05.04.2020 - Version 2.1)