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
GitaarLAB
  • 125
  • 8

3 Answers3

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

Pat
  • 3,020
  • 17
  • 25
  • 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 05 '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 05 '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 06 '12 at 01: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 06 '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](http://community.landesk.com/support/docs/DOC-1430) (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 07 '12 at 04:14
  • memdisk can emulate a hdd, a cd, a floppy disk etc, sometimes it automatically discovers what you are trying to mount but sometimes you have to help it with command lines. When they say "requires a floppy controller" is not true, at this level no one really touches the floppy controller but the BIOS int 13h; memdisk emulates that interrupt. Now you told memdisk to emulate a floppy drive and everything works as it should. – Pat Nov 07 '12 at 13:12
  • @Pat It isn't really relevant to this answer any longer, but in order for autoexec.bat to be executed, the command interpreter must have been loaded. It might be possible to set things up through config.sys without a command interpreter, but not autoexec.bat. – user Nov 07 '12 at 13:47
  • well, if a working autoexec.bat launched an app and the app returns and the resident part of the OS cannot get the path to the command.com you have an executed autoexec.bat displaying the same error message... – Pat Nov 07 '12 at 14:44
  • @MichaelKjörling: Set what things through config.sys? @ Pat: as far as can currently tell, just removing the "raw" switch (so not using the "edd" switch) also seems to work (giving access to or running command.com). I'm also wondering if and how the switches "raw", "bigraw" and "int" relate to "real mode" versus "protected mode" and if the official microsoft 'real mode' patch for dos 8.0 might fix the "deliberate" crash in ME/XP dos that the memdisk page mentions. – GitaarLAB Nov 07 '12 at 15:02
  • this is all real mode, when the code move to protected mode memdisk fails... at that moment the disks are accessed by drivers and not by BIOS int calls like memdisk emulates – Pat Nov 07 '12 at 15:32
  • @GitaarLAB Loading device drivers, for example. It's been a long time but wasn't COMSPEC set in config.sys too? And so on. @ Pat has a point though about the OS needing to reload the command interpreter, but that wasn't really what I had in mind. – user Nov 08 '12 at 08:58
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).

William Hilsum
  • 116,650
  • 19
  • 182
  • 266
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.

TOOGAM
  • 15,243
  • 4
  • 41
  • 58
  • 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 06 '15 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 07 '15 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 08 '15 at 04:25
  • Here is an identical description however: http://h30499.www3.hp.com/t5/Business-PCs-Compaq-Elite-Pro/HP-DC7100c-PXE-boot-without-floppy-drive-installed/td-p/500327 (and I highly suspect [this one](http://h30499.www3.hp.com/t5/Workstations-z-series-xw-series/dc5800-SFF-PXE-boot-fail/td-p/4195803) 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](http://www.helpwithwindows.com/techfiles/vmm32.html) solution? – GitaarLAB Jan 08 '15 at 04:28