Please read and understand everything shown carefully before starting.
localectl list-keymaps
List all available keyboard layouts.
loadkeys de
Load the selected keyboard layout (default is US).
efivar -l
If lots of unknown text appears on your screen that you don’t understand, it means you booted into UEFI mode.
ping archlinux.org
This will ping a website and show an output in bytes to check if you’re connected to the internet.
iwctl
Use this tool to show wifi information and connect to it.
station device scan
Replace device
with your wifi adapter name.
station device get-networks
Replace device
again with your WiFi adapter name and list the available networks.
station device connect Wifi-Name
Replace Wifi-Name
with your real wifi name and enter the password.
lsblk
This will show all information about your installed disks. You can use it anytime after changing your disks to display the updated information.
cfdisk /dev/nvme0n1
This will use the cfdisk
tool for easier partitioning of your disk.
mkfs.fat -F32 /dev/nvme0n1p1
Format the EFI/Boot partition to FAT32.
mkfs.ext4 /dev/nvme0n1p2
Format your Linux filesystem partition to the Linux ext4 file system.
mount /dev/nvme0n1p2 /mnt
Mount your Linux filesystem partition to /mnt
.
mkdir /mnt/boot
Create a directory for your bootloader.
mount /dev/nvme0n1p1 /mnt/boot
Mount the EFI/Boot partition to /boot
.
nano /etc/pacman.conf
Enable parallel downloads by removing the #
from the respective line. (If you are unsure about the config, leave it at 5.)
pacstrap -K /mnt base base-devel linux linux-firmware
Install the base Linux system to your root directory.
genfstab -U -p /mnt >> /mnt/etc/fstab
Generate an fstab
file.
fallocate -l 4G /mnt/swapfile
Set your size and directory of your swap file.
chmod 600 /mnt/swapfile
Make your swap file only accessible by root for security reasons.
mkswap /mnt/swapfile
Format the swap file to the swap file system.
swapon /mnt/swapfile
Enable the swap file system.
nano /mnt/etc/fstab
Add /swapfile none swap defaults 0 0
into that config – you can optionally add a comment (e.g. # swapfile
) on the line above.
arch-chroot /mnt
Switch to the shell of your installed system.
pacman -S networkmanager nano
Install NetworkManager
and nano
.
systemctl enable NetworkManager
Enable the NetworkManager
service.
nano /etc/locale.gen
Find your language (e.g., de_DE
), uncomment it, and save changes.
locale-gen
Apply the language settings to your system.
echo LANG=de_DE.UTF-8 >> /etc/locale.conf
Add your language configuration.
export LANG=de_DE.UTF-8
echo iusearchbtw >> /etc/hostname
Replace iusearchbtw
with your preferred hostname.
ln -sf /usr/share/zoneinfo/
Navigate to your timezone directory (e.g., Europe/Berlin
) and link it:
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc --localtime
systemctl enable fstrim.timer
nano /etc/pacman.conf
- Uncomment [multilib]
(not multilib-testing
) and enable parallel downloads (change the number up to your internet’s capability, maximum is 20).
pacman -Sy
passwd
Set a password for the root user.
useradd -m -G wheel -s /bin/bash <username>
Replace <username>
with your desired username.
passwd <username>
Set a password for your new user.
nano /etc/sudoers
Uncomment %wheel ALL=(ALL) ALL
. (Optionally add Defaults rootpw
to require the root password for sudo.)
exit
systemctl daemon-reload
arch-chroot /mnt
bootctl install
This installs the bootloader.
nano /boot/loader/entries/arch.conf
Name the config file as desired. Paste this into the config file:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
You may replace Arch Linux with your chosen title in the bootloader menu.
echo "options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/nvme0n1p2) rw" >> /boot/loader/entries/arch.conf
Make sure to specify the correct disk (e.g. /dev/nvme0n1p2
).
pacman -S gnome-shell gnome-terminal gnome-control-center gnome-software gnome-menus gnome-shell-extensions gnome-system-monitor mutter gdm
You can also install gnome
for a complete setup. The example above is for a minimal installation to avoid bloatware.
systemctl enable gdm
If you prefer another desktop environment or window manager, the installation steps will different.
pacman -S flatpak git wget gedit thermald dolphin gnome-tweaks
Only install dolphin
if you are using KDE Plasma. And only install gnome-tweaks
on Gnome.
pacman -S ufw fzf python python-pip bluez blueman bluez-utils zram-generator fastfetch preload
systemctl enable bluetooth ufw preload
You can only install preload
after installing the Chaotic-AUR-Repos.
ufw default deny
This will load default deny ufw settings.
ufw allow ssh
If you need ssh, allow it with this command.
pacman -S nvidia-dkms libglvnd nvidia-utils opencl-nvidia lib32-libglvnd lib32-nvidia-utils lib32-opencl-nvidia nvidia-settings
pacman -S linux-headers
nano /etc/mkinitcpio.conf
Add the following to MODULES=()
: nvidia nvidia_modeset nvidia_uvm nvidia_drm
mkdir /etc/pacman.d/hooks
nano /etc/pacman.d/hooks/nvidia.hook
Insert the following content into the hook file:
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
[Action]
Depends=mkinitcpio
When=PostTransaction
Exec=/usr/bin/mkinitcpio -P
This ensures the correct NVIDIA modules are loaded and that the mkinitcpio
image updates automatically.
exit
umount -R /mnt
reboot
sudo timedatectl set-timezone Europe/Berlin
Select your right Timezone.
sudo nano /etc/mkinitcpio.conf
Remove from MODULES=()
: nvidia nvidia_modeset nvidia_uvm nvidia_drm
wget https://mirror.cachyos.org/cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz && cd cachyos-repo
sudo ./cachyos-repo.sh
cd ..
sudo rm -r cachyos-repo.tar.xz cachyos-repo
sudo pacman -S yay
yay -S paru
sudo -i
pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
pacman-key --lsign-key 3056513887B78AEB
pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
exit
sudo gedit /etc/pacman.conf
Cut all the cachyos
repos (from line 77 to line 87) to the end of the config. Remove the last 5 lines and replace them with the cachyos
repos. Then add:
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
sudo pacman -Sy
sudo pacman -S cachyos-kernel-manager cachyos-gaming-meta cachyos-settings
Launch the CachyOS Kernel Manager: Select "Configure" and under "Options," select the "RC - Release Candidate," then click on "Build Kernel." (Only if you do not have the latest RC kernel linux-cachyos-rc
or if you prefer to use a stable kernel (linux-cachyos
) with lower performance.) Proceed with the installation.
sudo pacman -S linux-cachyos-nvidia-open
sudo nano /boot/loader/entries/arch.conf
linux /vmlinuz-linux-cachyos
initrd /initramfs-linux-cachyos.img
Change the lines in the config to match and boot into the new kernel you installed.
sudo pacman -S pacman
sudo pacman -Syuu
Not really recommended: If you have problems or annoying outputs every time you use the pacman command, you can try disabling the core
repo in /etc/pacman.conf
by commenting it out with a #
.
wget https://mirror.cachyos.org/cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz && cd cachyos-repo
sudo ./cachyos-repo.sh
cd ..
sudo rm -r cachyos-repo.tar.xz cachyos-repo
If something breaks, this will reinstall the CachyOS repos and should fix all pacman errors.
If you are running the system in a VM, it is recommended to install these things for your VM software:
sudo pacman -S open-vm-tools xf86-video-vmware xf86-input-vmmouse
sudo systemctl enable vmtoolsd
sudo systemctl start vmtoolsd
sudo pacman -S spice-vdagent
sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd