Installing GuixSD… the Borg way

We are the Guix. Your biological and technological distinctiveness will
be added to our own. Resistance is futile.

This post briefly describes how to install GuixSD on Debian 8, the Borg way.
Please be aware that this post is a draft as the system I am using is still building. Currently this means what exactly you need to remove from /etc/ must be documented otherwise you boot into a non-functional system with mounting issues.

  • Captain obvious has a message before we start: make sure that your hardware is supported by linux-libre. Read this for more info. If not, other procedures might apply for getting specific parts to work, which will not be covered here.
  • Get the net-boot image for your architecture (obviously one that is supported by GuixSD: i686, x86_64, armv8 is currently work in progress and not done) from
    The obvious steps apply, verify the signature etc. lessons learned: Due to e2fsprogs 1.42 in Guix, you will encounter problems when you use the guided setup of Debian 9 (testing), where they already use 1.43. We are working on rolling out the update.
  • Fast-forward through the install process: select non-graphical setup, timezone, etc etc setup root account, setup user account, deselect everything except ssh service and the basic applications needed, do the grub thing, reboot. Nothing which should be documented in detail.
  • ssh into the machine with the user account, su.
  • Follow the Guix Binary Installation. Use instead of ftp:// if you want to.
  • Start the guix-daemon if not already running, authorize for binary substitutes. These steps are still covered by the installation document.
  • guix pull (update guix and all things attached and included)
  • Write your config.scm for your system. This assumes you read the Guix documentation. Obviously you want to include the (openssh-service). There are example system files included, refer to the documentation of Guix for their location.
  • Remove the leftovers from the Debian installation. Read the bottom part of what wingo wrote in this email.
    Basically you do:

    • # mv /etc /etc-old; mkdir /etc; cp /etc-old/{passwd,group,shadow,gshadow,mtab} /etc/; rm /etc/mtab; cp -R /etc-old/guix /etc/; cd /etc; ln -s /proc/self/mounts mtab

    and then you run guix system reconfigure config.scm

  • make sure if this is a server somewhere remote, that you copy over your pubkey at least into /root/.ssh/authorized_keys. Reason: root has no password set by default in GuixSD, created users have no password set by default (you need to set them with “passwd”). This is with the assumption that it works like this in theory. With this first run I was able to fix things using the keyboard connected to the debian 8 -> GuixSD machine.
  • Reboot.
  • reconnect