[syslinux] Large Floppy Images and other FreeDOS issues

Eric Auer eric at coli.uni-sb.de
Thu Apr 12 06:27:29 PDT 2007


Hi everybody,

I think it would be unnecessarily complex to try to
"inflate" our installer boot diskette and move the
ISO contents inside it. I mean if you take so much
effort for creating a FAT filesystem, you can just
as well do the whole install directly to the target
harddisk. That would boil down to:

- make fat partition, format it
- unzip all package zips into a directory there
- add config/autoexec/kernel/command.com
- make partition bootable
- make partition active or add it to a boot menu

All of this can be done with standard Linux tools,
apart from the "bootable" step, for which I have

http://www.coli.uni-saarland.de/~eric/stuff/soft/specials/
  sys-freedos-linux.zip

Note that if you make the filesystem with mkdosfs,
it may fail to fill in the "partition offset" field,
giving you the "Hidden sector count is zero" warning
when you run my script. To solve this, modify my
script to fill the value, or improve mkdosfs or use
a disk editor / hex editor ;-). A typical offset for
a partition starting at the beginning of a disk would
be 0x3f (63), guess why. You can calculate other
offsets from fdisk -l output if you are root. If you
work with a diskimage, you obviously have to know
where on harddisk the diskimage will end up to know
the right value. If you use special disk image tools
to install the image to harddisk (as opposed to "dd"),
the value will probably be filled in at install time.
Then you can IGNORE the "zero" warning :-).



Other things about FreeDOS install:

You can put any of the 4 ISO images as fdbootcd.iso
in the root directory of your target c: drive and
then boot the installer diskette. It will mount the
image then. You can also use a pure diskette distro
like Balder (1 disk, most of BASE, binaries) or my
3 diskette distro (3rd disk is only a zip with more
docs) or the upcoming Rugxulo distro.

It would be cool if somebody made a single 2.88 MB
image from the first 2 disks of my distro, because
2.88 MB is one of the allowed sizes for virtual
boot diskettes on CDROM. Probably more compatible
than a virtual harddisk approach. On the other hand,
you can use images of any size with MEMDISK.



Talking about the ISOLINUX family: I get the
impression that some versions only work on old
PC and others only on new PC, is that possible?
Supporting both in one version would be best.

On the other hand, somebody wrote on
http://wiki.fdos.org/Installation/BootDiskCreateCDROM
that you can cp -ax cdrom contents to a directory and then do

mkisofs -R -D -V "FreeDOS 1.0" -o freedos.iso -b isolinux/isolinux.bin
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table
/some-dir-with-cdrom-contents

to create a NEW ISO which boots better than our
original downloadable ISOs. Maybe any of you guys
know what is wrong with the original ISOs, I think
they have the used mkisofs command line embedded
somewhere near the start so you can compare? See:

http://www.freedos.org/freedos/files/



> have a DOS system, load XMS driver, load ramdisk driver, use SYS
> on this ramdisk that has (super-)floppy geometry, then add files,
> then make a disk image of the ramdisk using a program
> like 'dd' or diskcopy for example.

Sounds feasible. Jason Hood has a DOS ramdisk which can load
(even compressed) disk images during init, similar to MEMDISK
but as a normal DOS driver. And our DISKCOPY can do images.

Talking about boot sectors, a floppy uses FAT12, which can be
a limitation. When you change to FAT16, you need another boot
sector code, adjusting the geometry will not be enough.

Eric





More information about the Syslinux mailing list