1

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 which 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 + memdisk by the way, but I've seen this error cropping up on some Symantec and HP LAN-imaging forums to (where it was usually solved by obtaining and using DOS6.22).

Edit:
Totally forgot I posted a (now dead) link in a comment 2 years ago, however it's still alive on the archive!! Quote:

  • Problems/Symptoms:
    Bad or missing command interpreter when imaging via PXE boot menu or managed boot.
    Type the name of the Command Interpreter
    Error: Missing command interpreter
  • Cause:
    Machine does not have a floppy controller or the floppy controller is disabled in the BIOS.
    Windows 98 DOS requires a floppy controller.
  • Fix:
    If the machine has a floppy controller, enable it in the BIOS.
    If the machine does not have a floppy controller download atttached patch PXE 4.03a and follow the instructions below

3 Answers 3

2

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

11
  • 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, 2012 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, 2012 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, 2012 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, 2012 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, 2012 at 4:14
0

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).

1
  • If it wasn't enabled, how did I pxe-boot dos 6.22 or the menu-system? :P
    – GitaarLAB
    Nov 4, 2012 at 22:40
0

If you're getting a request for COMMAND.COM, that looks like IO.SYS is loading okay.

So make sure there is a CONFIG.SYS file which defines COMSPEC to point to the COMMAND.COM file, whereever COMMAND.COM is hiding.

I'm not sure this answers all of your questions, but it answers at least one that you had.

4
  • Thank you for your answer, alas this is not the problem. The problem is that from 6.22 onward (to 8) there is an intentional 'limitation'. MS intentionally did not want Win95/98/ME dos to load on floppy-less devices (back then is was embedded devices they worried about). There is no problem running those dos versions under emulating stuff, it's just that one can't boot them RAW (like other dos versions or versions up to and including 6.22). And naturally... without RAW access, the older forensic tools will not work. There is supposed to be a patch, but I can no longer find it.
    – GitaarLAB
    Jan 6, 2015 at 17:39
  • You're providing conflicting details about version 6.22. But the reality is that 6.22 boots raw just fine, and was marketed for that purpose. MS-DOS 7 also works fine. I'm familiar with the behaviors you're referring to, and those "intentional" "limitation"s are rather specific to Windows ME. The "patch" you refer to could be considered "cracking" material, which restricts my ability to provide you references to that. However, you may wish to look up a cleaner solution, which did not involve changing bytes in official files. This lesser known alternative involved SYSTEM\VMM32.VXD
    – TOOGAM
    Jan 7, 2015 at 21:11
  • I'm sorry for my language error: I still mean: 6.22 (and Krieger's 6.31) will boot fine in raw mode (memdisk). I believe I couldn't get 98SE DOS to work (I never tried the standalone DOS7 from 98>W2K update, didn't even know it existed, is this the DOS7 you refer to?). Note it's been 2 years now, I'm typing this from memory. I can no longer find the source/author that specifically pinned down the problem to the lack of floppy-controller or FDD interface on mainboard.
    – GitaarLAB
    Jan 8, 2015 at 4:25
  • Here is an identical description however: h30499.www3.hp.com/t5/Business-PCs-Compaq-Elite-Pro/… (and I highly suspect this one to). I'm however still very curious to whatever you can share and/or fresh confirmation that this is indeed the result of lack of floppy(host???)controller. Also you hint at a system\vmm32.vxd solution?
    – GitaarLAB
    Jan 8, 2015 at 4:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .