GNU Hurd is a multiserver microkernel, it’s a part of the GNU project to make an entire free Operating System. Even if the first release is from 1990, the project is still in progress. The Debian project has a variant who is using this Kernel, instead of Linux. Unfortunately it’s difficult to run it on real hardware (especially the GUI), so we will install it in VirtualBox.
Before starting
Get the ISO image
Download the debian-sid-hurd-i386 iso from the Debian website. Take the CD or the DVD one, but don’t take the NETINST version, the installation has a high risk of failure.
VirtualBox configuration
Create a new virtual machine, select Linux 2.4 (32-bit) as Operating system and attribute it minimum 1GB of memory (2GB recommended). Create a new virtual hard disk with minimum 20GB. Start the VM and mount your ISO file in the virtual optical drive.

Installation
The installation process is very similar to a Classic Debian installation. There is just one trap, be careful with the instructions.
- Choose Pseudo-graphical install
- Pick your Language
- Select your Country
- Choose your Locales
- Select your Keymap
The network will configure its self automatically. If you get problems with the auto configuration, try to change the type of Network card in VirtualBox.
- Define the Hostname
- Don’t enter anything as domain if you don’t know what your are doing
- Define your root password
- Create an user and define its password
My advice for the disk configuration is to select the automatic one with everything in the same partition. If you plan to use Hurd for more than testing, you should consider a separated Home partition for more safety. Validate to go to the next steps.
We arrive to the tricky part. The system base system will be installed, you will maybe see error about /hurd/random, it’s normal. Choose to DON’T use a network mirror, else the installation will fail. Unfortunately, Hurd has been moved to the Debian ports, so sometimes packages are broken.
After the package survey question, you will arrive to the Software selection. Press enter to keep the default choices. Install the Grub boot loader to the master boot record and select /dev/hd0 for the installation. The installation is now complete, remove the disk and your Virtual Machine will restart.
Customization
Redirect a port
In your machine’s settings. Select Network, Advanced, Port forwarding and enter the following redirection.
- Protocol: TCP
- Host IP: 127.0.0.1
- Host Port: 10022
- Guest IP: 10.0.2.15
- Guest Port: 22

You will now be able to connect from your host to your VM using SSH.
ssh youruser@127.0.0.1 -p 10022
Sources
Edit as root /etc/apt/sources.list
deb http://ftp.ports.debian.org/debian-ports unstable main
deb http://ftp.ports.debian.org/debian-ports unreleased main
#Uncomment to add the sources
#deb-src http://ftp.debian.org/debian unstable main contrib non-free
#deb-src http://mirrors.kernel.org/debian unstable main contrib non-free
#deb-src http://ftp.debian-ports.org/debian unreleased main
To update your system
apt update && apt upgrade -y
System improvements
By default, some binaries are missing from the PATH. Add at the end of your /root/.bashrc file
export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
Create a script called fixdisk in /usr/local/sbin, you will call it to fix your disk if your system is crashed. Adapt it if you have more than one partition on your disks.
fsck -y -f /dev/hd0s1
/sbin/reboot-hurd
Make it executable
chmod +x /usr/local/sbin/fixdisk
Conclusion
Our system is now installed and ready to be used. In a future article we will see how to install a graphical interface or some server components.
