This guide is a convenient combination of Offical Arch Linux Installation Guide and Ermanno's amazing guide.
Important: This is an installation with the latest & greatest tools available (2021). For more robust installation (Xorg, Swap partition, etc.), please refer to my robust Arch linux installation guide.
1-11 steps
12 step
Minimal Desktop GUI with native Wayland support installation:
- sway (Window manager)
- ly (Login manager)
- firefox-developer-edition (Mozilla Firefox browser)
- wofi (App Launcher)
- lxappearance (Theme customization for apps with GTK+ frontend)
- qt5ct (Theme customization for apps with Qt frontend)
- python-pywal (Theme color generator)
- waybar (Status bar)
- pcmanfm-qt (File manager)
- pass (Password manager)
- foot (Terminal emulator)
- neofetch (CLI to display system specs)
- dunst (System notifications manager)
- timeshift (System backup & restore tool)
- xorg-xwayland (Compatibility layer between Xorg and Wayland)
- qt5-wayland (Compatibility layer between Qt and Wayland)
- swayidle (Idle manager)
- swaylock-effects (Screenlock)
-
Boot from USB drive with Arch ISO
-
Prepare the disk (partitions) - using GPT device
# check the disks
lsblk
# partition the disk - create GPT Labels
gdisk /dev/***
# choose new GPT Label command:
o
# First Partition for EFI
# choose new command:
n
# choose default partition number
# choose default First Sector memory
# choose Last Sector memory:
+550M
# enter the EFI partition code:
ef00
# Second Partition for main SSD storage
# choose new command
n
# choose default partition number
# choose default First Sector memory
# choose Last Sector memory:
(remaining SSD space - 2 GB)G
# choose default partition type (Linux Filesystem)
# Choose "write" command to overwrite exiting partitions:
w
- Format partitions
# make fat32 filesystem for EFI
mkfs.vfat /dev/***1
# make butterFS filesystem for main storage
mkfs.btrfs /dev/***2
- ButterFS configuration
# mount main partition - root subvolume
mount /dev/***2 /mnt
cd /mnt
# make btrFS subvolume for root subvolume
btrfs subvolume create @
# make btrFS subvolume for home subvolume
btrfs subvolume create @home
# make btrFS subvolume for var subvolume
btrfs subvolume create @var
cd
# unmount main partition - root subvolume
umount /mnt
# mount root subvolume
mount -o noatime, compress=zstd, space_cache,discard=async,subvol=@ /dev/***2 /mnt
# directories var, home & var
mkdir -p /mnt/boot/efi
mkdir /mnt/{home,var}
# mount home & var subvolumes
mount -o noatime, compress=zstd, space_cache,discard=async,subvol=@home /dev/***2 /mnt/home
mount -o noatime, compress=zstd, space_cache,discard=async,subvol=@var /dev/***2 /mnt/var
- Mount EFI partition
mount /dev/***1 /mnt/boot/efi
- Install the base system
# for amd processor: amd-ucode instead of intel-ucode
pacstrap /mnt base linux linux-firmware git vim intel-ucode btrfs-progs
- Generate filesystem table
genfstab -U /mnt >> /mnt/etc/fstab
- Make new root directory with all mounts needed
# detach from main filesystem and process tree
arch-chroot /mnt
# check the fs & table
ls
cat /etc/fstab
- Run base archlinux system intall script
# give exec permissions to script
git clone https://github.com/arcbjorn/arc-arch-linux-installation-guide
cd arc-arch-linux-installation-guide
# don't forget to change username & password to yours :)
chmod +x base.sh
# run from root filesystem
cd /
./arc-arch-linux-installation-guide/base.sh
# choose xdr-desktop-portal-wlr (to use with Sway)
- Check system init config
vim /etc/mkinitcpio.conf
# if butterFS used on 2 disks - put "btrfs" parameter in MODULES
# if amd or nvidia card is used - put "amdgpu" or "nvidia" parameters in MODULES accordingly
# if config was changed, recreate initramfs:
mkinitcpio -p linux
- Finish base packages installation
exit
umount -a
reboot
- Install Desktop GUI & tools
# copy the guide from root filesystem to home repository
cp -r /arc-arch-linux-installation-guide .
cd /arc-arch-linux-installation-guide
# give exec permissions to script
chmod +x sway.sh
# go back to home directory
cd ..
./arc-arch-linux-installation-guide/sway.sh
- Configure ZRAM (used for SWAP)
paru -S zramd
sudo systemctl enable --now zramd.service
# check the block devices table
lsblk
reboot