All you need is the qemu package and virtualization enabled in your bios or uefi for this guide. This guide is for those who want to run GNU Guix/Hurd without using the Guix package manager or system.
- Note GNU Guix is a very hungry system because of its reproducible features.
- Don’t expect this guide to work perfectly.
-
Download the latest Guix System image from https://guix.gnu.org/en/download/latest/.
-
Convert the downloaded QCOW2 image into a raw disk image using qemu-img:
qemu-img convert -O raw /path/to/source.qcow2 /path/to/output.img
(Replace /path/to/ with the desired directory paths on your system.)
- Resize the image to the amount of disk space as desired. For example:
qemu-img resize hurd-system.img 40G
-
Mount the image and resize the main partition as desired. The gnome disks tool can be used for this process, or any kind of partitioning software that supports raw images. Resize the main partition to, as an example 30gb, and write your changes.
-
Convert the image back to QCOW2 to save space on your computer(You wouldn’t want a 40gb file laying around, would you?)
qemu-img convert -O qcow2 /path/to/source.img /path/to/output.qcow2
(Replace /path/to/ with the desired directory paths on your system.)
- Virtualize it in qemu. Since this image is 32bit, we will use
qemu-system-i386. In addition we will use 8G as 8gb of memory, you can use 4G for 4gb of memory, but it will be much slower.
qemu-system-i386 -m 8G -smp 4 -enable-kvm -drive file=hurdt.qcow2,format=qcow2,cache=writeback -net nic,model=rtl8139 -net user
- Your setup is complete, but I will include this as a bonus step. When you are at the login page just do
login rootand enter with no password.
Edit: Do not try to guix pull. During my tests, it was extremely slow, and the system crashes when you are compiling something big like gcc. Even if you set the max jobs to 1, it still crashed in one of my tests.
GNU Guix integrates well with the Hurd so you can find documentation here
Note, when I did this setup, running
guix pullwas slow, but I think this is an issue with Guix and not specifically the GNU Hurd variant.Edit: The GNU Hurd is not fast in virtual workspaces because of this, but they are now working on it.
If anyone is reading this guide, and noticed something is off or maybe there is a better way to do what is described. Please share your criticism. Just remember that this guide is for those who don’t have access to the GNU guix package manager or system.

