Skip to content
Scheme Emacs Lisp
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Guix Operating System Configuration

  • Boot from UEFI
  • The root partition is encrypted with LUKS

Install System

This configuration contains linux-nonfree kernel.

Forgive me Stallman for I have sinned.

Partition Disk

cfdisk /dev/sda
mkfs.fat /dev/sda1
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 root
mkfs.btrfs -L root /dev/mapper/root
mount /dev/mapper/root /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi

Create swap file on Btrfs

mkdir /mnt/var
truncate -s 0 /mnt/var/swapfile
chattr +C /mnt/var/swapfile
fallocate -l 8G /mnt/var/swapfile
chmod 600 /mnt/var/swapfile
mkswap /mnt/var/swapfile

Setup network

ip link set eth0 up
dhclient eth0
herd start ssh-daemon

Copy configuration file

cp -r guix-config /mnt/etc

Install a minimal Guix system

herd start cow-store /mnt
guix system init /mnt/etc/guix-config/meiyu/systems/minimal.scm /mnt


Reboot and log in to the new minimal Guix system.

Update guix

guix pull

Reconfigure to a full Guix system

Reconfigure the minimal system to a full Guix system.

export GUILE_LOAD_PATH=/etc/guix-config:$GUILE_LOAD_PATH
guix system reconfigure /etc/guix-config/meiyu/systems/captain.scm

Install Packages

export GUILE_LOAD_PATH=/etc/guix-config:$GUILE_LOAD_PATH
guix package -m captain-packages.scm
You can’t perform that action at this time.