Windows – Floppy drive doesn’t work in Windows, but does outside of Windows

floppyms-dostroubleshootingwindows

Problem

My (internal) floppy drive does not work in Windows (neither XP nor 7). That is, when trying to access the A: drive, nothing occurs, no light, no motor, nothing.

It does however work in DOS, in the BIOS boot-menu, in Windows setup (ie F6 to load drivers), etc.


Symptoms

From command-line:

C:\>dir a:\
The device is not ready.

C:\>

From Explorer:

Please insert a disk into A-Floppy (A:).

(Yes, there is a disk in the drive, but that is irrelevant since Windows does not turn the drive on at all. Also, ejecting and putting a disk in the drive does make a sound like the pin falling into place, but that is more mechanical than electrical.)


Test

I tried removing the \DosDevices\A: and all (four) entries that refer to \??\FDC#… from HKLM\SYSTEM\MountedDevices. Then I uninstalled the floppy drive and controller and rebooted. Windows detected the drive and installed drivers for it, then told me to format the floppy disk before I can use it, but never actually activated the drive. Clicking Format did nothing.


Search

Not surprisingly, most of the search results simply talk about setting the jumpers on the drive or enabling the drive in the BIOS, but these are all just about getting a drive to work at all, not only in a specific OS (though this page does discuss a floppy drive working in Windows and not in DOS—backwards! and not the first time either).


Other Information

One thing of note is that I have a small flash-drive permanently plugged into a USB port on the back that I use to boot DOS without using a floppy or CD. In Windows the flash drive appears as a standard removable drive and is assigned to B:, but I can’t imagine why that would cause the floppy drive to not work in Windows (especially when it does work in DOS). Of course when I boot from the flash-drive, the floppy drive is B: and the flash-drive is A:, but everything else works as normal.

Best Answer

Well, I’ve solved it (more or less).

I had to mess around in the back of my system today, so I took the opportunity to remove the 128MB flash drive that I use to boot. Lo and behold, Windows is able to use the floppy drive (and with the changes I made last time—below—it is able to use it correctly too).

I’m not sure why it did not work with the flash-drive attached. I did some experiments and confirmed that it only happens when in the BIOS, the flash-drive is set to emulate a floppy drive and is higher in the boot order than the actually floppy drive in the removable devices section. By setting the flash-drive lower than the floppy in the boot order, Windows can access the floppy, but then I cannot use the flash-drive for booting automatically. Setting the flash-drive to emulate a CD-ROM allows the floppy to work, but then the flash-drive must be written as a CD, making it frustrating to change files on it like a floppy disk. Setting it to emulate a hard-drive allows the floppy to work and allows the flash-drive to work like a floppy or hard-drive (file wise), but then it prevents the actual hard-drives from being set as boot devices.

First, I tried disabling the floppy drive in Device Manager, then assigning A: to the flash-drive in the Disk Management snap-in, then re-enabling the floppy which was then assigned B:. Unfortunately this did not work (and caused even more problems than before.)

Sadly, my motherboard is old, so Asus has no desire or intention of updating the BIOS to allow individual boot devices to be set (e.g., flash-drive, cd, floppy, hard-drive1, hard-drive 2) instead of only device types (1 removable, 1 optical, 1 hard, 1 network). As a compromise, I have completely removed all but the hard-drive from my boot order. Now when I need to boot into DOS, I’ll have to press F8 to manually select the flash-drive instead of having it automatically inserted in the boot order (which displays a menu to boot DOS or fall through to the hard-drive). It’s a little more work :-|, but having the floppy-drive work (and automatically fail when empty) instead of wait to time out is worth it (especially right now when I’m doing a bunch of file-system programming which requires opening disks in a hex-editor, causing many frustrating delays when the program tries to list the installed disks).

In any case, if anyone else finds their way here trying to figure out why they cannot get Windows to even activate their floppy drive, check if you have any small flash-drives attached to your system on boot. If your board is new enough, try asking them to update the BIOS (though it is more than likely that any board that is new enough to have support will not have a floppy controller at all).

(Of course the question remains what Windows’ problem is when it works fine in DOS, Windows setup, etc… o.O)


It also turns out that the floppy drive (an new? OEM Sony unit I bought from a local computer wholesaler) could have been non-standard. It seems to be working just fine once I set it as the primary in the BIOS, so it probably doesn’t apply to this particular drive, but it’s another gotcha to watch out for.

Related Question