[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