- Download Arch Linux ISO image here via torrent or direct link:
- https://archlinux.org/download/
- Use Rufus https://rufus.ie/en/ and select GPT and ISO mode for the image
- Balena Etcher is another great tool
- https://etcher.balena.io/
- for creating bootable USB's
2. Before installing Arch Linux on bare metal it is recommended to remove previous filesystems and data, after backing up what the user needs
sudo wipefs -a /dev/sda
sudo wipefs -a /dev/nvme0n1
(Opional) Deleting everything with shred command properly while overwriting so no forensics recovery is possible, also helps fix bad blocks in some cases:
sudo shred -f -v /dev/sda
sudo shred -f -v /nvme0n1
sudo cfdisk /dev/sda
sudo cfdisk /dev/nvme0n1
From free space on the SSD/HDD create the following partitions using cfdisk' TUI (Terminal User Interface):
- /dev/sda1 512M Fat32(EFI)
- /dev/nvme01p1 512M Fat32(EFI)
(Optional) SWAP partition size can be around 8-10GB, but it is not required if you have 16GB/32GB or more RAM
- /dev/sda2 8-10GB swap
- /dev/nvme0n1p2 8-10GB swap
Required main partition for your main user /mnt, remaining size can be as large as you want it to be:
- /dev/sda3 1000GB ext4
- /dev/nvme0n1p3 1000GB ext4
5.Format partitions,create UEFI partition, mount point partition (main user partition) and swap partition
mkfs.fat -F32 /dev/sda
mkfs.fat -F32 /dev/nvme0n1p1
-
mkswap /dev/sda2
-
swapon /dev/sda2
-
mkswap /dev/nvme0n1p2
-
swapon /dev/nvme0n1p2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/nvme0n1p3
mount /dev/sda3 /mnt
mount /dev/nvme0n1p3 /mnt
lsblk
pacstrap /mnt base base-devel linux linux-headers linux-firmware nano networkmanager
genfstab -U /mnt >> /mnt/etc/fstab
(Optional choice) LTS(Long Term Support) Arch Linux installation with standard Ethernet and Wi-Fi support,nano as text editor:
pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware nano networkmanager
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt /bin/bash
nano /etc/locale.gen
locale-gen
useradd -g users -G power,storage,wheel -m user
passwd
passwd user
visudo
nano /etc/sudoers
- sudo=ALL=(ALL:ALL) ALL
- user=ALL=(ALL:ALL) ALL
More secure way by uncommenting the following lines,without touching anything else in the sudoers file:
-
Defaults targetpw
-
ALL ALL=(ALL:ALL)
sudo nano /etc/sudoers
pacman -S grub efibootmgr dosfstools os-prober mtools fuse3
mkdir /boot/efi
mount /dev/sda1 /boot/efi
mount /dev/nvme0n1p1 /boot/efi
grub-install --target=x86_64-efi --bootloader-id=grub --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
-
mkdir /boot/efi/EFI/BOOT
-
cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
-
exit
-
umount -R /mnt
-
reboot
12. Desktop Environment installation,enabling the network and sound, Xorg installation,Date/Time configuration
sudo systemctl enable --now NetworkManager.service
-
sudo systemctl enable --now NetworkManager.service
-
sudo systemctl enable --now wpa_supplicant.service
-
sudo nmtui
Select the desired wireless connection,wired connections should be activated by default,connect to Wi-Fi using your password.
ping archlinux.org
-
sudo timedatectl set-ntp true
-
sudo timedatectl list-timezones
-
sudo timedatectl set-timezone Zone/SubZone
-
sudo hwclock --systohc
-
sudo ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
sudo hostnamectl set-hostname myhostname
sudo pacman -S intel-ucode
sudo pacman -S amd-ucode
sudo pacman -S xorg xorg-server xorg-xinit xorg-apps xterm xorg-xrandr xdg-user-dirs
xdg-user-dirs-update
sudo nano /etc/pacman.conf
- [multilib] Include = /etc/pacman.d/mirrorlist
sudo pacman -Syu
sudo pacman -S alsa-firmware alsa-utils pipewire pipewire-alsa pipewire-pulse
sudo pacman -S alsa-firmware alsa-utils pulseaudio pulseaudio-alsa
sudo pacman -S xfce4 xfce4-goodies gvfs
-
sudo pacman -S sddm sddm-kcm
-
sudo systemctl enable --now sddm
-
sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
-
sudo systemctl enable --now lightdm.service
sudo pacman -S gnome gnome-extra
sudo pacman -S gnome-packagekit
-
sudo pacman -S gdm libgdm
-
sudo systemctl enable --now gdm
sudo pacman -S plasma kde-applications
sudo pacman -S packagekit-qt6
-
sudo pacman -S sddm sddm-kcm
-
sudo systemctl enable --now sddm
-
sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
-
sudo pacman -S deepin deepin-extra
-
sudo nano /etc/lightdm/lightdm.conf
-
greeter-session=lightdm-deepin-greeter
-
sudo systemctl enable --now lightdm
-
sudo pacman -S lightdm lightdm-pantheon-greeter lightdm-gtk-greeter lightdm-gtk-greeter-settings
-
sudo pacman -S pantheon
-
sudo systemctl enable --now lightdm
xf86-video-vesa mesa
22. Enable the GUI desktop to start at launch via the required display manager for yur desktop environment:
-
sudo pacman -S sddm sddm-kcm
-
sudo systemctl enable --now sddm
-
sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
-
sudo systemctl enable --now lightdm
-
sudo pacman -S gdm libgdm
-
sudo systemctl enable --now gdm
sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
sudo systemctl enable lightdm.service
sudo systemctl start lightdm.service
sudo pacman -S gdm libgdm
sudo systemctl enable gdm.service
sudo systemctl start gdm.service
sudo pacman -S sddm sddm-kcm
sudo systemctl enable sddm
sudo systemctl start sddm
sudo pacman -S papirus-icon-theme
sudo pacman -S noto-fonts noto-fonts-emoji
sudo pacman -S arc-gtk-theme
sudo pacman -S nvidia nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau lib32-libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d opencl-headers opencl-clhpp vulkan-validation-layers lib32-vulkan-validation-layers
sudo mkinitcpio -P
sudo pacman -S nvidia-lts nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau lib32-libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d opencl-headers opencl-clhpp vulkan-validation-layers lib32-vulkan-validation-layers
sudo mkinitcpio -P
sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau lib32-libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d opencl-headers opencl-clhpp vulkan-validation-layers lib32-vulkan-validation-layers
sudo mkinitcpio -P
sudo pacman -S nvidia-open nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau lib32-libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d opencl-headers opencl-clhpp vulkan-validation-layers lib32-vulkan-validation-layers
sudo mkinitcpio -P
sudo pacman -S nvidia-open-dkms nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau lib32-libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d opencl-headers opencl-clhpp vulkan-validation-layers lib32-vulkan-validation-layers
sudo mkinitcpio -P
sudo nano /etc/mkinitcpio.conf
sudo mkinitcpio -P
Edit GRUB /etc/default/grub for other bootloaders check the Arch Wiki https://wiki.archlinux.org/title/Kernel_module#Setting_module_options
sudo nano /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot
sudo cat /sys/module/nvidia_drm/parameters/modeset
sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
sudo reboot
sudo pacman -S egl-wayland libglvnd
sudo mkinitcpio -P
sudo reboot
sudo nvidia-xconfig
sudo pacman -S mesa mesa-utils lib32-mesa opencl-clover-mesa lib32-opencl-clover-mesa lib32-vulkan-radeon vulkan-radeon vulkan-mesa-layers lib32-vulkan-mesa-layers glu lib32-glu vulkan-icd-loader lib32-vulkan-icd-loader vkd3d lib32-vkd3d xf86-video-amdgpu
sudo mkinitcpio -P
reboot
AMD Vulkan Drivers with proprietary shader stack if vulkan-radeon lib32-vulkan-radeon give issues,can be installed with everything else without conflicts.
sudo pacman -S amdvlk lib32-amdvlk
sudo nano /usr/lib/sysctl.d/10-arch.conf
- change vm.max_map_count=2147483642
sudo reboot
cat /proc/sys/vm/max_map_count
sudo pacman -S gamemode lib32-gamemode
sudo pacman -S gamescope lib32-gamescope
sudo pacman -S mangohud lib32-mangohud
sudo pacman -S nvtop
sudo pacman -S btop rocm-smi-lib
sudo pacman -S htop
sensors
sudo pacman -S git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
28. Removing packages, clearing cache,orphans,unneeded dependencies so the system does not get cluttered:
-
sudo pacman -Scc
-
sudo pacman -Sc
-
sudo du -sh ~/.cache/
-
sudo rm -rf ~/.cache/*
-
sudo pacman -Qtdq
-
sudo pacman -Rns $(pacman -Qtdq)
-
yay -Sc
-
yay -Scc
sudo rm /var/cache/pacman/pkg/*
sudo pacman -Rdd package name
- ``sudo pacman -Rscn application name`
su
pacman -Qtdq | pacman -Rns -
exit
sudo pacman -S ark lrzip lzop 7zip unarchiver unrar
sudo pacman -S file-roller nemo-fileroller unzip lzop 7zip unrar unarchiver
sudo pacman -S mpv vlc dragon kmplayer celluloid mpd qtav showtime
-
sudo pacman -S firefox-developer-edition
-
sudo pacman -S falkon
-
sudo pacman -S epiphany
-
sudo pacman -S chromium
-
sudo pacman -S firefox
-
yay -S firefox-esr-bin
-
yay -S librewolf-bin
-
yay -S google-chrome
-
yay -S microsoft-edge-stable-bin
sudo pacman -S libreoffice-fresh
sudo pacman -S libreoffice-still
-
sudo pacman -S obs-studio
-
sudo pacman -S flatpak
-
sudo pacman -S openra
-
sudo pacman -S gimp
-
sudo pacman -S krita
-
sudo pacamn -S kate
sudo pacman -S qbittorrent
sudo pacman -S ktorrent
sudo pacman -S transmission-qt
sudo pacman -S transmission-gtk
sudo pacman -S kdenlive
sudo pacman -S shotcut
sudo pacman -S blender
sudo pacman -S openshot
sudo pacman -S libretro
sudo pacman -S dosbox
sudo pacman -S scummvm
sudo pacman -S pscx2
sudo pacman -S retroarch
yay -S teamviewer
sudo systemctl enable --now teamviewerd.service
-
sudo pacman -S openmw
-
sudo pacman -S supertux
-
sudo pacman -S freedroidrpg
-
sudo pacman -S supertuxkart
-
sudo pacman -S kapman
-
sudo pacman -S 0ad
-
sudo pacman -S xonotic
-
sudo pacman -S wesnoth
-
sudo pacman -S openra
-
sudo pacman -S freeciv
-
sudo pacman -S dwarffortress
-
sudo pacman -S bass
-
flatpak install flathub com.moddb.TotalChaos
-
yay -S dunelegacy
-
yay -S sdlpop
-
yay -S opensurge
-
yay -S commander-genius-git
sudo pacman -S gnome-disk-utility
sudo pacman -S partitionmanager
sudo pacman -S gparted
yay -S gpu-screen-recorder
yay -S gpu-screen-recorder-gtk
sudo pacman -S python-protobuf lib32-vkd3d vkd3d
yay -S dxvk-bin
sudo pacman -S gtk3 gtk4 qt6 gvfs
32. Dependencies multimedia libraries for decoding/encoding (OPTIONAL if you want full no bloatware system skip these,or choose the ones you need):
sudo pacman -S fluidsynth lib32-fluidsynth openal lib32-openal gvfs gvfs-nfs libkate gst-plugins-base gst-plugins-bad-libs gst-libav lib32-gst-plugins-good gst-plugin-gtk lib32-gstreamer lib32-gst-plugins-base lib32-gst-plugins-base-libs xvidcore lib32-libxvmc libxvmc ffmpeg gst-libav gst-plugins-good gst-plugins-bad smpeg faac sndio libnma openresolv x264 x265 opus sane lame libao wavpack libmad a52dec libvorbis faad2 libmpeg2 libtheora libvpx libde265 libdv schroedinger dav1d rav1e gst-libav gst-plugins-base gst-plugin-va gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-plugin-pipewire lib32-pipewire pipewire-zeroconf flac lib32-flac smpeg lib32-smpeg mac opus lib32-opus opus-tools opusfile libmpeg2 libavif faac libwebp libheif libjxl jasper aom svt-av1
sudo pacman -S meson
sudo pacman -S wine wine-mono wine-gecko lutris steam
sudo pacman -S mono
sudo pacman -S lib32-v4l-utils lib32-libxcomposite lib32-opencl-icd-loader lib32-gst-plugins-base-libs grilo grilo-plugins
sudo pacman -Syu
sudo pacman -S opusfile
sudo systemctl restart systemd-binfmt
sudo pacman -S mingw-w64 glslang lib32-libvorbis
- Download the latest release here: https://github.com/GloriousEggroll/proton-ge-custom/releases
- Extract,enable hidden files and folders
- Create a folder in your /home/user/steam/root/compatibilitytools.d if it does not exist.
- Copy/paste the extracted GE folder into /home/user/config/.steam/root/compatibilitytools.d
- Restart Steam,enjoy the custom GE build
(Optional) Install spectacle for screenshots (KDE PLASMA) and fastfetch to have "I use arch btw" in your CLI for screenshots and reddit,also man pages support to actually learn some stuff about what packages you install and flatpak for a wide variety of software,most of which you can find in AUR.
-
sudo pacman -S spectacle fastfetch man
-
sudo pacman -S sonnet
-
sudo pacman -S enchant
-
sudo pacman -Syu
(Optional) Gnome boxes, useful for creating usb sticks with OS installs and gnome-boxes for vm's useful GUI for QEMU:
sudo pacman -S gnome-boxes
sudo pacman -S virt-manager qemu-desktop
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
sudo systemctl enable --now libvirtd.service
Check this website for additional driver/video support on vm's for both GNOME BOXES and virtmanager:
sudo pacman -Syu
sudo pacman -Syyuu
history
clear
sudo pacman -S gnome-disk-utility
- Edit mount options
- Add this line:
- nosuid,nodev,nofail,x-gvfs-show,auto
sudo systemctl status
sudo pacman -Syyuu
sudo pacman -Syu
35. Creating a bootable Windows 10 USB using Disks utility (Possible on any linux distro even without GNOME)
- Download a Windows image from MS link below:
- https://www.microsoft.com/en-us/software-download/windows10
- Insert USB Drive
- Launch Disks Utility
- Select your USB Drive and in the top right=corner click the menu select Format Disk
- In Partitioning select Compatible with modern systems and hard disks>2TB (GPT)
- Click Format wait for it to finish
- Click Partition> For Use with Windows(NTFS) (in Volume label type Windows or ESD)
- Mount the USB and Open it
- Go to the place where you downloaded Windows 10 ISO and select Open with Disk Image Mounter
- Open Copy everything from the Windows 10 ISO and paste into your USB Drive,wait for it to finish(takes a while)
- sudo nano /etc/resolv.conf
OpenDNS
- nameserver 208.67.222.222
- nameserver 208.67.220.220
- nameserver 2620:119:35::35
- nameservet 2620:119:53::53
Google DNS
- nameserver 8.8.8.8
- nameserver 8.8.4.4
CloudFlare DNS
- nameserver 1.1.1.1
- nameserver 1.0.0.1
- nameserver 2606:4700:4700::1111
- nameserver 2606:4700:4700::1001
Alternate DNS
- nameserver 198.101.242.72
- nameserver 23.253.163.53
Dyn DNS
- nameserver 216.146.35.35
- nameserver 216.146.36.36
OpenNIC DNS
- nameserver 58.6.115.42
- nameserver 58.6.115.43
- nameserver 119.31.230.42
- nameserver 2001:470:8388:2:20e:2eff:fe63:d4a9
- nameserver 2001:470:1f07:38b::1
- nameserver 2001:470:1f10:c6::2001
- nameserver 200.252.98.162
- nameserver 217.79.186.148
- nameserver 81.89.98.6
- nameserver 78.159.101.37
- nameserver 203.167.220.153
- nameserver 82.229.244.191
- nameserver 216.87.84.211
- nameserver 66.244.95.20
- nameserver 207.192.69.155
- nameserver 72.14.189.120
sudo nano /etc/pacman.conf
- #IgnorePkg =
- #IgnoreGroup =
- IgnorePkg = linux nvidia firefox
- IgnoreGroup = linux nvidia firefox
- IgnorePkg = linux
- IgnoreGroup = linux
lspci -v
sudo lspci -v
sudo mkinitcpio
That's it you are good for using pure ArchLinux and don't forget to view archwiki for more advanced commands and packages:
sudo pacman -S man
man
(your command here)
Fixing the new systemd [email protected] is not active, cannot reload. errors for sddm, gdm, lightdm display managers, insert the one you use.
sudo chage -l sddm
sudo chage --list sddm
-
sudo chage -E -1 sddm
-
sudo reboot
If you start getting errors like "signature from "John Smith [email protected]" is marginal trust" do these steps:
-
sudo pacman -S archlinux-keyring
-
sudo pacman -Syu archlinux-keyring
-
sudo pacman -Syyuu
-
sudo pacman-key --refresh-keys
-
sudo pacman -Syu archlinux-keyring
*Enjoy! Thank you!