[syslinux] nopassany parameter causing trouble

Gene Cumm gene.cumm at gmail.com
Sun Dec 18 19:22:34 PST 2011


On Sun, Dec 18, 2011 at 18:40, Bernd Blaauw <bblaauw at home.nl> wrote:
> I'm running into an issue which I didn't expect to encounter.
> When specifying the "nopassany" parameter to hide physical drives, I'm
> getting different output from ELTORITO.SYS (v1.5, syslinux distro) such that
> it fails.
>
> My intent is a LiveCD functionality with a DOS RAMDISK program taking over
> as drive C:, meaning either no FAT partitions on harddisks and removable
> disks (as the DOS kernel enumerates them) or using the NOPASSANY parameter
> for MEMDISK.

If the image for MEMDISK is an HDD, it should be device 0x80 and
picked first for using the "C:" drive letter assignment.  If it's an
FDD, it should be device 0x00 and assigned "A:".  I'm not sure if a
floppy emulation mode ISO would be supported with MEMDISK but if so,
using the nopassany in this situation would allow the ISO to be
assigned "C:".

> Different output:
> * ISO9660 found: drive E0 with address 0800h (omitting nopassany)
> * Nothing found: drive 70 with address 0000h (nopassany specified)
>
> My expectation was that only floppydrives and USB/harddisk units would be
> hidden. (for that matter I'd prefer booting from USB FAT32 yet hide USB
> drive but not harddisk, but can't have it all).

I'd expect nopassany to hide everything except the new disk.  CD
drives are HDD-like and should be hidden by nopassany.

> Original Boot order:
> BIOS -> CD -> Isolinux 4.04 -> Memdisk 4.04 -> FLOPPY.IMG

nopassany should hide the FDD/HDD/CD

> Alternative with ISO in RAM:
> BIOS -> CD -> Isolinux -> Memdisk -> ISO -> isolinux -> memdisk ->
> floppy.img

nopassany on memdisk #1 should hide the FDD/HDD (including CD) but not
using nopassany in the second should make eltorito.sys pick the ISO.
Under this condition, I'd expect the ISO could easily be assigned
"C:".

> The issue seems to be a bug in ELTORITO.SYS itself, as MDISKCHK lists the
> drive properly as E0. Below captured from redirecting to COM1 in QEMU:
>
> Drive 00 is MEMDISK 4.04:
>        Address = 0x094ce000, len = 720 sectors, chs = 40/2/9,
>        loader = 0x33 (ISOLINUX),
>        cmdline = nopassany initrd=/isolinux/fdboot.img
> BOOT_IMAGE=/isolinux/memdisk
> Drive E0 is MEMDISK 4.04:
>        Address = 0x09549000, len = 7461 sectors, chs = 65535/255/15,
>        loader = 0x33 (ISOLINUX),
>        cmdline = iso initrd=/isolinux/fdbootcd.iso
> BOOT_IMAGE=/isolinux/memdisk
> Drive 00 is MEMDISK 4.04:
>        Address = 0x094ce000, len = 720 sectors, chs = 40/2/9,
>        loader = 0x33 (ISOLINUX),
>        cmdline = nopassany initrd=/isolinux/fdboot.img
> BOOT_IMAGE=/isolinux/memdisk

I'm guessing from the "cmdline" statements that you didn't try moving
the nopassany to the MEMDISK for the ISO and not the MEMDISK for the
FDD.

-- 
-Gene




More information about the Syslinux mailing list