Here you will find a description of setup for FreeDOS to boot over SAN. I've tested it successfully using SCST target and exporting an iSCSI disk to my workstation for the setup of the DOS system. Please note that floppy images won't work since the initiator sets up SCSI harddisk semantics. ====== Required tools ====== ''sys'' utility source code from http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/sys/2037.unstable/ ''makebootfat'' from http://advancemame.sourceforge.net/boot-download.html ''freedos odin image'' from http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img ====== Preparing the environment ====== Unpack and build the latest ''makebootfat'' release. The source directory contains the file ''mbrfat.bin'' which will be installed as MBR to the target disk. You could use any other bootloader, or just ''install-mbr'' from ''mbr'' package of your distribution. The source code of ''sys'' utility from FreeDOS contains the needed FreeDOS Bootsectors. Unpack it and find the files * fat12.bin * fat16.bin * fat32lba.bin Get the ''kernel.sys'' and ''command.com'' files from the freedos image. These files shall not be moved on the target filesystem since they have a special location. Loop-mount the freedos image and get the files from there. You probably want to include some of the other files at later point. ====== Prepare the target device ====== From your san storage export a LUN and get it to the workstation you have the tools on. The target should be exported with 512 byte block size. Once you have the device in place, create the filesystem. \\ **Example command:** \\ ''# ./makebootfat -v \ \\ -o /dev/sdb \ \\ -E 255 \ \\ -1 fat12.bin \ \\ -2 fat16.bin \ \\ -3 fat32lba.bin \ \\ -m mbrfat.bin \ \\ -c kernel.sys \ \\ -c command.com \ \\ image'' Note that you need to change the device accordingly. Also, the directory ''image'' must exist for this command to succeed. It doesn't carry any special meaning here. Now you've got a bootable FreeDOS image. ====== Adding files ====== When ''makebootfat'' runs, the system doesn't notice the partition table change on that device. To be able to mount the newly created filesystem you need to run \\ ''# blockdev --rereadpt /dev/sdb'' \\ Now you can mount ''sdb1'' and add other dirs and files. Take care not to move the ''kernel.sys'' and ''command.com'' files.