Skip to content

A quick installation guide with automation scripts for Arch Linux.

License

Notifications You must be signed in to change notification settings

Alekamerlin/arch-installation-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 

Repository files navigation

arch-installation-guide

A quick installation guide with automation scripts for Arch Linux.

Attention, this guide describes the Arch Linux installation on PC/laptop with Intel CPU and iGPU. Therefore, the guide doesn't cover all cases. Also, settings in the gsettings script based on my preferences.

Prepare an installation disk

Download the ISO image and its signature and checksum (archlinux-x86_64.iso, archlinux-x86_64.iso.sig, b2sums.txt) from the Download page: https://archlinux.org/download/.

Use the commands below in the directory where you downloaded the files.

Verify the checksum of the downloaded ISO image:

$ b2sum -c b2sums.txt

Verify the signature of the downloaded ISO image:

$ gpg --keyserver-options auto-key-retrieve --verify archlinux-x86_64.iso.sig

Create an installation USB drive:

# dd bs=4M if=archlinux-x86_64.iso of=/dev/sdb conv=fsync oflag=direct status=progress

Where /dev/sdb is your USB drive you want to use as the installation drive.

To boot an installation image from a USB drive, you should disable Secure Boot on the computer you will boot the image from, because the installation image doesn't support Secure Boot.

Check the boot mode after booting the installation image:

# ls /sys/firmware/efi/efivars

The command will print directory items if you booted in UEFI mode. This guide is only for UEFI mode, so you should check the current mode.

Prepare a system disk

Create a partition table:

# parted /dev/sda mklabel gpt

Where /dev/sda is the SDD/HDD drive you want to install Arch.

Create parts:

# parted /dev/sda mkpart EFI fat32 1M 525M

# parted /dev/sda mkpart root ext4 525M 105GB

# parted /dev/sda mkpart swap linux-swap 105GB 160GB

# parted /dev/sda mkpart home ext4 160GB 260GB

# parted /dev/sda mkpart media ext4 260GB 512GB

For SSD the order of the parts doesn't matter, but for HDD it does.

I usually create the media part because I use few accounts on the same computer, so the media is a place for common files like music and photos.

Format partitions:

# mkfs.fat -F 32 /dev/sda1

# mkfs.ext4 /dev/sda2

# mkswap /dev/sda3

# mkfs.ext4 /dev/sda4

# mkfs.ext4 /dev/sda5

Prepare to installation

Connect to the internet (the easiest way is DHCP) and test the connection:

# ping duckduckgo.com

Mount the system disk:

# mount /dev/sda2 /mnt

# mount --mkdir /dev/sda1 /mnt/boot

# mount --mkdir /dev/sda4 /mnt/home

Enable swap:

# swapon /dev/sda3

Update the system clock:

# timedatectl

Installation

Install main packages:

# pacstrap -K /mnt base base-devel linux linux-firmware grub-install dhcpcd vim

Configure the system

Generate an fstab file:

# genfstab -U /mnt >> /mnt/etc/fstab

Enter to the new system as root:

# arch-chroot /mnt

Create a password to the system root:

# passwd

Install grub:

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Set the time zone:

# ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime

Where Europe/Amsterdam is your region and city.

Set up the hardware clock:

# hwclock --systohc

Create the hostname file:

# echo machinename > /etc/hostname

Where machinename is your hostname (the name of your PC).

Uncomment en_US.UTF-8 UTF-8 and other required locales in /etc/locale.gen:

# vim /etc/locale.gen

Save the file and generate locales:

# locale-gen

Set up the system locale:

# localectl set-locale LANG=en_US.UTF-8

Reboot the PC:

# reboot

Boot the new installed system and enable the dhcpcd service:

# systemctl enable dhcpcd.service

Connect to the internet via DHCP and test the connection:

# ping duckduckgo.com

Video

Install packages to support 3D acceleration and VA-API for Intel graphics:

# pacman -S mesa vulkan-intel intel-media-driver xf86-video-intel

xf86-video-intel not recommended.

Audio

Install packages to support audio on the system:

# pacman -S sof-firmware pipewire pipewire-audio pipewire-jack pipewire-pulse wireplumber

Use alsa-firmware instead of sof-firmware for older sound systems.

Bluetooth

Install the necessary packages:

# pacman -S bluez bluez-utils

Check whether the bluetooth module is loaded:

$ modinfo btusb

If so, enable and then start the bluetooth service:

# systemctl enable bluetooth.service

# systemctl start bluetooth.service

Webcam

Your webcam probably works out of the box, if not, check the manual: https://wiki.archlinux.org/title/Webcam_setup

Install v4l-utils for webcam configuration (brightness, effects etc):

# pacman -S v4l-utils

Or cameractrls:

# pacman -S cameractrls

Multimedia

Install the multimedia framework and its plugins:

# pacman -S gstreamer gstreamer-vaapi gst-libav gst-plugin-pipewire gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly

Users

Create a user:

# useradd -m user_name

Set a password for the new user:

# passwd user_name

Install xdg-user-dirs to manage user directories:

# pacman -S xdg-user-dirs

Create user directories:

# su user_name

$ xdg-user-dirs-update

$ exit

Repeat this for each created user.

Gnome DE

Install gnome packages:

# pacman -S gdm gnome-shell gnome-shell-extensions gnome-desktop gnome-backgrounds gnome-bluetooth-3.0 gnome-calculator gnome-characters gnome-control-center gnome-disk-utility gnome-font-viewer gnome-sound-recorder gnome-system-monitor gnome-user-docs gnome-console gnome-text-editor dconf-editor file-roller nautilus tracker3-miners gucharmap epiphany evince totem loupe

You can install gnome-terminal, gedit and eog instead of gnome-console, gnome-text-editor and loupe, if their functionality doesn't cover your needs:

# pacman -S gnome-terminal gedit gedit-plugins libgit2-glib eog

Also you may like these additional apps:

# pacman -S gnome-boxes gnome-calendar gnome-clocks gnome-connections gnome-contacts gnome-logs gnome-maps gnome-notes gnome-photos gnome-recipes gnome-tweaks gnome-weather alacarte baobab endeavour geary ghex gitg polari seahorse simple-scan snapshot sysprof

You can install evolution and cheese instead of geary and snapshot, if their functionality doesn't cover your needs:

# pacman -S evolution cheese

Of course, here are some basic games:

# pacman -S gnome-2048 gnome-chess gnome-games gnome-klotski gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-sudoku gnome-taquin gnome-tetravex aisleriot hitori iagno lightsoff quadrapassel swell-foop tali

Enable gdm.service:

# systemctl enable gdm.service

Reboot the system and launch the gsettings script for each your user:

$ sh scripts/gsettings.sh

Portals

Install packages to support Wayland portals for screen sharing as an example:

# pacman -S xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-gnome

Thumbnails

Install packages to provide thumbnail preview:

# pacman -S tumbler webp-pixbuf-loader ffmpegthumbnailer libgsf gnome-epub-thumbnailer freetype2

Media devices & online storages

For support MTP (Android phones, tablets and music players) install gvfs-mtp:

# pacman -S gvfs-mtp

For support PTP (digital cameras and smartphone photos) install gvfs-gphoto2:

# pacman -S gvfs-gphoto2

For support iOS (iPhone and iPad) install gvfs-afc:

# pacman -S gvfs-afc ifuse

For support NFS (Network File System) install gvfs-nfs:

# pacman -S gvfs-nfs

For support SMB/CIFS (Server Message Block/Common Internet File System) install gvfs-smb:

# pacman -S gvfs-smb

For support virtual filesystems (e.g. OwnCloud) install gvfs-goa:

# pacman -S gvfs-goa

For support Google Drive install gvfs-google:

# pacman -S gvfs-google

For support Microsoft OneDrive install gvfs-onedrive:

# pacman -S gvfs-onedrive

Office

For basic use, install a word processor and spreadsheet editor:

# pacman -S abiword gnumeric

Or LibreOffice for more complex work:

# pacman -S libreoffice-fresh

As well as needed language packs:

# pacman -S libreoffice-fresh-*

Where * is the language code. For example, the package will be libreoffice-fresh-en-gb for en-gb. You can find available packages here.

Firefox

Install Firefox:

# pacman -S firefox

Launch it, close it and run a script from the scripts directory:

$ sh scripts/firefox.sh

Do it for each your user and then reboot the system.

Chromium

Sources:

Build and install the Wayland version of Chromium with VA-API support from the AUR:

$ git clone https://aur.archlinux.org/chromium-wayland-vaapi.git

$ ch chromium-wayland-vaapi

$ makepkg

# pacman -U chromium-wayland-vaapi-*-x86_64.pkg.tar.zst

This might be enough, but if hardware decoding doesn't work, try to enbaling VaapiVideoDecoder:

echo "--enable-features=VaapiVideoDecoder" >> ~/.config/chromium-flags.conf

VSCodium

Sources:

Install the necessary packages:

# pacman -S jq git-lfs gulp yarn

Build and install the nvm package:

$ git clone https://aur.archlinux.org/nvm.git

$ cd nvm

$ makepkg

# pacman -U nvm-*-any.pkg.tar.zst

Build and install the VSCodium package:

$ cd ../

$ git clone https://aur.archlinux.org/vscodium.git

$ cd vscodium

$ makepkg

# pacman -U vscodium-*-x86_64.pkg.tar.zst

About

A quick installation guide with automation scripts for Arch Linux.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages