[syslinux] memdisk : booting OpenBSD and NetBSD

Benjamin Pineau ben at zouh.org
Mon Apr 5 14:20:05 PDT 2004


hi there.

I'm trying to boot several OSes floppy images from a cdrom via memdisk.

Actually, Linux and FreeBSD boots fine, but, while i'm using the same method,
I couldn't get into booting netbsd nor openbsd.

The boot process seems to hang up, in those two cases, when the second stage
native bootloader try to load the kernel (i'm not absolutely sure about this).
The native first stage bootloader works fine in both case.

So I supect a bug in memdisk (well, something that makes it differs from a bios
in the os viewpoint, shouldn't happen...).

I use the standard netbsd's 'rescue-tiny.fs' floppy image (you can try it at:
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/i386/installation/floppy/rescue-tiny.fs)
and the standard openbsd's 'floppy35.fs' image from
ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386/floppy35.fs
Both boots fine when they're loaded straigth from the bios (eg: when installed
on a floppy without syslinux/memdisk and booted from there). Tried with two
differents bios. I also tried with different floppy and hard drive images.

Here, more infos:
------------- menu.lst -------------------
#I use grub to load memdisk
title FreeBSD rescue disk (works fine)
kernel /boot/memdisk
initrd=/boot/boot.flp
title OpenBSD rescue disk (not yet functional)
kernel /boot/memdisk
initrd=/boot/floppy35.fs
title NetBSD rescue disk (not yet functional)
kernel /boot/memdisk
initrd=/boot/rescue-tiny.fs
-------------------------------------------
note: following outputs copied by hand, hope without errors

------------ sample output, netbsd: -------
[...]
INT 13 08: Success, count = 2 BPT = 0000:0000
old: int13 = ec6a40bd int15 = f000f859
new: int13 = 9f000008 int15 = 9f00027c
Loading boot sectore... booting...

 >> NetBSD/i386 BIOS Boot, Revision 2.13
 >> (autobuild at tgm.netbsd.org, Tue Feb 10 21:25:10 UTC 2004)
 >> Memory: 636/127776 k
 Press return to boot now, any other key for boot menu
 booting hd0a:netbsd - starting in 0
 978496-
-------------------------------------------

The 'starting in 0' is just a counter that decrease from 5 to 0 seconds.
The '978496' is a sort of counter (dunno what) that grows when (i thing) 
the NetBSD  kernel is loaded. Everything freezes here, I don't know if
it's while loading the kernel in memory, or while trying to amorce it or 
something else...


-------------------------------------------
- sample output, openbsd:
[...]
command line: mem=131072K
Disk is floppy, 1440 k, C/H/S = 80/2/18 
Total size needed = 1509 bytes, allocating 2k
Old dos memory at 0x9f800 (map says 0x9f800), loading at 0x9f000
1588: 0xffff 15E801: 0x3c00 0x06d8
INT 13 08: Success, count = 2 BPT = f000:85d0
old: int13 = ec6a40bd int15 = f000f859
new: int13 = 9f000008 int15 = 9f00027c
Loading boot sector... booting...

  Loading;...........
  probing: pc0 com0 com1 apm mem[632k 124M 1024k a20=on]
  disk: fd0 fd1 hd0+*
  >> OpenBSD/i386 BOOT 2.06
  boot> 
  booting fd0a:/bsd: 3281040_

-------------------------------------------

Then it freezes (the ' booting fd0a:/bsd' indicates that we are actually
loading the openbsd kernel). In normal case, the output should seems like:
this: "booting hd0a:/bsd 4464500+838332 [58+204240+181750]=0x56cfd0".

Running on vmware, I got this at this point (only with openbsd, not netbsd):

*** Virtual machine kernel stack fault (hardware reset) ***
The virtual machine just suffered a stack fault in kernel mode. On a real
computer, this would amount to a reset of the processor. It can be caused by
an incorrect configuration of the virtual machine, a bug in the operating
system, or a problem in the VMware Workstation software. Press OK to reboot
virtual machine or Cancel to shut it down.


The openbsd boot process is described here:
http://www.openbsd.org/faq/faq14.html#Boot386
and there:
http://www.openbsd.org/cgi-bin/man.cgi?query=boot&sektion=8&arch=i386&apropos=0&manpath=OpenBSD+Current

Does anyone there have an idea about booting one of thoses os from memdisk ?
or an idea of the reason that make it so difficult ?






More information about the Syslinux mailing list