[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#857597: "isolinux.bin missing or corrupt" when booting USB flash drive in old PC


David Christensen confirmed that above fixed MBR enabled isohybrid
booting on his legacy system.

Time for a summary of findings.

How to reproduce the bug:

Any BIOS which does not announce "Device Access using the packet structure"
by the reply to INT 13 AH 41 will fail to boot by the old MBR, if the numbers
for heads/cylinder and for sectors/head do not happen to be identical.

The drive geometry numbers are handed out by the BIOS on INT 13 AH 8
depending on its perception of the drive. I never saw both being the same.
See also:

How to work around:

Overwrite the old MBR by the fixed one.

  wget http://www.ludd.ltu.se/~ams/tmp/isohdpfx.bin.170324


  dd conv=notrunc bs=1 count=432 if=isohdpfx.bin.170324 of="$iso"

According to
the fix should apply to ISOLINUX versions since 3.82.
The most recent touching of the code part in question was on 2009-05-31.

Proposals for debian-cd and syslinux package:

Martin Str|mberg has announced that
will exist only a limited time. (I have a copy.)

I propose that Debian gets it too and offers it for download together
with a description what problem it might fix and how to apply it.
If it gets a Debian URL and if i get pointed to an empty wiki page,
i would volunteer to write the description.

Next, one will have to decide whether to use the fixed MBR with future
Debian ISOs and whether to put the patch into Debian's syslinux source

We got no comment by hpa yet. Any review by a skilled assembler
programmer is welcome. Especially one will have to check for any
inadverted side effects caused by changing the stack push sequence
to the expectations of isolinux.bin.


Have a nice day :)


Reply to: