While many people call the GNU system GNU/Hurd this is not strictly true. The kernel is GNU Mach not the Hurd. The Hurd is a series of servers which run on top of the microkernel, GNU Mach. Both the Hurd and GNU Mach are part of the GNU project while the Linux kernel is an independent project.
Current Debian GNU/Hurd L1 series.
Only the first image has been released for this series.
A small mini image (debian-L1-hurd-i386-mini.iso) has been built which should be useful for those who want to install via a network.
gnu-2009-10-18.tar.gz (a tarball of the base GNU system) has been specially built for this set.
The current iso images are debian-L1-hurd-i386-DVDx.iso and debian-L1-hurd-i386-mini.iso. All of the binaries specific to a GNU system are found on this first image, and all the required, important and standard packages are found on the first image. So a basic GNU system can be installed using the first image.
These sites usually mirror the images, but check first.
The main site is http://ftp.debian-ports.org/debian-cd/ in France, and mirrors for these images are http://www.gtlib.gatech.edu/pub/gnuab/debian-cd/ in USA and ftp://ftp.duckcorp.org/hurdfr/hurd/ in France.
A search at http://www.filesearching.com/ for hurd-L could find a closer site.
Instructions for burning CDs from the images can be found in the Debian CD FAQ.
See this page for GNU/Hurd CD vendors. Look for "hurd" using your browser's search facility. http://www.copyleft.co.nz/ will definitely have the latest CDs (warning, that is me).
The potato Debian GNU/Linux installation CDs used the cross install method to install the base system. A ramdisk is created in memory and a mini GNU/Linux system installed into this disk. This mini system is used to partition and format drives, and to prepare the target machine for the main installation. The critical phase is to unpack a tarball with the essential base packages onto the drives of the target system. The new system is then rebooted using the packages unpacked onto the HDD. Further packages are then installed and configured to create the desired system.
As GNU also uses the cross install method, this meant that the scripts to build the GNU installation CDs could be adapted from the Debian GNU/Linux boot and CD scripts so that the GNU rather than the GNU/Linux tarball would be unpacked.
Installing a GNU system using a cd-rom set has several advantages.
The Hurd uses extensions to the ext2 file system, the call is
mke2fs -b 4096 -I 128 -o hurd /dev/[Hurd partition]
. The
installation CDs use this when creating Hurd partitions.
Hurd specific documentation is found in ./doc/hurd. hurd-install-guide and Cook-book are "must read" documents before you start.
Install the package grub-disk or grub-rescue-pc, they contain a GRUB floppy image. You can use "dd" if you are working in GNU/Linux or rawrite if you are working in MS.
Hurd uses different partition names to Linux, so be careful. IDE hard disks are numbered in order, beginning from hd0 for the primary master and its slave hd1, followed by the secondary master hd2 and its slave hd3. SCSI drives are also numbered in absolute order. They will always be sd0, sd1, and so on regardless of whether the two drives are SCSI id 4 and 5 or whatever. Experience has shown that CD-ROM drives can be tricky. More about this later.
Linux-style partitions are always called sn when using the Hurd, where n is the partition number, so the first partition on the first IDE drive will be hd0s1, the third partition on the second SCSI drive will be sd1s3, and so on.
GRUB1 has yet another partition naming system. It calls partitions (hdN,n), but this time the disk number and partition number are both zero indexed, and the disks run in order, all the IDE disks first, and the SCSI ones second. This time, the first partition on the first IDE drive will be (hd0,0). GRUB2 does the same, but the partition number is one indexed, so in that case it will be (hd0,1). To really cause a confusion, (hd1,2) could refer to the first SCSI drive if you only have one IDE drive, or it could refer to the second IDE drive. So it is important that you have worked out the various names of your partitions before you start.
Any of the methods of booting a Debian 3.0 beta (woody) CD will work, ie. from the CD, from MS and by any of the boot/root floppy images. A complete set of base floppies can created if there is no cdrom drive.
If you are going to copy the .deb packages onto the HDD then you will need to create other partitions, one for each CD. While parted is available for GNU/Hurd you may as well use this facility. About 500 Mb will be enough to start with for the main system. If you need to create another partition then you may find it easier to reboot the first CD and use the tools in the Linux ramdisk to do this.
The default setting of the GRUB image is if your GNU/Hurd partition
is "(hd0,0)" [GRUB1 nomenclature], "(hd0,1)" [GRUB2 nomenclature], and
"sd0s1" [GNU/Hurd], which being interpreted means the first partition on the
first HDD which is SCSI and there are no IDE drives. However, for the first
boots, you need to pass the -s
option to the GNU/Mach kernel
to boot into single user mode, and remove the --readonly option from the
ext2fs.static
command line.
Keep you hands off the keyboard until the boot process has completed.
"/boot/grub/menu.lst" or "/boot/grub/grub.cfg" on the GRUB floppy can be edited so your system will boot the way you want.
Eg "MAKEDEV hd2 hd0s2 hd0s3"
Add the HDD partitions, eg,
/dev/[Hurd partition name] none swap sw 0 0
/dev/[Hurd partition name] /CD1 ext2 rw 1 1
/dev/[GNU drive name] /cdrom iso9660fs ro,noauto 1 1
The Hurd uses the ext2 fs. "/CD1" is a suggested mount-point for the partition which contains the packages from debian-L1-hurd-i386-CD1. Swap can be shared with Linux.
"settrans -a /cdrom /hurd/iso9660fs /dev/[Hurd drive name]"
While this is the GNU way of doing it, "mount /cdrom" will also work.
This will install the required, important and standard packages.
This will install the X Window System.
If you are unfamiliar with these Debian tools, see "info apt" and "info dselect".
The cdrom drive is unmounted with "settrans -agf /cdrom"
The cdrom drive drawer should then be unlocked.
This is where this guide finishes and you start exploring. Enjoy the Hurd.
Comments about the CDs are welcome.
Philip Charles, philipc@debian.org