archlinux setup no bullshit
A brief archlinux setup guide.
Final setup will be: archlinux + i3wm (xorg) or sway (wayland), booted with efi.
- To migrate an installation:
https://wiki.archlinux.org/title/Migrate_installation_to_new_hardware - To install a new system from a existing system, get package
arch-install-scriptsfor toolsarch-chrootandgenfstabetc. - To install a new system from a existing system, to a REMOVABLE drive, see
this note:
https://shrik3.com/post/archlinux/portable_os/
PRE
liveCD
Download iso and verify signature
https://archlinux.org/download/
# lsblk get usb drive identifier with lsblk.
$ dd bs=4M if=ARCH.iso of=/dev/USB_DRIVE conv=fsync oflag=direct status=progress
Tell me you don’t fuck with sudo dd, do you?
datetime
$ timedatectl set-ntp true
$ timedatectl status
Internet
It’s recommended to use ethernet (which should automatically connect). For wifi setup
# make sure the interface is up
$ ip link set <interface> up
$ iwctl
> station list
> station <interface> get-networks
> station <interface> connect SSID_NAME
Partitioning
This is UEFI/GPT, for BIOS/MBR read the wiki:
identify target disk with lsblk;
for further disk info you can use fdisk -l /dev/sdx.
Disk Partition & Formatting (UEFI/GPT, EXT4 + SWAP)
Partitioning will typically wipe your disk so don’t fuck up.
$ cgdisk DEVICENAME
minimal example
part.| Mount | Type | Size | id e.g.
-----+-------+--------------+-----------+----------
boot | /boot | Efi System | 256-512MB | /dev/sda1
root | / | linux fs | as needed | /dev/sda2
swap | NA | linux swap | 2 * ram | /dev/sda3
Formatting the /boot and /root partitions
$ mkfs.vfat -F32 /dev/sda1
$ mkfs.ext4 /dev/sda2
Use swap partition (Optional)
Note: package dosfstools may be needed for vfat file system.
Mount the Disk
mount /dev/sda2 /mnt
mkdir -p /mnt/home
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot
§ System Install and Basic Configs
(optional), choose a proper mirror by modifying
/etc/pacman.d/mirrorlist and run pacman -Syy
install basic system
$ pacstrap /mnt base linux linux-firmware
create fstab: check lsblk or fdisk -l etc. to make sure partitions are
correctly mounted.
$ genfstab -U /mnt >> /mnt/etc/fstab
chroot into the new installed system
$ arch-chroot /mnt
Setting Timezone
# timedatectl list-timezones
# timedatectl set-timezone Zone/SubZone
Locale and Language:
edit /etc/locale.gen, uncomment the language encoding that you need.
then run locale-gen to generate locales..
create /etc/locale.conf and set LANG variable, e.g.
LANG=en_US.UTF-8
Network Manager: (and disable dhcpcd)
sudo pacman -S networkmanager
sudo systemctl disable dhcpcd
sudo systemctl enable NetworkManager.service
Create new user It’s not recommended to use root user on a daily basis.
useradd -G wheel username
passwd username
mkdir -m 700 /home/username
chown username:username /home/user
Then edit sudoers to grant new user root privilege. Use visudo command to edit.
username ALL=(ALL) ALL
Bootloader (UEFI)
Check again all the partitions are correctly mounted!
$ pacman -S grub os-prober efibootmgr
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck
$ grub-mkconfig -o /boot/grub/grub.cfg
If you reuse existing grub install, you only need to update the grub config. After this you should be able to remove the liveCD and boot into new system.
MISC
Desktop environments
https://wiki.archlinux.org/title/Desktop_environment
/post/arch_setup_new