Mailing List Archive

Failed to boot from one particular system
Hi all,

Last month we received the following mail from one of our users;
apparently, his system does not set register DL to the boot drive
number, so the rest of the process fails.

Unfortunatelly, I have not been able to contact the sender of this
mail, so I have not been able to gather more info about his system.
I will continue trying to contact him.

Does anyone know how could this be solved in a clean way?

Thanks,

--
.+'''+. .+'''+. .+'''+. .+'''+. .+''
Juan Cespedes / \ / \ cespedes@debian.org
.+' `+...+' `+...+' `+...+' `+...+'

----- Forwarded message from Rob Martin <rob@joaptsc.navy.mil> -----

From: Rob Martin <rob@joaptsc.navy.mil>
Date: Sun, 09 Dec 2001 11:23:14 -0600
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#123099: boot-floppies: i386 bootsector fails first attempt to read floppy

Package: boot-floppies
Version: N/A; reported 2001-12-09
Severity: important

I get "Boot failed" when attempting to boot the rescue disk on a particular
machine. It boots fine on many other machines. OpenBSD boot disk exhibits
the same behaviour, but lilo, FreeBSD, MS-DOS, and bzImage all boot up
without any problem. I tried the safe version of syslinux and it didn't
work.

Using bootsector code provided by someone else (i.e., not ldlinux.asm), I
installed trace code and discovered that the BIOS is loading DL with 0x2f
before passing control to the bootsector. If this is left as-is for the
int 0x13 (0x02) ISR call, the error code 0x01 (invalid command) is returned.
On the test code, if we zero DL it boots fine.

I've looked at the bootsector code for the linux kernel and it zeros DL.

Though zeroing DL is not the best solution from a purist perspective, it
should not cause problems in the case of syslinux. By definition, syslinux
only needs to boot from a floppy, and there are few, if any, occassions to
boot from any but the first floppy.

I haven't looked at the ldlinux.asm code in depth and don't have a patch.
I apologize for that.

Rob Martin

----- End forwarded message -----
Failed to boot from one particular system [ In reply to ]
Juan Cespedes wrote:

> Hi all,
>
> Last month we received the following mail from one of our users;
> apparently, his system does not set register DL to the boot drive
> number, so the rest of the process fails.
>
> Unfortunatelly, I have not been able to contact the sender of this
> mail, so I have not been able to gather more info about his system.
> I will continue trying to contact him.
>
> Does anyone know how could this be solved in a clean way?
>
> Thanks,
>


Unfortunately, his analysis is bogus -- it will cause significant loss
of functionality to change this behaviour. This is a classic case of
"BIOS to braindamaged to live," and I'd loathe at lobotomizing SYSLINUX
to support just one machine. This is one of the things that's actually
fairly reliably done even by otherwise very braindead machines -- this
is the very first case I've ever heard of a system that's broken in this
particular way.

The "clean way" to solve it is for him to use his own hacked version of
SYSLINUX, to get a BIOS upgrade, or to transfer his system to the
nearest garbage container.

-hpa