Base System
Setting up mirrors
The Arch installation environment comes with reflector
, a tool that generates mirror lists for pacman
. At boot time, reflector
is executed once to include the most recently synced mirrors and sorts them by download rate. This file iswill be copied to the installation destination.destination later on.
reflector
allows for a few filtering options:
Filter | Description |
---|---|
--age n |
Only return mirrors that have synchronized in the last n hours. |
--country NAME |
Restrict mirrors to selected countries, e.g. France,Germany (check available with --list-countries ) |
--fastest n |
Return the n fastest mirrors that meet the other criteria. Do not use without filters! |
--latest n |
Limit the list to the n most recently synchronized servers. |
--score n |
Limit the list to the n servers with the highest score. |
--number n |
Return at most n mirrors. |
--protocol PROTO |
Restrict protocol used by mirrors. Either https , http , ftp or a combination (comma-separated) |
To have reflector
generate a list of mirrors from Germany, which synced in the past 12 hours and use HTTPS for transfer:
reflector --country Germany --age 12 --protocol https --save /etc/pacman.d/mirrorlist
Installing base packages
The absolute minimum set of packages required to install Arch Linux onto a machine is as follows:
pacstrap /mnt base linux linux-firmware
However, this selection lacks the tooling required for file systems, RAID, LVM, special firmware for devices not included with linux-firmware
, networking software, a text editor or packages necessary to access documentation. It also lacks CPU microcode packages with stability and security updates.
The following table contains additional packages you most likely want to append to the above pacstrap
command:
Package | Description |
---|---|
base |
Absolute essentials (required) |
linux |
Vanilla Linux kernel and modules, with a few patches applied (required) |
linux-hardened |
A security-focused Linux kernel applying a set of hardening patches to mitigate kernel and userspace exploits |
linux-lts |
Long-term support (LTS) Linux kernel and modules |
linux-zen |
Result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems |
linux-firmware |
Device firmware files, e.g. WiFi (required) |
intel-ucode |
Intel CPU microcode (required, if on Intel) |
amd-ucode |
AMD CPU microcode (required, if on AMD) |
btrfs-progs |
Userspace tools to manage btrfs filesystems |
dosfstools |
Userspace tools to manage FAT filesystems |
exfatprogs |
Userspace tools to manage exFAT filesystems |
f2fs-tools |
Userspace tools to manage F2FS filesystems |
e2fsprogs |
Userspace tools to manage ext2/3/4 filesystems |
jfsutils |
Userspace tools to manage JFS filesystems |
nilfs-utils |
Userspace tools to manage NILFS2 filesystems |
ntfs-3g |
Userspace tools to manage NTFS filesystems |
reiserfsprogs |
Userspace tools to manage ReiserFS filesystems |
udftools |
Userspace tools to manage UDF filesystems |
xfsprogs |
Userspace tools to manage XFS filesystems |
lvm2 |
Userspace tools for Logical Volume Management |
cryptsetup |
Userspace tools for encrypting storage devices (LUKS) |
networkmanager |
Comprehensive network management and configuration suite |
nano |
Console text editor |
man |
Read documentation (manuals) |
sudo |
Execute commands with elevated privileges |
CAUTION: Be sure to replace amd-ucode
with intel-ucode
if you're on Intel!
ATTENTION: If you've chosen to use LUKS disk encryption make sure to include the cryptsetup
package!
TIP: To speed up package installation, edit /etc/pacman.conf
, uncomment the option ParallelDownloads
and set it to a desired value. To further increase transfer speeds consider using reflector
to select mirrors geographically nearest to you, e.g.:
reflector --country Germany --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
A desireable selection of packages for a useful base system could therefore look like this:
pacstrap /mnt base linux linux-firmware amd-ucode btrfs-progs dosfstools lvm2 nano networkmanager sudo
Generate the fstab
containing information about which storage devices should be mounted at boot:
# Generate fstab referencing UUIDs of devices/partitions
genfstab -U /mnt >> /mnt/etc/fstab
Switch into the newly installed system with arch-chroot
and continue setting it up:
arch-chroot /mnt