archinstall
is a guided/automated ArchLinux
installer.
This repository contains scripts and configuration that I use with archinstall
to set up ArchLinux
on desktop or
server.
-
Boot from
ArchLinux
ISO -
Install
git
andarchinstall
. You can also use the latest version ofarchinstall
by cloning it.
pacman -Sy archinstall git
pacman -Sy git
git clone https://github.com/archlinux/archinstall
- Clone
dotfiles
repository:
git clone https://github.com/1995parham/dotfiles
cd dotfiles/archinstall
-
Partitioning using
fstab
. (please remember to create boot partition with EFI System label). You can also skip this step and then do it inarchinstall
TUI. -
Create Filesystem using e.g.
mkfs.fat -F32
,mkfs.btrfs
. Again you can skip this step and then do it inarchinstall
TUI. -
Enable NTP. It is a required step because incorrect time may cause issue with HTTPS mirrors.
datetimectl set-ntp true
- Ignite the installation. It first shows an interactive menu in which you can set up the disk layout, disk encryption, user(s) and hostname (read more).
cd archinstall/archinstall && python __main__.py --config desktop.json # Desktop installation
cd archinstall/archinstall && python __main__.py --config server.json # Server installation
archinstall --config desktop.json # Desktop installation
archinstall --config server.json # Server installation
On Arch Linux, Sway can get access to your seat using either
systemd-logind(8)
andpolkit
seatd
, which will be installed alongside Sway as a dependency ofwlroots
.
If polkit
is already installed on your system, Sway should automatically get access to your seat.
Alternatively, if polkit
is not installed on your system, and you want to use seatd
instead,
add yourself to the seat
user group and enable/start seatd.service
, re-log.
BTRFS sub-volumes are awesome, and you can use the following layout (coming from Ubuntu and Fedora):
Name | Mount Point |
---|---|
@ | / |
@home | /home |
@log | /var/log |
@pkg | /var/cache/pacman/pkg |
@.snapshots | /.snapshots |
@images | /var/lib/libvirt/images |
Please note that, you need to set the wipe flag of the BTRFS partition to true for sub-volume creation to work.
Encrypting an entire system Fixed
In release 2023.04.01 disk encryption (read more)
leads to invalid boot configuration, and you need to mount root
directory manually in initramfs
e.g.:
cryptsetup open /dev/sda2 root
mount /dev/mapper/root /mnt
For fixing it you must change the loader configuration in /boot/loader/entries/
as follows:
-
The encrypted disk
PARTUUID
is correct, so you may not change it, or you can replace it with your partition UUID (e.g.lsblk -dno UUID /dev/nvme0n1p2
) -
The root disk
PARTUUID
is not correct (this is the actual problem) and you need to replace it with your decrypted disk UUID (e.g.lsblk -dno UUID /dev/mapper/luksdev
)
This bug causes issue in user creation and systemd-boot
installation. During
the fix procedure you cannot do anything, but after fix you can upgrade systemd
on both ISO
and installation (using testing repositories) and have successful installation.