[syslinux] Possible memdisk issue

perditionc at gmail.com perditionc at gmail.com
Wed Jul 9 17:26:53 PDT 2014


On Wed, Jul 9, 2014 at 5:00 PM, H. Peter Anvin <hpa at zytor.com> wrote:

> On 07/09/2014 01:54 PM, Alexander Perlis wrote:
> >
> > Ah, this might explain things although I don't know what is meant by
> > "intended". First, to clarify, newmkfloppyimg calls mkdosfs 3.0.12, and
> > grabs H/S from the output and then computes C. For all the sizes I've
> > tried, newmkfloppyimg always tells me H=64 S=32 and then C is the
> ...
>
> mkdosfs -I -v -C test8203 8203
> ...
>
> file system has 2 12-bit FATs and 8 sectors per cluster.
>
> FAT12...
>
> > FAT size is 8 sectors, and provides 2043 clusters.
> ...
> > file system has 2 16-bit FATs and 4 sectors per cluster.
>
> FAT16...
>
> ...
>


> So this would seem consistent that this is the FAT12/FAT16 boundary that
> breaks stuff.  Perhaps FreeDOS has a problem with FAT16 on floppies?
>
> You can experiment with this by explicitly specifying -F 12 to mkdosfs,
> which forces it to stick to a 12-bit FAT.
>
>         -hpa
>
> The issue appears to be the boot sector then.  FreeDOS has multiple boot
sectors, one for FAT12, 16, and a couple for FAT32 (LBA or CHS).  The
floppy disk image has a FAT12 boot sector, so it will not correctly
interpret a FAT16 filesystem.  The differences are minor so the FAT12 and
FAT16 boot sectors are in the same source file, but 2 sectors are generated
when building.

I would suggest using syslinux and chain load the FreeDOS kernel, otherwise
something like
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/sys/sys-freedos-linux/sys-freedos-linux.zip
may be of help for updating the boot sector on images that use FAT16.

Kenneth J. Davis


More information about the Syslinux mailing list