4.4 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
mkfs.vfat -F32 /dev/sda1
Create filesystem on root partition
mkfs.ext4 /dev/sda2
Create swapfile
fallocate -l 4G /swapfile 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 -pU /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 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 -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
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 sudo pacman -Syyu
After scripts have completed install plug and vundle for neovim
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
git clone https://github.com/VundleVim/Vundle.vim.git ~/.config/nvim/bundle/Vundle.vim
and tmux plugin manager
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm