Skip to content

This document is a WORK IN PROGRESS.
This is just a quick personal cheat sheet: treat its contents with caution!


This document does not replace the official Artix installation guide


Artix installation

Artix Linux is a rolling release distribution, based on Arch Linux. It uses openrc, runit, s6 or dinit as init (note that the 66 init system, also called suite66, has been retired for lack of maintainership).

Note

In this cheat sheet, one or multiple Linux distributions (distros) can already be installed on other partitions: they will be preserved and still available through grub.

Note

In this cheat sheet, the installation process is compatible with a virtual machine (VM) or a container. In this case, you might be interested in those cheat sheets:

Note

In this cheat sheet, UEFI won't be used as a bootloader, like described here: https://wiki.archlinux.org/index.php/EFISTUB, the bootloader used here is GRUB2 (or grub for short) but it could be anything else you want.

Reference(s)

Table of contents


Prerequisites

  • Download the latest Artix ISO image (depending on what init system you want) here: https://eu-mirror.artixlinux.org/iso/ (and download the associated .sig file)

  • Check the ISO image with GnuPG thanks to the PGP signature (.sig file):

    $ gpg --keyserver-options auto-key-retrieve --verify artix-version-x86_64.iso.sig
    

  • Follow the common prerequisites steps.

Official documentations for the rest of the installation


Partitioning, formatting and mounting


System install

base, kernel, utilities and fstab

  • Use the basestrap script to install the base (and optionally the base-devel) package group(s) and your preferred init (currently available: openrc, runit, s6, and dinit):

    # basestrap /mnt/artix base base-devel openrc
    
    # basestrap /mnt/artix base base-devel runit elogind-runit
    
    # basestrap /mnt/artix base base-devel s6 elogind-s6
    
    # basestrap /mnt/artix base base-devel dinit elogind-dinit
    
  • Use the basestrap script to install the Linux kernel:

    • ... with the following command if you don't mind binary-blob:

      # basestrap /mnt/artix linux linux-firmware
      

    • ... or with the following command if you don't want any binary-blob:

      # basestrap /mnt/artix linux
      

    • ... or with the following command if you prefer a LTS kernel without binary-blob:

      # basestrap /mnt/artix linux-lts
      

    • ... or with the following command if you prefer a LTS kernel and binary-blob:

      # basestrap /mnt/artix linux-lts linux-firmware
      

  • Use the basestrap script to optionally install other utility packages, e.g.:

    # basestrap /mnt/artix vi man-db htop neovim sudo
    

  • Generate a /etc/fstab file with fstabgen (use -U or -L to define by UUID or labels, respectively):

    # fstabgen -U /mnt/artix >> /mnt/artix/etc/fstab # you can use `genfstab -L ...` instead, for labels instead of UUID
    

    Check the resulting /mnt/artix/etc/fstab file, and edit it in case of errors.

    # blkid # ifentify labels and UUIDs
    # vi /mnt/artix/etc/fstab # edit and verify (this is just an example)
        > # Static information about the filesystems.
        > # See fstab(5) for details.
        >
        > # e.g. below example with the "noatime" option optimisation (no access date
        > # update) and "discard" option for ssd optimisation (trim functionnalities)
        >
        > # <fs>                                        <mountpoint>    <type>      <opts>                                  <dump/pass>
        >
        > UUID=ea530bdb-1116-4618-9247-e60663fde8bd     /               ext4        defaults,noatime,discard                0 1
        > UUID=BE08-4CD2                                /boot           vfat        defaults,noatime                        0 0
        > UUID=ab11cde3-fc5c-4d2f-be7c-5665e13ab272     none            swap        sw                                      0 0
        > #UUID=E68614DD8614B053                        /media/data     ntfs-3g     uid=1001,gid=1001,dmask=022,fmask=133   0 2
        > #UUID=0c6a4e1c-ba2e-4acb-bc47-01165a7a8d91    /media/tera     ext4        defaults,noatime                        0 2
    
    See https://wiki.archlinux.org/title/Fstab for more details.

chroot and system configuration

  • chroot:
    # artix-chroot /mnt/artix
    $ export PS1="[chroot] $PS1"
    

Tip

Now that the new Artix system is entered, don't forget to setup a proxy if needed,
e.g. $ export http_proxy="http://192.168.1.100:4242"
and $ export https_proxy="http://192.168.1.100:4242".
⚠️ Remember that with a proxy: ping may not work! ⚠️

Note

From now on, all actions will be performed in the new Artix environment.

  • Time zone config:

    [chroot]# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime # Set the time zone
    
    See this related Arch Wiki page for more details.

  • Hardware clock config (not needed on a VM):

    [chroot]# vi /etc/conf.d/hwclock # make sure that the clock is indeed UTC
        > clock="UTC"
    [chroot]# hwclock --show
    [chroot]# hwclock --systohc # generate /etc/adjtime
    
    See this related Arch Wiki page for more details

  • Localization config:

    [chroot]# vi /etc/locale.gen # e.g. for US and FR:
        > en_US ISO-8860-1
        > en_US.UTF-8 UTF-8
        > fr_FR ISO-8859-1
        > fr_FR@euro ISO-8859-15
        > fr_FR.UTF-8 UTF-8
    [chroot]# locale-gen
    

    Create the /etc/locale.conf file, and set the LANG variable accordingly:

    [chroot]# vi /etc/locale.conf # e.g.:
        > export LANG="en_US.UTF-8"
        > export LC_COLLATE="C"
    

    If you set the console keyboard layout, make the changes persistent by creating the /etc/vconsole.conf file:

    [chroot]# vi /etc/vconsole.conf
        > KEYMAP=fr
    

    See this related Arch Wiki page for more details.

  • Users config:

    [chroot]# passwd # set root password
    [chroot]# useradd -m user # add user
    [chroot]# passwd user # set user password
    

  • Host name config:

    [chroot]# vi /etc/hostname
        > whatever-name-you-want
    

  • Network config (see network managers), e.g. with NetworkManager:

    [chroot]# pacman -S networkmanager
    [chroot]# systemctl enable NetworkManager
    

  • Optional SSH config: see ssh cheat sheet


Bootloader configuration with GRUB


Reboot

Exit, umount and reboot:

[chroot]# exit # quit chroot
# umount -R /mnt/artix
# reboot # if in a VM, you might `poweroff` instead and run your VM with different launch options


Post installation

  • Read the common post installation steps to follow.

  • OPTIONALLY enable arch repositories:

    $ sudo pacman -S artix-archlinux-support
    $ sudo pacman-key --populate archlinux
    $ sudo pacman -S archlinux-mirrorlist
    $ sudo vi /etc/pacman.conf
        > ...
        > # ARCHLINUX
        > [extra]
        > Include = /etc/pacman.d/mirrorlist-arch
        >
        > [community]
        > Include = /etc/pacman.d/mirrorlist-arch
        >
        > [multilib]
        > Include = /etc/pacman.d/mirrorlist-arch
    $ sudo pacman -Sy
    

  • OPTIONALLY enable universe repository:

    $ sudo vi /etc/pacman.conf
      > ...
      > # AUR
      > [universe]
      > Server = https://universe.artixlinux.org/$arch
    $ sudo pacman -Sy
    

Optional kernel tweaking

You might want to have the choice to boot either on the latest kernel or the LTS kernel. In this case, install the following kernel related packages:

# pacman -S linux linux-lts linux-lts-headers linux-lts-docs

Then make sure /boot is mounted:

$ df -aTh      # check mounted devices
$ ls -la /boot # and make sure /boot is mounted

Finally, update your grub configuration file:

# grub-mkconfig -o /boot/grub/grub.cfg # update /boot/grub/grub.conf


If this cheat sheet has been useful to you, then please consider leaving a star here.