xps-dots/addons/install_arch.md

252 lines
4.7 KiB
Markdown

# 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
```sh
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
```sh
loadkeys fi
```
#### This assumes a wifi only system
```sh
iwctl
```
#### Create partitions
```sh
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
dd if=/dev/zero of=/swapfile bs=1M count=32768 status=progress
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 -U /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 timezone and 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 -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
```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
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
```