Skip to content

Instantly share code, notes, and snippets.

@leonrinkel
Created March 22, 2024 19:47
Show Gist options
  • Save leonrinkel/a874e1802648bf32e224c457b1b7221d to your computer and use it in GitHub Desktop.
Save leonrinkel/a874e1802648bf32e224c457b1b7221d to your computer and use it in GitHub Desktop.
My personal Arch install instructions
# boot option override is F11 (on my system)
# disable windows fast startup to save a headache
# set keyboard layout
loadkeys de-latin1
# verify UEFI boot mode
cat /sys/firmware/efi/fw_platform_size
# verify connectivity
ping google.com
# verify date and time
timedatectl
timedatectl set-timezone Europe/Berlin
# partition disk
lsblk
fdisk /dev/nvme1n1
g # new gpt
n # new 1G partition
t # set type = 1 EFI partition
n # new 64G partition (at least as large as RAM for hibernation)
t # set type = 19 Linux swap
n # new partition of remaining space
t # set type = 23 Linux root x86_64
w # write changes to disk
# format partitions
mkfs.fat -F 32 /dev/nvme1n1p1
mkswap /dev/nvme1n1p2
mkfs.ext4 /dev/nvme1n1p3
# note down UUIDs
blkid
# mount partitions
mount /dev/nvme1n1p3 /mnt
mount --mkdir /dev/nvme1n1p1 /mnt/boot
swapon /dev/nvme1n1p2
# install base system
pacstrap -K /mnt base linux linux-firmware vim intel-ucode networkmanager
# configure bunch of stuff
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc
vim /etc/locale.gen # uncomment en_US.UTF-8
locale-gen
vim /etc/locale.conf # LANG=en_US.UTF-8
vim /etc/vconsole.conf # KEYMAP=de-latin1
vim /etc/hostname # arch
passwd
# build initramfs, exit chroot
mkinitcpio -P
exit
# reboot into UEFI shell
reboot
# add boot entry
ls fs4: # find EFI partition
bcfg boot dump # list entries
bcfg boot rm 01 # remove old entries
rm fs1:\EFI\ubuntu # might also want to remove old bootloaders
bcfg boot add 01 fs4:\vmlinuz-linux "Arch Linux"
# add cmdline options
edit fs4:\options.txt
# <SPACE*4>root=UUID=... rw
# initrd=\intel-ucode.img initrd=\initramfs-linux.img
# resume=UUID=...
# nvidia_drm.modeset=1 nvidia_drm.fbdev=1
# nvidia.NVreg_PreserveVideoMemoryAllocations=1
# F2 to save, F3 to exit
bcfg boot -opt 01 fs4:\options.txt
bcfg boot dump -v
# exit UEFI shell and reboot
exit
# check connectivity
systemctl enable NetworkManager.service
systemctl start NetworkManager.service
ping google.com
# install a bunch of stuff
pacman -S man-db man-pages texinfo sudo nvidia gnome
systemctl enable gdm.service
# add user
useradd -m -G wheel leon
passwd leon
EDITOR=vim visudo # uncomment %wheel line
# nvidia shenanigans
vim /etc/mkinitcpio.conf
# remove kms from HOOKS
# also if here already, add resume somewhere after udev e.g. second last
mkinitcpio -P
systemctl enable nvidia-suspend.service
systemctl enable nvidia-hibernate.service
systemctl enable nvidia-resume.service
# say your last prayers and reboot
reboot
# verify in system details that wayland works
# frigging hibernate still doesn't work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment