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 at debian.org
.+' `+...+' `+...+' `+...+'
`+...+'
----- Forwarded message from Rob Martin <rob at joaptsc.navy.mil> -----
From: Rob Martin <rob at joaptsc.navy.mil>
Date: Sun, 09 Dec 2001 11:23:14 -0600
To: Debian Bug Tracking System <submit at 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 -----