[syslinux] nopassany parameter causing trouble

Bernd Blaauw bblaauw at home.nl
Sun Dec 18 15:40:35 PST 2011


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.

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).

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

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


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



More information about the Syslinux mailing list