My personal Arch Linux and KDE Plasma installation.
Disclaimer: This is not a beginner guide, please read the official Arch Linux installation guide
Download the latest Arch Linux ISO for x86_64 platform from Arch Linux Downloads
Write the ISO image to the USB flash drive using balenaEtcher
Optional: On Linux dd
command can be used instead of balenaEtcher, first identify the USB flash drive path:
[user@hostname ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 28.9G 0 disk
└─sda1 8:3 1 28.9G 0 part
nvme1n1 259:0 0 931.5G 0 disk
├─nvme1n1p1 259:2 0 1G 0 part /boot/efi
└─nvme1n1p2 259:3 0 930.5G 0 part /
nvme0n1 259:1 0 931.5G 0 disk
└─nvme0n1p1 259:4 0 931.5G 0 part /mnt/storage
Write the ISO image:
sudo dd if=archlinux-2023.07.01-x86_64.iso of=/dev/sda bs=1M status=progress
While PC is booting hit F12 and select the Arch flash drive from the boot menu
If you are using an ethernet connection just make sure the ethernet cable is connected and use ip link
to check if the interface has an IP address.
On WiFi use iwctl
to connect to your WiFi network.
Test the internet connection by pinging a known server, example
root@archiso ~ # ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=17.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=17.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=17.3 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=17.2 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=58 time=17.2 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 17.150/17.262/17.400/0.092 ms
Use fdisk
to create a new GPT partition table
fdisk /dev/nvme0n1
Then create the following partitions:
root@archiso ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 932.0G 0 disk
├─nvme0n1p1 259:2 0 1G 0 part
├─nvme0n1p2 259:2 0 16.0G 0 part
├─nvme0n1p3 259:2 0 128.0G 0 part
└─nvme0n1p4 259:3 0 803.0G 0 part
Create the EFI file system
mkfs.fat -F32 /dev/nvme0n1p1
Create the swap partition
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
Create the ext4
Linux file system on the rest
mkfs.ext4 /dev/nvme0n1p3
mkfs.ext4 /dev/nvme0n1p4
Mount partitions to /mnt
mount /dev/nvme0n1p3 /mnt
mkdir -p /mnt/efi
mkdir /mnt/home
mount /dev/nvme0n1p1 /mnt/efi
mount /dev/nvme0n1p4 /mnt/home
Optional: If you have other SSD drives create partitions and Linux file system for them or just mount them if they are already partitioned.
mkdir /mnt/storage
mount /dev/nvme1n1p1 /mnt/storage
Use pacstrap
to install the base system and Linux kernel
pacstrap -K /mnt base base-devel linux linux-headers linux-firmware amd-ucode
Generate the Linux file system table, use -U
parameter to identify partitions by their UUID
genfstab -U /mnt >> /mnt/etc/fstab
Change root to /mnt
arch-chroot /mnt
Set your timezone
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc --utc
Install nano
and uncomment the line LANG=en_US.UTF-8 UTF-8
on /etc/locale.gen
file and generate localization configuration with locale-gen
pacman -S nano
nano /etc/locale.conf
locale-gen
Create the file /etc/locale.conf
and add the line LANG=en_US.UTF-8
echo LANG=en_US.UTF-8 > /etc/locale.conf
Set your desired hostname, replace HOSTNAME with your choice
echo HOSTNAME > /etc/hostname
Edit the /etc/hosts
file and add the following lines
127.0.0.1 localhost
::1 localhost
127.0.1.1 HOSTNAME.localdomain HOSTNAME
Install Network Manager and extra packages for WiFi
pacman -S networkmanager wpa_supplicant wireless_tools netctl dialog
Enable Network Manager
systemctl enable NetworkManager
Use passwd
to change root account password
passwd
Add your user account, replace USERNAME with your name
useradd -m -G wheel USERNAME
Set the user password
passwd USERNAME
Allow wheel
group to run administrative commands via sudo
EDITOR=nano visudo
Find and uncomment the line
%wheel ALL=(ALL) ALL
Install grub
and required packages for UEFI
pacman -S grub efibootmgr dosfstools os-prober mtools
Configure grub
bootloader
grub-install --target=x86_64-efi --efi-directory=efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
You can now reboot into the ARCH instalation and remove the Arch Linux USB flash drive.
exit
umount -R /mnt
reboot
Enable BASH autocomplete
sudo pacman -S bash-completion
Login with your user account and install XORG and GPU drivers
sudo pacman -S xorg mesa
Install the bluetooth service
sudo pacman -S bluez bluez-utils
Enable the bluetooth service
sudo systemctl enable bluetooth.service
On KDE if bluetooth device is disabled on login check the file ~/.config/bluedevilglobalrc
for this entry:
[Adapters]
XX:XX:XX:XX:XX:XX_powered=false
and remove it.
Install KDE desktop environment
sudo pacman -S plasma plasma-wayland-session
Install the KDE applications
sudo pacman -S dolphin ksystemlog partitionmanager ark kate kcalc kdeconnect krdc kdialog konsole print-manager elisa dragon ffmpegthumbs gwenview skanlite okular spectacle packagekit-qt5
Enable ssdm
display manager
sudo systemctl enable sddm
Install pipewire
sudo pacman -S pipewire pipewire-audio pipewire-alsa pipewire-pulse
Install cups
service
sudo pacman -S cups
Enable cups
service
sudo systemctl enable cups.service
For Steam you need to enable multilib
support, edit /etc/pacman.conf
and uncomment the lines
[multilib]
Include = /etc/pacman.d/mirrorlist
Install Steam
sudo pacman -S steam
Reboot the computer and login to the KDE Plasma desktop environment.
For spell checking install hunspell
sudo pacman -S hunspell hunspell-en_us hunspell-ro
Latin families
sudo pacman -S ttf-bitstream-vera ttf-croscore ttf-dejavu
Monospaced
sudo pacman -S ttf-cascadia-code
For C/C++ development
sudo pacman -S git clang cmake ninja kdevelop neovim