From 47d2b99512d20a302ea6bc00f4fa4c760b52530e Mon Sep 17 00:00:00 2001 From: ducoterra Date: Thu, 27 Jul 2023 23:01:51 -0400 Subject: [PATCH] add arch install instructions --- arch.md | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 arch.md diff --git a/arch.md b/arch.md new file mode 100644 index 0000000..111d030 --- /dev/null +++ b/arch.md @@ -0,0 +1,165 @@ +# Arch with Gnome + +## Installation + +Follow most of the instructions here: + + +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 + + ```bash + # Check for internet + ip a + ping archlinux.org + ``` + +7. `timedatectl` to update system clock +8. Create disk partitions + + ```bash + 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: + + ```bash + cp /boot/EFI/grub/grubx64.efi /boot/EFI/boot/bootx64.efi + ``` + +25. `pacman -S vim` +26. Edit /etc/default/grub + + ```conf + 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 + + ```conf + 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 + + ```conf + 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: + + ```conf + # 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 + + + +When prompted, use vulkan-radeon