Created
March 22, 2024 19:47
-
-
Save leonrinkel/a874e1802648bf32e224c457b1b7221d to your computer and use it in GitHub Desktop.
My personal Arch install instructions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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