DOS floppy images

From Syslinux Wiki
Revision as of 13:24, 7 July 2010 by Hhullen (talk | contribs) (Category added)

Jump to: navigation, search


Creating a bootable DOS floppy image can be an involved process. Things to look out for

  • Memory managers (allow you to go beyond the 640KB limit imposed by DOS)
  • CDROM drivers (if you need to access to the CDROM/DVD drive from DOS)
  • Network drivers (if you need access to the network). The choice of the network driver depends on which network cards you want to support.
  • Additional utilities (FDISK, FORMAT, GHOST...)

You might not be able to fit all these into a 1.44MB floppy disk. Dont worry! Once you get what you can into the 1.44MB image, we can increase the image size later.

Getting started

Start with an image from BootDisk.com. Remember if the disk you download is a Windows Boot Disk, you may be required to already have a Windows License. If you have a Windows machine, you can use WinImage to edit the image. If you have a Linux machine, you can use the mtools package, or mount the file via a loop back device. AFAIK WinImage cannot handle custom geometries, so the initial floppy image must be 1.44MB or 2.88MB. We can enlarge it later.

Getting access to high/extended memory

By default DOS cannot use memory above 640KB. One solution is to add emm386.exe to your floppy image and add the line device=emm386.exe to your CONFIG.SYS. HIMEM.SYS is another option. The boot disk you download may already come with these.

CDROM Drivers

If you need to access to your CDROM/DVD drive from DOS, you need to make sure that you have CDROM drivers in your image. Again this may already be in the disk image you downloaded. If not download a few images from BootDisk.com which include CDROM drivers and see how they work. Typically, it amounts to adding a couple of files to your floppy image (MSCDEX.EXE, CDROM.SYS?) and loading them via appropriate commands in your CONFIG.SYS and AUTOEXEC.BAT

Network Drivers

Typically one does not know which network card is present in the machine, but we can narrow it down to a few cards we need to support.

Start with a DOS boot floppy disk with network support for one specific network card. You can create one using the "Ghost Boot Wizard" utility which is a part of the Norton Ghost software from Symantec.

Now look at the floppy disk you have just created. You will see that the CONFIG.SYS does not load any network drivers at all (In case of PCDOS, the ghost boot wizard loads network drivers in CONFIG.SYS). All the network setup happens in the 'AUTOEXEC.BAT via net initialize command. This in turn looks at the SYSTEM.INI and PROTOCOL.INI in A:\NET where A: is the floppy drive. PROTOCOL.INI has the following form

[network.setup]
....

[card.name]
drivername=<name of driver>$
...

During the network initialization, the driver A:\NET\<name of driver>.DOS is loaded.

To support multiple network cards, we need to run our own netsetup script at the top of AUTOEXEC.BAT which finds which network adapter is in the machine and sets up PROTOCOL.INI and the driver correctly. All network adapters have a unique vendor id and device id. The PCISCAN utility uses a reference file (which you create) and sets the environment variable %PCI0% to a value specified in the reference file.

The netsetup script justs run the PCISCAN utility and modifies the template PROTOCOL.INI to have the right driver name. Modifying can be done by using a Search and Replace utility like GSAR. Note that only earlier versions run on DOS.

Other nice utilities to have