See also after install instructions, and other FAQ.
In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be quite long. This is apparently due to poor efficiency of the virtualizer, not Mach. There is no such issue on real hardware or using qemu/kvm.
This isssue has been fixed in the Debian hurd / libc0.3 packages as of 2010-11. Retire this item sometime after 2011.
Privilege seperation does not work with Hurd currently. You need to explicitely
set PrivilegeSeparation to no in /etc/ssh/sshd_options, just commenting out
the entry will not work as it is on by default. Also make sure you have
/dev/random, see below.
GNU Mach does not support SATA disk drives (/dev/sda etc. in GNU/Linux) natively, so using device:sd0s1 will not work, sd* devices are for SCSI drives only. The only way to get those drives to work is to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc.
You can add a shell script umount so that apt can automatically unmount cdroms.
#!/bin/sh
# Filename: /usr/bin/umount
settrans -fg "$@"
Give executable permission to the script.
# chmod +x /usr/bin/umount
In /etc/fstab add a trailing / after cdrom like /cdrom/ since apt uses a
trailing /.
Please try to reproduce bugs which are not obviously Hurd-specific on Debian GNU/Linux and then file them there.
If you find a genuine issue in Debian GNU/Hurd, please file it in our Alioth bug tracker at http://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse If you find a bug in the Hurd or GNU Mach themselves, either file a bug against the respective Debian packages, or directly at http://savannah.gnu.org/bugs/?group=hurd
If you want to use the apt-get source facility, make sure that
/etc/apt/sources.list contains a line like
deb-src http://ftp.de.debian.org/debian unstable main
... replacing de with your homeland's code.
In order to debug translators and being able to step into glibc
during it, you need the hurd-dbg and libc0.3-dbg packages installed. If you need to debug the initialization of the translator,
start the translator like settrans -P /foo /usr/bin/env
LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs. The -P option will make it
pause and you will be able to attach GDB to the process.
To get debugging information for glibc, you need to install the
libc0.3-dbg package. At the place GDB looks for debugging
symbols by default (/usr/lib/debug/lib/), Debian's libc0.3-dbg stores only
the frame unwind information used for backtracing. If you want to step into
glibc while debugging, you need to add LD_LIBRARY_PATH=/usr/lib/debug to
debugged program's environment (set env VAR value from the GDB command line).
If that still does not work, try LD_PRELOAD=/usr/lib/debug/libc.so.0.3
instead.
If ps hangs, try ps -M which might still work by not getting detailed
information from processes.
You need to run dpkg-reconfigure x11-common and select Anybody for
starting X as there is no way to detect console users currently.
Run vmstat to see memory and swap usage.
The 2 GiB limit has been removed in Debian GNU/Hurd.
There is no /etc/mtab (due to dynamic translator startup, its content is hard
to define actually, see
the mtab GSoC project idea),
so just running df will yield the following error.
df: cannot read table of mounted file systems
Pass df a path like df / or df ./ to see the disk usage of that particular
file system.
Edit /etc/default/hurd-console to configure the Hurd console and enable it on
bootup. See console for further information about the Hurd console.
There is no random device by default as no secure implementation has been
finished yet. An easy (but very insecure) work-around is to copy a binary file
like /bin/bash to /dev/random and /dev/urandom. A slightly more secure
alternative is installing the random-egd from the debian-ports repository.
The kernel logs are written to /dev/klog. Run cat /dev/klog > foo as root
and hit ctrl+c after a few seconds to catch the logs. You can do this only
once and do not do this in single-user mode (where ctrl+c does not work).
If you get the error bad hypermeta data when trying to mount an ext3
partition from GNU/Linux, that is usually because the file system has not been
unmounted cleanly (maybe GNU/Linux got suspended to disk) and the Hurd cannot
mount it as ext2 without checking. Either boot back into GNU/Linux and unmount
it or you can try to run fsck.ext3 from GNU/Hurd directly.
Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots
of memory. Newer versions of the Debian gnumach package will limit themselves
to around 1 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS
limit between kernelland and userland in i386/include/mach/i386/vm_param.h.
If you have an older version, or still experience problems with vmstat (see
above) reported much less memory than you have, the best is to limit the memory
it can see via GRUB's upppermem feature. Add uppermem 786432 to GRUB's Hurd
entry in menu.lst.
