Artix is a rolling release, Arch-based Linux distro whose main selling point is being completely systemd
-free. For my fellow casuals, systemd
is one of those controversial topics in the Linux community, one that I imagine many many flame wars were waged over. I’ll attempt to very briefly summarize the issue just for context. systemd
is software suite of tools that manage the system and services that essentially forms the backbone of a Linux system. In other words, it is the first process that runs, and from where all the other processes spawn. Critics of systemd
argue that systemd
creates bloat, is inefficient, and makes a system more vulnerable to attack. Seems like a problem for a specific set of people, but getting into the issue is beyond the scope of what I’m interested in doing here. Honestly, I think this will just be more of a personal experiment in what not having systemd
will be like, especially since every distro I’ve tried at this point has had guided installers and desktop environments baked in—it’s time for the kid gloves to come off and put on the big boy Linux pants.
- Which version of Artix to choose?
- Installing Artix
- Keymap and Network
- Partitioning
- Formatting
- Installing the base system and kernel
- Preparing fstab:
- Configuring the system
- Setting the system clock
- Localization
- Installing the Boot Loader
- Creating our user
- Network configuration
- Conclusion
Which version of Artix to choose?
Artix comes in a few flavors:
- Base — allow for total customization, only having a terminal at your disposal and requiring all your Linux wits to survive.
- Graphical — provides a reconfigured desktop of your choice (LXQt, LXDE, MATE, Cinnamon, KDE/Plasma, Xfce, and a basic set of programs, like a file manager, web browser, and a graphical installer.
- Community — comes with a general suite of tools for desktop use, the full list can be found link here. It comes in either in GTK or Qt with either MATE, KDE, LXDE, and LXQt.
I’m gonna go all in and jump into base, but before that I have to make this decision: which init
system should I choose? Artix offers dinit
, OpenRC
, runit
, s6
, and suite66
, for each of its editions:
OpenRC | dinit | runit | s6 | suite66 | elogind |
---|---|---|---|---|---|
dependency based init system. | portable init system with dependency management. | tool suite that provides an init and daemon spawning. | a process supervision suite with init. | wrapper for s6 written for ease of use. | stand alone version of logind. *see note |
I chose OpenRC because it looks to be the most-well documented, and I’m a sucker for documentation. Having never installed a distro quite like this before I’m going to preform a dry run on a virtual machine before I attempt to install it on my actual desktop. I recommend having a glance over of the ArtixWiki’s installation guide, linked here, as it covers all the components and and provides a brief overview of its command syntax for each of the above init
managers. I’m not gonna lie, trying to use the ArtixWiki as a noob, might be challenging so make sure you have at least a couple of hours to sit down with and really tackle this installation, especially as a first-timer.
Installing Artix
I created a virtual machine with 2 vCPUs, and 2GBs of RAM and a 30GB vHDD, if you want to follow along.

At boot you’ll want to select the option to boot from wherever is appropriate for you installation media, in my case, since this is a vm, I’ll be booting from an ISO file.
Keymap and Network
Use the following command to check the available keyboard layout types & select the one that is proper for your setup:
ls -R /usr/share/kbd/keymaps # use a pipe to make it more readable: | less loadkeys us #or your own region
Next test your network connection as the following steps requiring the internet in order to progress. Wired connections are automatically setup, but if you are on a wireless connection, you’ll have to jump through a few hoops to get it setup, using dhcpcd
& wpa-supplicant
packages.
To verify our network works we’ll just ping the artix website 4 times.
ping artixlinux.org -c 4
Partitioning
Before we install Artix, we need to partition the hard drive, you can use fdisk
or cfdisk
, but we’ll use cfdisk
here. When you first boot in from your installation media, you’ll want to login as root. The default username and password is:
Username | Password |
---|---|
root | artix |
First let’s check out the name of our harddrives using lsblk
.

Obviously if you are on a actual desktop or have more than one drive attached it’ll show up here. Once you know what your target installation media is going to be, select it using cfdisk
which will look like this:
cfdisk /dev/vda
You should see a window like this take over you command line:

If your hard drive exceeds 2TB than go with GPT as it is the modern standard and it supports disk drives over 2TB, otherwise it is safe to use DOS. the other 2 options are for compatibility with older SGI & SUN systems. As I am using a VM, and my disk drive is under 2TB so I’ll go with the dos
hard disk label. Once inside cfdisk, you’ll encounter this screen.

From here we’ll need to create our partition table, we’re going to be creating a relatively simple partition scheme of /mnt/boot
(for the bootloader), /mnt
(where our system files & packages will go) ,and /home
(for our user files). I’ll also be omitting the /swap
partition as I have a NVME drive and 16GBs of RAM, so I don’t really need a /swap
. According to the ArtixWiki, the boot partition is necessary on UEFI systems with a GPT disk and has to be created and mounted at /mnt/boot
with a suggested size of 512 MB.
512MB is a tad overkill, you could go as low as 128MB for modern boot partitions, but to follow the docs, we’ll just go ahead and use 512MB. To create this partition in cfdisk
select [ NEW ] with Free Space selected, and type 512M, choose primary and press enter. Once it’s created, use the arrow keys to select the bootable option and press enter to mark the current partition as bootable or press “b” on your keyboard.

Next create 2 more partitions as you see fit with the remaining disk space, I used 12GB for the partition I intend to use as /mnt/
and the remaining 17GB for /home
.

Now using the arrow keys, select [ Write ] then press enter, cfdisk
will prompt you with “are you sure” then type yes and press enter. Finally exit cfdisk
by selecting [ Quit ].



If you need a swap partition go ahead a make one here before you write the changes and exit.
Formatting
Reminder to use the output of lsblk
as reference, as the drive names will be different on an actual machine.
mkfs.ext4 -L BOOT /dev/vda1 # 128-512MB mkfs.ext4 -L ROOT /dev/vda2 # typically 15-25GB mkfs.ext4 -L HOME /dev/vda3 # The remainder for home #mkswap -L SWAP /dev/vda4 # swap partition (if created)
If you are doing a UEFI installation, the boot partition needs to be formatted as fat32, but since this is a VM, formatting as ex4 is okay.
mkfs.fat -F 32 /dev/sda4 fatlabel /dev/sda4 BOOT
Once that is done, we need to mount our newly minted partitions.
#swapon /dev/disk/vda4 (if created) mount /dev/vda2 /mnt mkdir /mnt/boot /mnt/home mount /dev/vda1 /mnt/boot mount /dev/vda3 /mnt/home
Installing the base system and kernel
Next is the real exiting part where we install the base Artix system. the basestrap
command will install to the /mnt
directory the base (main OS packages), base-devel (software compilers and other developer tools), the Linux kernel and firmware packages, openrc
(the init
system) & elogind
wrapper for openrc
, and vim
(a text editor). You may choose to sub nano
for vim
if you prefer. Go get a snack because this install might take a few minutes.
Optional: For a faster download, edit the
/etc/pacman.d/mirrorlist
file. This is the list of Artix repos thatpacman
uses to pull software from. Move the mirrors that are closer to you near the top and save the file.
basestrap /mnt base base-devel linux linux-firmware openrc elogind-openrc vim
Note that at this point you can install any init
system you want to, instead of openrc
. Artix also offers 3 different kernel options, linux
, linux-lts
, and linux-zen
, for you power users out there.
Quick Vim Tip! press
i
ora
to enter INSERT mode, the hitESC
to exit INSERT mode and the type:wq
to save and exit.
Using nano
or vim
, edit the /etc/local.gen
file, uncommentating whatever localizations you need.
#ONLY INSTALL ONE OF THESE! #runit basestrap /mnt base base-devel linux linux-firmware runit elogind-runit #s6 basestrap /mnt base base-devel linux linux-firmware s6-base elogind-s6 #suite66 basestrap /mnt base base-devel linux linux-firmware 66 elogind-suite66 #dinit basestrap /mnt base base-devel linux linux-firmware dinit elogind-dinit
Preparing fstab
:
Next generate the fstab
file which defines how disk partitions and other file systems are mounted by the system. The -U
flag will use UUIDs or you could use the -L
switch to instead use partition labels.
fstabgen -U /mnt >> /mnt/etc/fstab
Now the next following commands need to be done from Artix’s chroot
tool.
artix-chroot /mnt
Configuring the system
Setting the system clock
While in the artix-chroot
shell, set the timezone, you’ll find it helpful to check out the contents of /usr/share/zoneinfo/
to find out the available regions.
#ln -sf /usr/share/zoneinfo/Region/City /etc/localtime # for example: ln -sf /usr/share/zoneinfo/America/Tijuana /etc/localtime
Next we run hwclock
to generate the /etc/adjtime, which if you run cat
it will give you a timestamp:
hwclock --systohc
Localization
We next need to install the default language(s) on the system, to see the available options edit the /etc/locale.gen
file.
vim /etc/locale.gen
In my case I’ll uncomment lines #178
and #179
, for US English.

Next run the following command to generate your locales.
locale-gen
Finally create the /etc/locale.conf
file to create a system wide preference, just replaced LANG=
with your preferred locale.
touch /etc/locale.conf && echo 'LANG="en_US.UTF-8"' > /etc/locale.conf
Installing the Boot Loader
We now must install grub and os-prober
(tool for detecting other installed operating systems, this is optional if on a vm). Following that, run the appropriate grub-install
command, (if I was on my desktop I’d use the one for UEFI. Finally we will run the grub-mkconfig
command to generate the correct boot entries in grub.
pacman -S grub os-prober efibootmgr #run ONLY 1 of these grub-install cmds NOT BOTH. #FOR BIOS grub-install --recheck /dev/vda #for UEFI grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB #generate the grub file grub-mkconfig -o /boot/grub/grub.cfg

You can safely ignore the warning messages regarding os-prober
for now.
Creating our user
First run passwd
to set the root password, then create and configure a new user and add them to the wheel
group to give them sudo
privileges :
# set root pw passwd # add new user and set their password useradd -m linuxman passwd linuxman usermod -aG wheel linuxman
This next step is optional as it is just a quality of life setting. Visit the /etc/sudoers
file to uncomment line #82, to allow any user that is part of the wheel group able to execute any command or uncomment line #85 to execute any sudo
command without having to enter a password, but this results in a much less secure system so proceed with caution.
If using vim, exit with
:wq!
to save a read only file, or with sudo privileges if you get an error saving your edits.
vim /etc/sudoers

Network configuration
Next we need to create the hostname file and enter your desired hostname.
vim /etc/hostname
Then add matching entries to the /etc/hosts
:
vim /etc/hosts # enter this 127.0.0.1 localhost ::1 localhost 127.0.0.1 myhostname.localdomain localhost
If you also chose to install openrc
you must add your hostname to /etc/conf.d/hostname
too:
vim /etc/conf.d/hostname hostname='myhostname'
And install a network manager and a DHCP client. Failing to do so will result in a internet connection failure on reboot.
pacman -S networkmanager networkmanager-openrc #or respective oen for your init pacman -S dhcpcd # or dhclient
With that done, logout of the chroot
shell and reboot
. Congratulations you’ve just installed Artix!

Conclusion
If you’ve been following along on a virtual machine, here is where I recommend creating a snapshot so you can easily go back to a fresh Artix install in case something goes sideways installing a window manager or whatever. I also heavily recommend running this process a few times as needed to get comfortable with it, before you try installing it on any actual hardware. Post-installation set will need to be done, like setting up a window/display manager, etc, but that is a post for another day. Go get yourself a treat and pat yourself on the back because that was pretty involved! Way more in-depth and terminal heavy than any other distro installation I’ve ever done, for sure. Now excuse me, I think I need to go lay down…