Installation
Requirements
- UEFI
- LVM on LUKS with unencrypted
/boot
Disk partitioning
Use cfdisk to create the following partition layout.
| Partition Type | Size |
|---|---|
| EFI | +600M |
| boot | +900M |
| Linux | Remaining space |
Format the unencrypted partitions:
mkfs.vfat /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2Create LUKS on the remaining partition:
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup luksOpen /dev/nvme0n1p3 cryptCreate a LVM2 volume group for /dev/nvme0n1p3, which is located at /dev/mapper/crypt:
vgcreate chimera /dev/mapper/cryptCreate logical volumes in the volume group:
lvcreate --name swap -L 8G chimera
lvcreate --name root -l 100%FREE chimeraCreate the filesystems for the logical volumes:
mkfs.ext4 /dev/chimera/root
mkswap /dev/chimera/swapCreate mount points for the chroot and mount the filesystems:
mkdir /media/root
mount /dev/chimera/root /media/root
mkdir /media/root/boot
mount /dev/nvme0n1p2 /media/root/boot
mkdir /media/root/boot/efi
mount /dev/nvme0n1p1 /media/root/boot/efiBootstrap
Chimera-bootstrap and chroot
chimera-bootstrap /media/root
chimera-chroot /media/rootUpdate the system:
apk update
apk upgrade --availableInstall kernel, cryptsetup, and lvm2 packages:
apk add linux-stable cryptsetup-scripts lvm2Fstab
genfstab / >> /etc/fstabCrypttab
echo "crypt /dev/disk/by-uuid/$(blkid -s UUID -o value /dev/nvme0n1p3) none luks" > /etc/crypttabInitramfs refresh
update-initramfs -c -k allGRUB
apk add grub-x86_64-efi
grub-install --efi-directory=/boot/efi --target=x86_64-efiPost-installation
passwd root
apk add zsh bash
useradd -c "Jeffrey Serio" -m -s /usr/bin/zsh -U jas
passwd jasAdd the following lines to /etc/doas.conf:
# Give jas access
permit nopass jasSet hostname, timezone, and hwclock:
echo "falinesti" > /etc/hostname
ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
echo localtime > /etc/hwclockXorg and Xfce4
apk add xserver-xorg xfce4Reboot the machine.
Post-reboot
Login as jas. Run startxfce4. Connect to the internet via NetworkManager.
Ensure wireplumber and pipewire-pulse are enabled:
dinitctl enable wireplumber
dinitctl start wireplumber
dinitctl enable pipewire-pulse
dinitctl start pipewire-pulseInstall CPU microcode:
doas apk add ucode-intel
doas update-initramfs -c -k allInstall other packages
doas apk add chrony
doas dinitctl enable chrony
doas apk add ...