Files
Workstation/arch.md
2023-07-27 23:01:51 -04:00

5.0 KiB

Arch with Gnome

Installation

Follow most of the instructions here: https://wiki.archlinux.org/title/Installation_guide

  1. Download Arch

  2. Verify the image

  3. Create a bootable ISO

  4. Disable secureboot (reenable later)

  5. Boot into the live image

  6. Check for network connectivity

    # Check for internet
    ip a
    ping archlinux.org
    
  7. timedatectl to update system clock

  8. Create disk partitions

    fdisk -l
    fdisk /dev/vda
    
    • +1G for /boot
    • t EFI SYSTEM for /boot
    • remaining for /
  9. mkfs.fat -F 32 /dev/vda1 (/mnt/boot partition)

  10. cryptsetup luksFormat /dev/vda2

  11. cryptsetup luksOpen /dev/vda2 root

  12. mkfs.btrfs /dev/mapper/root (root partition)

  13. Mount the root partition with mount /mnt

  14. Mount the boot partition with mount --mkdir /mnt/boot

  15. pacstrap -K /mnt base linux linux-firmware

    Note: linux-zen works, linux-hardened breaks appimages

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

  17. arch-chroot /mnt

  18. ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

  19. hwclock --systohc

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

  21. echo 'hostname' > /etc/hostname

  22. pacman -S grub

  23. grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB (this will fail)

  24. Note: for some systems you'll have to move grubx64.efi into an expected location:

    cp /boot/EFI/grub/grubx64.efi /boot/EFI/boot/bootx64.efi
    
  25. pacman -S vim

  26. Edit /etc/default/grub

    GRUB_CMDLINE_LINUX="quiet splash rd.luks.uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    GRUB_ENABLE_CRYPTODISK=y
    
  27. Edit /etc/mkinitcpio.conf and set up systemd/sd-encrypt

    HOOKS=(systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
    
  28. mkinitcpio -P

  29. grub-mkconfig -o /boot/grub/grub.cfg

  30. pacman -S gdm gnome dhclient dhcpcd

  31. sudo systemctl enable gdm

  32. useradd ducoterra

  33. passwd ducoterra

  34. pacman -S sudo

  35. groupadd sudo

  36. Edit /etc/sudoers and uncomment the section allowing sudo and wheel group privilege

  37. usermod -aG sudo ducoterra

  38. usermod -aG wheel ducoterra

  39. mkdir /home/ducoterra

  40. chown ducoterra:ducoterra /home/ducoterra

  41. exit

  42. umount /mnt/boot

  43. umount /mnt

  44. reboot

Post Install

  1. vim /etc/locale.gen

    Uncomment the line:

    en_US.UTF-8 UTF-8

    And run sudo locale-gen

  2. pacman -S tpm2-tss

  3. systemd-cryptenroll /dev/vda2 --wipe-slot=tpm2 --tpm2-device=auto --tpm2-pcrs=""

  4. Change /etc/default/grub to save previous selection

    GRUB_DISABLE_SUBMENU=y
    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    
  5. sudo grub-mkconfig -o /boot/grub/grub.cfg

  6. Enable fingerprint terminal login but prompt for password first (enter switches to prompt for fingerprint)

    sudo vim /etc/pam.d/system-auth and at the top of the file:

    # fingerprint auth
    auth       sufficient                  pam_unix.so try_first_pass likeauth nullok
    auth       sufficient                  pam_fprintd.so
    
  7. sudo pacman -S bluez bluez-utils

  8. sudo systemctl enable --now bluetooth

  9. sudo pacman -S pipewire-pulse (remove conflicting packages)

Kernel Updates

  1. pacman -S linux linux-headers
  2. grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --modules="tpm" --disable-shim-lock
  3. cp /boot/EFI/GRUB/grubx64.efi /boot/EFI/boot/bootx64.efi

Packages

Official

name purpose
grub boot loader
sudo sudo privilege for non-root users
dhclient dhcp client tool
dhcpcd dhcp services
networkmanager Gnome networking in settings
qemu-guest-agent Auto resize
spice-vdagent Clipboard
firefox Firefox browser
gnome-browser-connector Firefox gnome connector
base-devel makepkg requirement
kubectl kubernetes kubectl
wine wine64 emulator
code open source vscode
steam steam
git git
fprintd fingerprint reader capability
tlp power management
bluez bluetooth
bluetoothctl bluetooth

AUR

name purpose
appimagelauncher AppImage launcher and integrator

Steam

https://wiki.archlinux.org/title/Official_repositories#multilib

When prompted, use vulkan-radeon