Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How to pxe boot MS DOS 7.x / 8.x on a modern pc (mainboard without floppy controller) without using an external usb floppy drive?

MS DOS 6.22 and earlier or other flavors pxe boot just fine on floppy-less hardware. But DOS 7.x and 8.x renders an error on boot: "Type the name of the Command Interpreter (e.g., C:\WINDOWS\COMMAND.COM)

I read somewhere during research this was a rather unknown error, that started to become more common due to the advent of floppy-controller-less hardware.
On some hardware (bios dependent) one could plug a usb-floppy-drive in the computer before booting (but that MIGHT also require it to be a "golden floppy drive" (as they where called back then).

From a russian site (I read about a year ago and cannot find the hyperlink) MS-Dos versions >6.22 did some-kind of floppy-drive reset during initialization and since it couldn't connect to the floppy-host thus the error.

How can I resolve this (without a physical external usb floppy)?
Might there be some kind of virtual floppy-driver that could resolve this (for example to be loaded before the dos image loads)?

Or could someone point me into the right direction (maybe even a hex-address and some further explanation or something)?

I'm using syslinux by the way.

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

why not the classic pxelinux/memdisk approach?

LABEL 1
menu label Dos
kernel memdisk
append initrd=DOS.img

edit

memdisk is able to emulate a HDD, a CD, a floppy disk, etc, sometimes it does a good job analyzing your image and detecting what you want to mount and sometimes you have to say it with a command line.

for a DOS disk just use

append initrd=DOS.img

or

append initrd=DOS.img edd

or

append initrd=DOS.img floppy

The differences are explained on memedisk page they basically force different emulation modes.

i.e. edd = emulation of Enhanced Disk Drive Services for floppy disks

when they say "Windows 98 DOS requires a floppy controller." it is not true; at this level no one touches the floppy controller but the BIOS int 13h; and this interrupt is what memdisk emulates. the different modes affect the returned value from int 13h, ah=15h​ -> Get Drive Type

share|improve this answer
    
That is exactly what I am doing. And on every computer in my home that HAS a floppy-host controller (and empty floppy drive) the ms-dos 7.x (or 8.x) image works normally. But on every computer without one (like Dell's zfs server, or any notebook) this same image does not work and renders the (in the question) described error. However when load a ms-dos <= 6.22 (or none ms-dos) image on those machines, they boot normally. –  GitaarLAB Nov 5 '12 at 17:52
    
how about adding COMSPEC=a:\command.com to the autoexec, the trick could be knowing the drive letter from where is really booting but that can also be found on the same bat. –  Pat Nov 5 '12 at 19:22
    
did that to and this would have been a great tip, if it worked. Aside from that, when I boot a 6.22 (for instance) using the same syslinux/memdisk combo, the bootdrive (that msdos reports) is A, so that shouldn't be the problem either. If however I plugin a ('golden') usb-floppy drive (empty) dos 7.x/8.x start as normal (and report A as being the boot-drive). The problem lies in the dos-kernel, wanting to do something with a floppy host controller. Pretty sure of that (as other big company's like HP and Landesk confirm). Reproduce it?: take a new notebook, pxe-boot untouched win98 setup image. –  GitaarLAB Nov 6 '12 at 1:08
1  
try with "APPEND initrd=DOS.img edd" if your image is a floppy image that adds the BIOS Enhanced Disk Drive Services on emulated floppy disks –  Pat Nov 6 '12 at 10:18
    
I used "APPEND initrd=DOS.img floppy raw". Removing the raw (for instance replacing it with edd, as you suggested) worked. Even without the "floppy" or "edd" worked in booting MS DOS > 6.22. The base assumption for my question where reports from landesk (for instance, or HP) claiming: "Windows 98 DOS requires a floppy controller." Could you please elaborate and update your answer (for future readers) and maybe explain the difference between: "floppy" "floppy raw" "edd" and "floppy edd". Thank you so much so far !!! –  GitaarLAB Nov 7 '12 at 4:14
show 6 more comments

Nearly every machine within the past 5 years supports PXE built in - PXE boot disks were simply required for when the machine didn't have support for PXE built in, so, the disk would emulate the environment.

Look in the BIOS/EFI for "Network Boot", and see if you can enable it... sometimes you need to press F11orF12 during boot (but it can change).

share|improve this answer
    
If it wasn't enabled, how did I pxe-boot dos 6.22 or the menu-system? :P –  GitaarLAB Nov 4 '12 at 22:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.