7.4 KiB
Arch with Gnome
Installation
Follow most of the instructions here: https://wiki.archlinux.org/title/Installation_guide
-
Download Arch
-
Verify the image
-
Create a bootable ISO
-
Disable secureboot (reenable later)
-
Boot into the live image
-
Check for network connectivity
# Check for internet ip a ping archlinux.org -
timedatectlto update system clock -
Create disk partitions
fdisk -l fdisk /dev/vda- +1G for /boot
- t EFI SYSTEM for /boot
- remaining for /
-
mkfs.fat -F 32 /dev/vda1(/mnt/boot partition) -
cryptsetup luksFormat /dev/vda2 -
cryptsetup luksOpen /dev/vda2 root -
mkfs.btrfs /dev/mapper/root(root partition) -
Mount the root partition with
mount /mnt -
Mount the boot partition with
mount --mkdir /mnt/boot -
pacstrap -K /mnt base linux linux-firmwareNote: linux-zen works, linux-hardened breaks appimages
-
genfstab -U /mnt >> /mnt/etc/fstab -
arch-chroot /mnt -
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime -
hwclock --systohc -
echo 'LANG=en_US.UTF-8' > /etc/locale.conf -
echo 'hostname' > /etc/hostname -
pacman -S grub -
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=BOOT(this will fail) -
Note: for some systems you'll have to move grubx64.efi into an expected location:
cp /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/bootx64.efi -
pacman -S vim -
Edit /etc/default/grub
GRUB_CMDLINE_LINUX="quiet splash rd.luks.uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" GRUB_ENABLE_CRYPTODISK=y GRUB_DISABLE_SUBMENU=y GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true -
Edit /etc/mkinitcpio.conf and set up systemd/sd-encrypt
HOOKS=(systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck) -
mkinitcpio -P -
grub-mkconfig -o /boot/grub/grub.cfg -
pacman -S gdm gnome dhclient dhcpcd -
sudo systemctl enable gdm -
useradd ducoterra -
passwd ducoterra -
pacman -S sudo -
groupadd sudo -
Edit /etc/sudoers and uncomment the section allowing sudo and wheel group privilege
-
usermod -aG sudo ducoterra -
usermod -aG wheel ducoterra -
mkdir /home/ducoterra -
chown ducoterra:ducoterra /home/ducoterra -
exit -
reboot
Post Install
Set up locale with correct information (required for certain binaries like minecraft-launcher)
-
vim /etc/locale.genUncomment the line:
en_US.UTF-8 UTF-8
-
sudo locale-gen
TPM2 LUKS Decryption
pacman -S tpm2-tsssystemd-cryptenroll /dev/vda2 --wipe-slot=tpm2 --tpm2-device=auto --tpm2-pcrs=""
Fingerprint Reader Support
-
sudo pacman -S fprintd -
sudo systemctl enable --now fprintd -
Enable fingerprint terminal login but prompt for password first (enter switches to prompt for fingerprint)
sudo vim sudo vim /etc/pam.d/sudo and at the top of the file:
# fingerprint auth auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient pam_fprintd.so
Bluetooth
sudo pacman -S bluez bluez-utilssudo systemctl enable --now bluetooth
Audio
Without pipewire-pulse the audio level/device will reset every reboot.
sudo pacman -S pipewire-pulse(remove conflicting packages)
RDP Remote Desktop
sudo pacman -S remmina freerdp
Virtualization
-
Install virtualization capabilties
sudo pacman -S qemu-full sudo pacman -S libvirt sudo pacman -S iptables-nft dnsmasq sudo pacman -S virt-manager qemu-desktop sudo usermod -aG libvirt ducoterra sudo virsh net-autostart default -
Edit /etc/libvirt/libvirtd.conf
... unix_sock_group = 'libvirt' ... unix_sock_rw_perms = '0770' ... -
Edit /etc/libvirt/qemu.conf
# Some examples of valid values are: # # user = "qemu" # A user named "qemu" # user = "+0" # Super user (uid=0) # user = "100" # A user named "100" or a user with uid=100 # user = "ducoterra" # The group for QEMU processes run by the system instance. It can be # specified in a similar way to user. group = "ducoterra" -
systemctl enable --now libvirtd
CUPS Printing
-
sudo pacman -S cups avahi -
sudo vim /etc/nsswitch.confhosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns -
sudo systemctl start cups -
sudo systemctl start avahi-daemon
Steam
https://wiki.archlinux.org/title/Official_repositories#multilib
When prompted, use vulkan-radeon
Help
Update Grub
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=BOOTcp /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/bootx64.efi
Downgrading Kernel
cd /var/cache/pacman/pkgpacman -U linux-x.x.x.arch1-1-x86_64.pkg.tar.zst linux-headers-x.x.x.arch1-1-x86_64.pkg.tar.zstreboot
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 |
| cups | cups printing daemon |
| avahi | .local address resolution |
| cups-pdf | ipp support for printers |
AUR
| name | purpose |
|---|---|
| appimagelauncher | AppImage launcher and integrator |