This will eventually become an installation guide for the Debian crosshurd package (GNU/Hurd cross install only). However, for the time being I am setting it up as a diet version of Hurd/InstalNotes, adapted for crosshurd, adapted for me.
-- [[Main/JoachimNilsson]] - 14 Mar 2004
## Reserving partitions
You need a swap and root partition, much like any other UNIX system. Two things to remember:
1. Root partition still <2.0 GiB
2. Root partition: mke2fs -o hurd -b 4096 -L Carlsberg
From a Debian GNU/Linux installation preparing install of GNU/Hurd on /dev/hdb2 reusing the Linux swap on /dev/hdb4.
# mke2fs -o hurd -b 4096 -L Carlsberg /dev/hdb2
"Carlsberg. Probably the best beer in the world."
## Bootstrapping
After having installed the Debian crosshurd package you need to mount your newly created Hurd partition.
mkdir /gnu
mount /dev/hdb2 /gnu
Now, simply run the crosshurd program and follow the onscreen directions. **Do** select the usr symlink.
crosshurd
crosshurd burps a lot of unneeded information on screen and probably fails to install one or two files due to duplicates between GNU and Debian packages. Lets hope this mess is worked out some day.
## Rebooting
Before we reboot you must setup a Hurd entry in the menu.lst file of Grub. Do it like this and remember, **no trailing spaces**!
The first two runs (reboots) you must run the Hurd in single-user mode!
title GNU (kernel GNUmach 1.3)
root (hd1,1)
kernel /boot/gnumach.gz root=device:hd1s2 -s
module /hurd/ext2fs.static \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
--device-master-port=${device-port} \
--exec-server-task=${exec-task} \
-T typed ${root} $(task-create) $(task-resume)
module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
The notation of Grub, and of the Hurd, can be somewhat bisarre on first sight. Consult the [[InstallNotes]] document and the Grub manual for a thorough explanation.
N.B. the '-s' on the kernel line, it is "single user mode", which you need for the first two reboots.
OK, reboot now.
## First steps
Set TERM variable and run native-install script.
export TERM=mach
./native-install
At the end native-install wants you to reboot and run it again. Do so and remember to set the TERM variable as well.
After the second reboot and native-install run you can remove the '-s' in the kernel line above and boot GNU/Hurd as a normal user.
## Logging in
Finally, a complete bootstrapped GNU system.
login root
export TERM=mach
nano /etc/fstab
[add swap partition /dev/hd1s4]
nano /etc/ttys
[remove all hashes to enable the new Hurd Console]
settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.3 -g 192.168.1.1 -m 255.255.255.0
dselect
Now, do the old Debian thing of dancing with dselect for a couple of hours.
Reboot and start the new [[Console]]
login root
console -d vga -d pc_kbd -d generic_speaker /dev/vcs
Move around just like in Linux console, but with persistent scroll-back buffers for each console.
## References
* [[InstallNotes]]
* [[Network]]
* [[Console]]