Learning Artix Linux - Installation & Setup (basestrap)
Episode 3 of 23

Learning Artix Linux - Installation & Setup (basestrap)

Installing Artix uses basestrap, a pacman-based installer that installs a system into a mount directory. This episode covers partitioning, mounting, basestrap, fstabgen, chroot, and GRUB installation until the system first boots with your chosen init.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Introduction

Now that you understand the architecture, it's time to get your hands dirty. Episode 3 guides you through installing Artix from the live ISO to disk — a process called basstrap because it uses the basestrap tool, a sibling of Arch's pacstrap. If you've ever installed Arch manually, this flow will feel familiar with a few important adjustments.

By the end of this episode, you'll have a bootable Artix system with your chosen init and GRUB installed. All the steps here follow the Installation Guide at wiki.artixlinux.org, so don't hesitate to keep it open as a companion reference.

Disk Partitioning

Creating a Partition Layout

Boot from the Artix ISO, then run cfdisk to partition. For a standard UEFI scheme, create two partitions: an EFI System Partition and a root partition. Example layout:

UEFI partition layout
/dev/sda1  /efi   FAT32  1 GiB  type: EFI System
/dev/sda2  /      ext4   rest   type: Linux filesystem

For legacy BIOS, a root partition is enough, with no ESP. You can also add a swap partition as needed. Use cfdisk with the GPT label scheme for UEFI and DOS for BIOS:

Start cfdisk
cfdisk /dev/sda

Make sure to mark the first partition with the EFI System type so the firmware recognizes it. Once the partitions are created, format their filesystems:

Format partitions
mkfs.fat -F 32 /dev/sda1
mkfs.ext4 /dev/sda2

Mount and Install the Base System

Mounting Partitions

Now mount the root and EFI partitions to the correct directories. The mount order matters because /efi lives inside /:

Mount partitions
mount /dev/sda2 /mnt
mount --mkdir /dev/sda1 /mnt/efi

mount --mkdir creates the target folder automatically if it doesn't exist. For systems with separate partitions like /home, mount those partitions too, after the root.

Basestrap: Install Base Packages

The base installation uses basestrap, which takes packages from the base repo and writes them into /mnt. Add your chosen init and its meta package:

Basestrap OpenRC variant
basestrap /mnt base base-devel openrc elogind linux linux-firmware

Replace openrc with runit, s6, or dinit per your choice. The base meta package pulls in the entire base system, while base-devel provides the build toolchain needed for the AUR later.

Generating fstab

Once the installation is done, create the /etc/fstab file with fstabgen so mounts happen automatically at boot:

Generate fstab with UUIDs
fstabgen -U /mnt >> /mnt/etc/fstab

The -U option uses UUIDs, so partition identification is resilient to disk order changes. Verify the result by reading the new file:

Check fstab contents
cat /mnt/etc/fstab

If the root and efi lines look correct, continue to chroot. The most common mistake here is forgetting to append the lines to fstab, so the system can't find root on reboot.

Chroot and Basic Configuration

Entering the New System

Use artix-chroot to enter the new system environment. From here, all commands run as if inside that system:

Chroot into the new system
artix-chroot /mnt

Inside the chroot, set the timezone, locale, and hostname:

Set timezone and locale
ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
hwclock --systohc
echo "LANG=en_US.UTF-8" > /etc/locale.conf

Don't forget to enable the locale you want in /etc/locale.gen, then run locale-gen. Also create a user and password for normal everyday access.

Setting Up the Network Service

So networking is active after reboot, register the network service with the init you're using. For OpenRC:

Enable NetworkManager on OpenRC
rc-update add NetworkManager default

For other inits, follow each one's conventions. We'll go deeper into users, groups, and networking in episode 7.

Install the Bootloader

GRUB for UEFI and BIOS

From inside the chroot, install the GRUB package and then install it to disk. For UEFI:

Install and configure GRUB for UEFI
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

For legacy BIOS, use grub-install --target=i386-pc /dev/sda without the EFI options. Make sure the intel-ucode or amd-ucode package is installed so the latest microcode loads at boot.

Kernel and Initramfs

The linux package already includes an initramfs built automatically during installation. If the kernel changes, initramfs is regenerated with mkinitcpio. Make sure mkinitcpio.conf uses the appropriate hooks, especially if you use disk encryption as covered in episode 10.

Exit and Reboot

Finishing the Installation

Before leaving the chroot, make sure every step is done: root password, a user in the wheel group, the bootloader installed, and the network service enabled. Then unmount and reboot:

Exit, unmount, and reboot
exit
umount -R /mnt
reboot

Make sure the ISO media is removed so the system boots from disk. On first boot, watch the init command lines on screen: for OpenRC, you'll see services being started runlevel by runlevel.

Verifying After Boot

Once you reach the new system, confirm the system identity and running init:

Verify the new system
cat /etc/os-release
ps -p 1 -o comm=
pacman -Syu

The output of cat /etc/os-release shows ID=artix and ID_LIKE=arch. Run pacman -Syu to make sure the system is fully updated before use.

Installation Flow Summary

Here's the complete installation sequence you just performed:

  • Partition the disk with cfdisk, format with mkfs.
  • Mount root and efi into /mnt.
  • basestrap /mnt base base-devel openrc elogind linux linux-firmware.
  • fstabgen -U /mnt >> /mnt/etc/fstab.
  • artix-chroot /mnt for timezone, locale, and user configuration.
  • Install GRUB and run grub-mkconfig.
  • Reboot and verify with pacman -Syu.

If any step fails, the Installation Guide on the Artix wiki is the first reference to open.

Conclusion

Episode 3 took you from an empty ISO to a bootable Artix system: partitioning, mounting, basestrap, fstabgen, chroot, basic configuration, and GRUB — all colored by the init choice you made from the start.

Key takeaways:

  • basestrap replaces pacstrap; artix-chroot replaces arch-chroot.
  • Choose your init during installation: openrc, runit, s6, or dinit.
  • fstabgen -U uses UUIDs for stable partition identification.
  • GRUB is installed according to firmware: UEFI uses efibootmgr, BIOS uses i386-pc.
  • Enable the network service before rebooting so the connection works right away.
  • Verify with ps -p 1 -o comm= and pacman -Syu after boot.

In the next episode, episode 4, we'll cover package management with pacman in depth: pacman -Syu, -S, -R, -Q, -F, /etc/pacman.conf configuration, mirrorlist, and PGP key management.