Skip to content

Instantly share code, notes, and snippets.

@timsonner
Last active March 8, 2026 02:29
Show Gist options
  • Select an option

  • Save timsonner/7ad342bd585ce6dfa19fd908ab601eed to your computer and use it in GitHub Desktop.

Select an option

Save timsonner/7ad342bd585ce6dfa19fd908ab601eed to your computer and use it in GitHub Desktop.
Arch setup notes

Arch setup

Set timezone

timedatectl set-timezone America/<City>

list disks

lsblk

Open disk in fdisk

fdisk /dev/sdX

Partition disk

g          # Create GPT table
n          # New partition (EFI)
<enter>    # Default partition number (1)
<enter>    # Default first sector
+1G        # 1 GiB size
t          # Change type
1          # EFI System

n          # New partition (swap)
<enter>    # Default partition number (2)
<enter>    # Default first sector
+4G        # 4 GiB size
t          # Change type
<enter>    # Partition 2
19         # Linux swap

n          # New partition (root)
<enter>    # Default partition number (3)
<enter>    # Default first sector
<enter>    # Use remainder
t          # Change type
<enter>    # Partition 3
23         # Linux root (x86-64)

p          # Print table to verify
w          # Write changes

Format partitions

mkfs.fat -F 32 /dev/sdX1
mkswap /dev/sdX2
mkfs.ext4 /dev/sdX3

Mount disk

mount /dev/sdX3 /mnt
mount --mkdir /dev/sdX1 /mnt/boot
swapon /dev/sdX2

Edit mirrors

vim /etc/pacman.d/mirrorlist

Set keymap

echo "KEYMAP=us" > /mnt/etc/vconsole.conf

Install base system

pacstrap -K /mnt base linux linux-firmware

Generate file system table

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

Change to root to make settings persistent

arch-chroot /mnt

Set local time

ln -sf /usr/share/zoneinfo/America/<City> /etc/localtime

Sync system time to hardware clock

hwclock --systohc

Set locale

echo 'LANG=en_US.UTF-8' > /etc/locale.conf

Set keyboard layout

echo 'KEYMAP=us' > /etc/vconsole.conf

Set hostname

echo 'yourhostname' > /etc/hostname

Install Grub

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
reboot

Manually configure network adapter (No IPv6)

echo '[Match]' > /etc/systemd/network/20-wired.network
echo 'Name=ens18' >> /etc/systemd/network/20-wired.network
echo '' >> /etc/systemd/network/20-wired.network
echo '[Network]' >> /etc/systemd/network/20-wired.network
echo 'DHCP=ipv4' >> /etc/systemd/network/20-wired.network
echo 'IPv6AcceptRA=no' >> /etc/systemd/network/20-wired.network

Restart networking and test ping IP

systemctl restart systemd-networkd
ip addr show ens18
ping 1.1.1.1

Manually configure DNS

echo 'DNS=1.1.1.1 1.0.0.1' >> /etc/systemd/network/20-wired.network
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Restart networking and test ping domain

systemctl restart systemd-networkd systemd-resolved
ping archlinux.com

Set locale

Pacman -S vi
vi /etc/locale.gen
# Uncomment en_US.UTF-8 UTF-8
locale-gen

Install gdm

pacman -S gdm gnome-terminal gnome-shell gnome-session vte3 nautilus sudo 

Enable NetworkManager

pacman -S networkmanager
systemctl disable systemd-networkd
systemctl enable NetworkManager
systemctl restart NetworkManager

Add user

useradd -m -s /bin/bash -G wheel <username>
passwd <username>

Edit sudoers

visudo
# Uncomment %wheel ALL=(ALL:ALL) ALL

Install Spice

sudo pacman -S spice-vdagent qemu-guest-agent

Lock down root account

sudo vi /etc/ssh/sshd_config
# Uncomment the line: PermitRootLogin prohibit-password
sudo passwd -l root # lock root account
sudo passwed -S root # status of root account
sudo usermod -s /usr/bin/nologin root 

Break glass re-enable root

sudo passwd -u root
sudo passwd root
sudo usermod -s /bin/bash root

Install git

sudo pacman -S base-devel git

Install Edge

git clone https://aur.archlinux.org/microsoft-edge-stable.git
cd microsoft-edge-stable
makepkg -si

Install Gnome keyring

sudo pacman -S gnome-keyring libsecret
systemctl --user enable --now gnome-keyring-daemon.socket
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment