[syslinux] BIOS bug? USB + "Missing operating system"

TJ ubuntu at tjworld.net
Fri Mar 27 06:39:32 PDT 2009


I've been diagnosing an issue where an 8GB Freecom Databar formatted
using Ubuntu usb-creator would fail to boot, reporting "Missing
operating system".
It was hard to read the message since the system would immediately
clear-screen as GRUB started from the hard disk.

I looked at syslinux's mbr/mbr.S and realised that the message
originated from the boot sector.

In an attempt to prevent GRUB clearing screen in case other messages
might be shown I removed the hard disk.

With the hard disk removed the system boots from the USB stick.

I tried changing the boot order in the Phoenix BIOS on the Sony Vaio
VGN-FE41Z but couldn't find any permutation that would work when the
hard disk is attached.

This makes me wonder if the drive number passed by the BIOS to the MBR
is wrong, meaning syslinux ends up requesting the file-system boot
sector from the wrong device, or that the correct number is provided
initially but the BIOS read-sector call ignores the requested drive
number.

In an effort to test this I'm proposing to write a custom MBR that is
able to write the drive number, PnP block and disk geometry to screen in
an effort to see what the difference is between hard-drive-present and
hard-drive-absent.

It is a long long time since I did any assembly or BIOS-based
programming so I thought I'd ask if anyone knows of any existing code
that does this?




More information about the Syslinux mailing list