I am working with multiboot module "mboot.c32". I have had luck using it to boot NetBSD and the Hurd kernel. The problem with booting the Hurd kernel is apparently connected to the extended syntax passed along to it by grub. Grub passes Hurd kernel approximately 4 files, some of which are modules, and another ten (or so) boot arguments, which correspond to those modules and kernel. The four files needed to boot the hurd kernel into an intramfs are apparently: 1) ld.so.1 2) initrd.gz 3) gnumach.gz and 4) ext2fs.static They are available at http://ftp.debian-ports.org/debian-cd/hurd-i386/current/ and the arguments to grub are as follows: multiboot /boot/kernel/gnumach.gz $options desktop=xfce module /boot/kernel/ext2fs.static ext2fs \ --multiboot-command-line='${kernel-command-line}' \ --host-priv-port='${host-port}' \ --device-master-port='${device-port}' \ --exec-server-task='${exec-task}' -T typed gunzip:device:rd0 \ '$(task-create)' '$(task-resume)' module /boot/kernel/ld.so.1 exec /hurd/exec '$(exec-task=task-create)' And apparently at least most of these arguments are necessary to get Hurd to boot. I don't have any idea if it is possible to pass that syntax into syslinux. The following formula is as close as i have gotten: rsync -a /usr/lib/syslinux ISO_root wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/ext2fs.static -O ISO_root/ext2fs.static<http://ftp.debian-ports.org/debian-cd/hurd-i386/current/ext2fs.static> wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/ld.so.1 -O ISO_root/ld.so.1<http://ftp.debian-ports.org/debian-cd/hurd-i386/current/ld.so.1> wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/initrd.gz -O ISO_root/initrd.gz<http://ftp.debian-ports.org/debian-cd/hurd-i386/current/initrd.gz> wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/gnumach.gz -O ISO_root/gnumach.gz<http://ftp.debian-ports.org/debian-cd/hurd-i386/current/gnumach.gz> cd ISO_root/ gunzip * cd .. cat > ISO_root/syslinux/isolinux.cfg << EOF UI menu.c32 label isolinuxtests KERNEL mboot.c32 APPEND /gnumach --- /initrd EOF genisoimage \ -o output.iso \ -no-emul-boot \ -boot-info-table \ -boot-load-size 4 \ -c syslinux/boot.cat \ -b syslinux/isolinux.bin \ ISO_root # test it (optional) kvm -m 1000 -cdrom output.iso If I try enough random combinations, I can get at least one of the needed modules to be loaded, as reported by the Hurd kernel. Using something like this, I am pretty sure at least this one module "ext2fs.static" gets loaded. cat > ISO_root/syslinux/isolinux.cfg << EOF UI menu.c32 label isolinuxtests KERNEL mboot.c32 APPEND /gnumach --- /initrd /ext2fs.static EOF But i have no idea how to pass that entire line along to hurd kernel, and get all of the modules, kernel, and initrd loaded at once. And the Hurd kernel developers are apparently mostly attached to doing this with grub ( which is larger than my entire operating systems usually). Sincerely thanks for you time. -dean