xps-dots/addons/install_arch.md

4.7 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

iwctl

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

mkfs.vfat -F32 /dev/sda1

Create filesystem on root partition

mkfs.ext4 /dev/sda2

Create swapfile

dd if=/dev/zero of=/swapfile bs=1M count=32768 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Mount the new system

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

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

genfstab -U /mnt >> /mnt/etc/fstab

Make /tmp a ramdisk (add the following line to /mnt/etc/fstab)

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Add swapfile to fstab

/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

arch-chroot /mnt /bin/bash

Setup timezone and system clock

ln -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
hwclock --systohc --utc

Set the hostname

echo MYHOSTNAME > /etc/hostname

Generate locale

Uncomment wanted locales in /etc/locale.gen

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 !

echo LANG=en_IE.UTF-8 >> /etc/locale.conf
echo LC_ALL= >> /etc/locale.conf

Set password for root

passwd

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

useradd -s /bin/zsh MYUSERNAME
useradd -a -G audio,video,network,rfkill,input,wheel,storage,power MYUSERNAME
passwd MYUSERNAME

Configure mkinitcpio with modules needed for the initrd image

nvim /etc/mkinitcpio.conf

Regenerate initrd image

mkinitcpio -p linux

Setup systembootd (grub will not work on nvme at this moment), install Intel microcode

pacman -S intel-ucode
bootctl install

Create loader.conf

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)

nvim /boot/loader/entries/Arch.conf

Add the following content to Arch.conf

from /dev/sda2. It can be found with the 'blkid' command

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

exit

Unmount all partitions

umount -R /mnt
swapoff -a

Reboot into the new system, don't forget to remove the cd/usb

reboot

On a new system you might want to check keymap and fix it?

localectl set-keymap --no-convert fi
localectl set-x11-keymap fi

Install yay

git clone https://aur.archlinux.org/yay.git -> cd yay -> makepkg -si

Mirrors

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

pacman -S xorg-server xorg-apps xorg-xinit xterm
pacman -Syyu

After scripts have completed install plug for neovim

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

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