4.7 KiB
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