Skip to content

Instantly share code, notes, and snippets.

@Octelly
Last active February 26, 2022 17:03
Show Gist options
  • Save Octelly/05643ead6dce7ec953bf592874b6b63c to your computer and use it in GitHub Desktop.
Save Octelly/05643ead6dce7ec953bf592874b6b63c to your computer and use it in GitHub Desktop.
Arch install guide
# guide won't work with LVM, system encryption or RAID, please consult the Arch wiki for more information regarding these topics
> partition with Gparted Live (easy mode partitioning)
-> MBR on BIOS and GPT on EFI
-> root partition
-> swap partition
-> EFI partition (if EFI)
-> home partition (if desired)
> connect to the internet (iwctl for wifi)
-> if you get stuck at the station command, check this: https://wiki.archlinux.org/index.php/Network_configuration/Wireless#Rfkill_caveat
-> you should also probably make sure you're not breaking any laws: https://wiki.archlinux.org/index.php/Network_configuration/Wireless#Respecting_the_regulatory_domain
> mount /dev/sdXY (root partition) to /mnt
-> mount /dev/sdXZ (home partition) to /mnt/home (if desired)
-> (other partitions)
> swapon /dev/sdXY (swap)
> pacstrap /mnt <packages>
-> base
-> linux linux-firmware (unless container or something - check wiki for more info if not installing on hardware)
-> iproute2 dhcpcd (networking) - you might not need dhcpcd if you're going to use a network manager like connman instead
-> iwd (wireless)
-> vim (editor)
-> man-db man-pages (manual pages)
> genfstab -U /mnt >> /mnt/etc/fstab
-> only writes mounts that are under /mnt + swap
> arch-chroot /mnt (temporarily change root for install)
> ln -sf /usr/share/zoneinfo/<region>/<city> /etc/localtime (timezone setup)
-> tab completion
> hwclock --systohc
> vim /etc/locale.gen
-> uncomment en_US.UTF-8 UTF-8
-> uncomment any other locales if desired
> locale-gen
> echo "LANG=<preferred language>" >> /etc/locale.conf
-> put the first collumn out of an ucommented entry in /etc/locale.gen in place of <preferred language>
-> /etc/locale.conf is a file you're about to create, tab completion won't work
> echo "<some hostname>" >> /etc/hostname
> vim /etc/hosts
-> 127.0.0.1 localhost
-> ::1 localhost
-> 127.0.1.1 <some hostname>.localdomain <some hostname>
> passwd
-> set a root password
> open the page for your preferred boot loader from the table here: https://wiki.archlinux.org/index.php/Arch_boot_process#Boot_loader
> install the boot loader
> install microcode for AMD and Intel CPUs based on these instructions: https://wiki.archlinux.org/index.php/Microcode#Installation
> exit chroot with ctrl+d
> reboot
---
if you forgot some packages:
- boot into archiso
- connect to the internet
- mount your root partition
- arch-chroot into the mountpoint
- install any forgotten packages
- ctrl+d and reboot
---
> login as root
> connect to the internet
-> systemctl enable --now dhcpcd
-> if on wifi, you have to startup iw daemon: systemctl enable --now iwd
> pacman -Sy <packages>
-> opendoas (doas - a lightweight sudo alternative, sudo is bloat for most users)
--> note: you might want to alias sudo to doas later on
-> polkit
> useradd -m <your account's username>
-> -m flag generates a home dir for the user
> passwd <your account's username>
-> set your account's password
> gpasswd -a <your account's username> wheel (adds your account to the wheel group for sudo and polkit admin rights)
> vim /etc/doas.conf
-> permit <your account's username> as root
---
GPU DRIVERS
Intel: https://wiki.archlinux.org/index.php/Intel_graphics#Installation
NVIDIA: good luck - https://wiki.archlinux.org/index.php/NVIDIA
AMD: see the table here https://wiki.archlinux.org/index.php/Xorg#Driver_installation + also install vulkan-radeon
hardware video acceleration: https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Installation
---
think before installing the packages below
I've tried to make the list below as helpful as possible, to help you not forget about anything
however, it is rather opinionated and even kinda outdated as far as my opinions go nowadays
> pacman -Sy <packages>
-> xorg (most supported display server)
-> xdg-user-dirs (basic directories - Desktop, Documents, Downloads, Music, etc.)
-> awesome (best window manager :) )
-> maim (screenshots)
-> picom (compositor)
-> kitty (terminal - note: needs at least OpenGL 3.3)
-> lightdm lightdm-gtk-greeter (login screen)
-> avahi (network discovery)
-> pulseaudio pulseaudio-alsa (sound system)
-> ossp (support for OSS-only programs - rerouting to PulseAudio)
-> pulseaudio-bluetooth bluez bluez-utils (bluetooth + audio)
-> pulseaudio-zeroconf (simple network audio configuration)
-> pavucontrol (volume and audio settings GUI)
-> blueberry (bluetooth + audio GUI)
-> gnome-keyring (keyring for passwords)
-> webp-pixbuf-loader (thumbnails for webp images in gtk applications)
> rfkill unblock bluetooth (bluetooth)
> systemctl enable --now bluetooth (bluetooth)
> systemctl enable lightdm (login screen)
> systemctl enable --now osspd (support for OSS-only programs - rerouting to PulseAudio)
> systemctl enable --now systemd-timesyncd (time synchronisation)
> consider installing and setting up ufw (firewall)
> also see https://wiki.archlinux.org/index.php/Category:Laptops and https://wiki.archlinux.org/index.php/Laptop if you're installing Arch on a laptop
> input devices: https://wiki.archlinux.org/index.php/General_recommendations#Input_devices
> you also might wanna take a look at https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate
> it is possible setup automatic numlock activation: https://wiki.archlinux.org/index.php/Activating_numlock_on_bootup
> if you're looking to make your setup as fast as possible, take a look here: https://wiki.archlinux.org/index.php/General_recommendations#Optimization
--- basics done
> pacman -Sy <packages>
-> git base-devel (a small collection of common packages)
> sudo gets automatically installed as a part of base-devel, get rid of it if you dare (as this makes doas redundant), or be retarded like me and just keep it - let's configure it
-> EDITOR=vim visudo
--> %wheel ALL=(ALL) ALL
> install yay via your user account
-> git clone https://aur.archlinux.org/yay.git
-> cd yay
-> makepkg -si
-> cd ..
-> rm -rf yay
> SSH
-> pacman -Sy openssh
-> systemctl enable --now sshd
> Google's popular spyware
-> yay -Sy google-chrome
> base font set
-> pacman -Sy noto-fonts (Google's font family)
> consider managing your dotfiles according to this tutorial: https://www.atlassian.com/git/tutorials/dotfiles
-> this is also recommended on the Arch wiki
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment