Neal Walfield's [guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html) is excellent and is available in several formats. This is the guide that the Hurd community always references first. To install under the Bochs x86 emulator, Alfred M Szmidt wrote a [great guide](http://ftp.walfield.org/pub/people/ams/hurd/creating_bochs_image_for_gnu.txt). The GNU official [installation page](http://www.gnu.org/software/hurd/install.html) is the canonical reference. [[InstallationExperiences]] Items not mentioned elsewhere include: * When preparing the hurd partition, you may wish to add a -b 4096 option to mkfs.ext2 (the default is chosen depending on the size of the partition, and the support for block size 1024 is buggy). * fdisk is most commonly used under Debian GNU/Linux for creating partitions. fdisk will work just fine. Neal's guide chooses to recommend [GNU parted](http://www.gnu.org/software/parted) instead. * **IMPORTANT!** Remember when first booting into your freshly un-tarred distribution, you must pass the `-s` option to `/boot/gnumach.gz`. Failure to do so means that you won't get single-user mode. * **IMPORTANT2!** Add the --readonly flag to the file system server in your Grub menu.lst file. This is a work-around to get fsck working properly. Don't forget, everything must be on ONE line! Like this * module /hurd/ext2fs.static --readonly --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) * The current (24 May 2002) system install image is once again in its proper location . The old staging server image at is now deprecated. * a recommended `/etc/apt/sources.list`:
deb unstable main
deb unstable main
deb-src unstable main
* The default editor is now `nano`, not `ae`. * Some packages like `libc6-dev` are old yet depended on by other packages not yet updated. In this particular case, I believe the new dependency is `libc0.3-dev`. However these dependencies may cause problems for apt. To circumvent these problems there are two general solutions. * The first is to change the dependencies that apt looks at in the `/var/lib/apt/lists/` directory. For example, you could modify libc0.3 to provide the missing `libc6-dev` package. * Installing the `equivs` package and creating a dummy package is the second alternative. This will satisfy the apt dependency in a cleaner manner. * If you are following Neal's installation guide, he presents a sample `/etc/fstab`: > # > /dev/hd2s1 / ext2 rw 0 1 > /dev/hd2s2 /home ext2 rw 0 2 > /dev/hd2s3 none swap sw 0 0 > > When you first boot, your > > `/home` > > directory will > > _not_ > > be auto-mounted. You must set a passive translator on that node to access that partition. The correct syntax for this is: > >
> > `settrans -p /home /hurd/ext2fs /dev/hd2s2` * After you install, you'll want to do several _important_ things: * Run `passwd` to give the root user a password. By default, root does not have one. * Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately. * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`:
`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'` * Bring your system up to par by running: `apt-get update && apt-get dist-upgrade` * Install these extremely useful packages * `libstdc++4` -- Some packages require version 4 and assume that it will be installed as part of the standard configuration. * `dialog` -- Debconf uses this for pretty text display. * `libterm-readline-gnu-perl` -- _Ibid_. * `screen` -- A terminal multiplexer that is important because the Hurd does not yet have virtual consoles. * There are some extremely useful 'apt' tricks that can be used to get packages when using Debian GNU/Linux (possibly others) for installation on the Hurd. The steps are covered in the file /usr/share/doc/apt/offline\* which has been used by several Hurd developers successfully. * Edit your `/etc/inetd.conf` and comment out all the services you don't need. Services that probably don't need to be running are `ftp`, `telnet`, `shell`, `login`, and `exec`. -- [[Main/SimonLaw]] - 29 May 2002