xps-dots/addons/install_arch.md

4.6 KiB

Install ARCH Linux with UEFI

The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.

Download the archiso image from https://www.archlinux.org/

Copy to a usb-drive

dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux

Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration.

Installation Steps

Set finnish keymap

loadkeys fi

This assumes a wifi only system...

wifi-menu

Create partitions

cgdisk /dev/sda
1 512MB EFI partition # Hex code ef00 ;sda1
2 100% size partiton # (to be encrypted) Hex code 8300 ;sda2
```
#### Create EFI partition

```sh
mkfs.vfat -F32 /dev/sda1
```
#### Create filesystem on root partition

```sh
mkfs.ext4 /dev/sda2
```
#### Create swapfile

```sh
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
```
#### Mount the new system

```sh
mount /dev/sda2 /mnt # /mnt is the installed system
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
```
#### Install the system also includes stuff needed for starting wifi when first booting into the newly installed system

#### Unless nvim and zsh are desired these can be removed from the command. Dialog is needed by wifi-menu

```sh
pacstrap /mnt base base-devel linux linux-firmware mkinitcpio e2fsprogs man zsh nvim git sudo
networkmanager dialog wifi-menu wpa_supplicant wireless_tools gnome-keyring
```
#### 'install' fstab

```sh
genfstab -pU /mnt >> /mnt/etc/fstab
```
#### Make /tmp a ramdisk (add the following line to /mnt/etc/fstab)

```sh
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
```
#### Add swapfile to fstab

```sh
/swapfile none swap defaults 0 0
```
#### Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD)

#### Enter the new system

```sh
arch-chroot /mnt /bin/bash
```
#### Setup system clock

```sh
ln -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
hwclock --systohc --utc
```
#### Set the hostname

```sh
echo MYHOSTNAME > /etc/hostname
```
#### Generate locale

#### Uncomment wanted locales in /etc/locale.gen

```sh
vim /etc/locale.gen
locale-gen
localectl set-locale LANG=en_IE.UTF-8
```
#### To avoid problems with gnome-terminal set locale system wide

#### Do N-OT set LC_ALL=C. It overrides all the locale vars and messes up special characters

#### Pay attention to the UTF-8. Capital letters !

```sh
echo LANG=en_IE.UTF-8 >> /etc/locale.conf
echo LC_ALL= >> /etc/locale.conf
```
#### Set password for root

```sh
passwd
```
#### Add real user remove -s flag if you don't whish to use zsh

```sh
useradd -m -g users -G audio,video,network,rfkill,input,wheel,storage,power -s /bin/zsh MYUSERNAME
passwd MYUSERNAME
```
#### Configure mkinitcpio with modules needed for the initrd image

```sh
nvim /etc/mkinitcpio.conf
```
#### Regenerate initrd image

```sh
mkinitcpio -p linux
```
#### Setup systembootd (grub will not work on nvme at this moment), install Intel microcode

```sh
pacman -S intel-ucode
bootctl install
```
#### Create loader.conf

```sh
echo 'default Arch' >> /boot/loader/loader.conf
echo 'timeout 10' >> /boot/loader/loader.conf
```
#### Create arch.conf (or XYZ.conf for default XYZ in loader.conf)

```sh
nvim /boot/loader/entries/Arch.conf
```
#### Add the following content to Arch.conf

#### <UUID> from /dev/sda2. It can be found with the 'blkid' command

```sh
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=xxxx-xxxxx-xxx-xxx rw
blkid >> /boot/loader/entries/Arch.conf
```
#### Exit new system and go into the cd shell

```sh
exit
```
#### Unmount all partitions

```sh
umount -R /mnt
swapoff -a
```
#### Reboot into the new system, don't forget to remove the cd/usb

```sh
reboot
```
#### On a new system you might want to check keymap and fix it?

```sh
localectl set-keymap --no-convert fi
localectl set-x11-keymap fi
```
#### Install yay

```sh
git clone https://aur.archlinux.org/yay.git -> cd yay -> makepkg -si
```
#### Mirrors

```sh
pacman -S reflector
cp etc/pacman.d/mirrorlist etc/pacman.d/mirrorlist.bak
reflector --latest 200 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist
```
#### Install X-server and graphics drivers

```sh
pacman -S xorg-server xorg-apps xorg-xinit xterm
sudo pacman -Syyu
```
#### After scripts have completed install plug for neovim

```sh
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
 https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```
#### and tmux plugin manager

```sh
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
```