add arch install instructions
This commit is contained in:
165
arch.md
Normal file
165
arch.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# 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
|
||||
|
||||
```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
|
||||
|
||||
<https://wiki.archlinux.org/title/Official_repositories#multilib>
|
||||
|
||||
When prompted, use vulkan-radeon
|
||||
Reference in New Issue
Block a user