252 lines
4.7 KiB
Markdown
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
|
|
```
|