3.7 KiB
Arch installation checklist
This file contains simplified instructions for Arch Linux installation Following these should lead to a full installation of barebone Arch system, with grub bootloader and a priviledged sudoer user.
Note: Running the script can automated many of these points, if you are comming here after running the script, look for a line saying: Proceed from this line, if you're reading after chrooting
Set keyboard layout
Default layout will be US
ls /usr/share/kbd/keymaps/**/*.map.gz <- list keymaps
loadkeys de-latin1 <- modify layout
Verify boot mode
ls /sys/firmware/efi/efivars <- if exist, system is UEFI, else legacy BIOS
Internet connection
Ethernet connection is automatic, WiFi:
ip link <- check network interface works and is enabled
iwctl <- authenticate to your WiFi network
ping archlinux.org <- test connection
System clock
timedatectl set-ntp true <- make sure the clock will be accurate
timedatectl status <- check the status
Partition the disk
fdisk /dev/sdX <- make partitions
- EFI (if UEFI)
- Swap
- Root
- (Home)
Format the partitions and make filesystems
mkfs.ext4 /dev/root_partition
mkfs.fat -F32 /dev/efi_system_partition
mkswap /dev/swap_partition
Mount the file systems
mount /dev/root_partition /mnt
mount /dev/efi_system_partition /mnt/boot
swapon /dev/swap_partition
Install essentials
First select mirrors (/etc/pacman.d/mirrorlist)
pacstrap /mnt base linux linux-firmware base-devel NetworkManager vim
Fstab
genfstab -U /mnt >> /mnt/etc/fstab
Chroot
arch-chroot /mnt
Proceed from this line, if you're reading after chrooting
Set time zone
ln -sf /usr/share/zoneinfo/Region/Ciry /etc/localtime <- specify timezone
hwclock --systohc <- synchronize clock, to generate /etc/adjtime
Localization
Edit /etc/locale.gen and uncomment en_US.UTF-8 UTF-8 and ISO locales
locale-gen <- Generate locales
Set LANG variable in locale.conf:
LANG=en_US.UTF-8
Set persistent keyboard layout in /etc/vconsole.conf
(This will default to english, if not set)
KEYMAP=de-latin1
Network Config
Define hostname in /etc/hostname (name of computer)
Add matching entries to /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 hostname.localdomain hostname
Set root password or make other account
passwd <- Set root password
It's better to work with priviledged user rather than root account directly.
To do this, we first have to install sudo and vim. (We did this with pacstrap)
After that, we can edit the configuration by sudo EDITOR=vim visudo, in which we will uncomment the line %wheel ALL=(ALL) ALL and save
After sudo is set up and wheel group is allowed to use it, we can make the user:
useradd -G wheel,admin -d /path/to/home -m username -
passwd username
After this, we can login as this user and make sure everything works as it shoud:
sudo su username
Install bootloader
This will only cover grub, for other bootloaders, visit https://wiki.archlinux.org/index.php/Arch_boot_process#Boot_loader
Install grub package with pacman
Note: To detect other operating systems too, you will also need os-prober package, also with NTFS systems, if windows isn't detected, try installing ntfs-3g and remounting
UEFI:
efibootmgr package is also needed for UEFI systems
grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB
BIOS (Legacy):
grub-install --target=i386-pc /dev/sdX, where sdX is the disk, not a partition
Note: --removable option can be used, which will allow booting if EFI variables are reset or you move to another PC
Generating grub configuration
grub-mkconfig -o /boot/grub/grub.cfg