Jump to content

VFAT Error


Dave-H

Recommended Posts

Has anyone else run up against this issue?

I am running Windows 98SE SP2.1a on a dual boot machine with Windows 2000 SP4.

I recently decided to install MS Office XP (2002) on the system.

When I installed it on Windows 98, it appeared to install correctly, and worked fine, but when I restarted I got the dreaded BSOD "A device required for VFAT is missing or unavailable......system halted."

I could boot into Safe Mode, but not into normal mode.

I installed Office XP on Windows 2000, where needless to say it worked perfectly!

To cut a very long and agonising story short, I discovered that I could boot Windows 98 into normal mode only if I disabled my ethernet adapter first. This is an Intel on-board device which had worked perfectly for 18 months. The same result could be achieved by not loading ndis.vxd on a step by step startup.

The strange thing was that once the system had started normally, the adapter could then be re-enabled and worked perfectly! I had to remember to dis-enable it again before shutdown though.........

I spent weeks trying to resolve this, unloading and reloading network drivers, researching on the web, to no avail.

One thing I had noticed when I looked at backups was that my registry files had become much larger as a result of the Office XP install, and it was this that turned out to be the problem.

If my system.dat file is bigger than about 12.5MB, I cannot boot into normal mode without the VFAT error, unless I disable the network adapter first!

I had uninstalled Office XP (which was the first thing I tried of course) and this made no difference to the problem. It wasn't until I labouriously went through the registry manually deleting all the hundreds of entries that the Office XP uninstaller had left behind, that the size of the registry files went down enough to allow the system to boot normally. Talk about bloat, Ofice XP increased the size of the system.dat file by over 2MB!

It was as if the registry files had become too big to fit in memory at start-up.

I can only assume that disabling the ethernet adapter freed up enough extra memory for the system to start, and the adapter could then be re-enabled as it was then using a different bit of memory, ........or something like that!

All my researches seemed to say that there is no practical limit to the size of the registry in Windows 98, as I believe there was in Windows 95, so I am very puzzled by this.

I don't know if free conventional memory is an issue here. I have over 500K free, and 1GB of RAM, with all the necessary tweaks to allow for this, vcache size limit etc. I have a bare minimum of entries in config.sys and autoexec.bat. In fact bypassing these files and system.ini and win.ini on start-up made no difference to the problem.

The only anomaly I've noticed is that my system reports only 1021MB of RAM present instead of 1023MB.

In Safe Mode the full 1023MB is reported.

I can find no reason for this despite researching the MS Knowledge Base and on the web generally.

Has anyone any ideas on this, or has anyone had the same or similar problems?

I obviously know what the problem is now, and how to avoid it (I certainly won't be putting Office XP back on Windows 98 for a start!) I'm just puzzled as to why it's happening..........

Happy New Year, Dave. :)

Edited by Dave-H
Link to comment
Share on other sites


You may want to "compress" your registry.

Export the whole thing to a text file (don't open it, it'll be very large), backup your old Registry files, then boot to pure DOS and use the regedit Create ( /c ) option to create a new set of registry files from it.

I have Office XP on my machine, and it hasn't caused any problems yet.

Link to comment
Share on other sites

Thanks LLXX.

I've got Norton Utilities and that has a very good registry optimiser which compacts the registry.

I've already got the files down to a reasonable size which works.

What I'd really like to know is why Windows 98 won't start normally if they are above a certain size, because that just shouldn't happen! :no:

Link to comment
Share on other sites

You may want to "compress" your registry.

Export the whole thing to a text file (don't open it, it'll be very large), backup your old Registry files, then boot to pure DOS and use the regedit Create ( /c ) option to create a new set of registry files from it.

I dump the whole registry to text frequently and use

text comparison utilities to track changes. Doing it

before and after an installion and backing out

undesirable additions is an excellent way to keep

the registry size under control.

Edited by somewan
Link to comment
Share on other sites

Has anyone else run up against this issue?

I am running Windows 98SE SP2.1a on a dual boot machine with Windows 2000 SP4.

I recently decided to install MS Office XP (2002) on the system.

When I installed it on Windows 98, it appeared to install correctly, and worked fine, but when I restarted I got the dreaded BSOD "A device required for VFAT is missing or unavailable......system halted."

I could boot into Safe Mode, but not into normal mode.

I installed Office XP on Windows 2000, where needless to say it worked perfectly!

To cut a very long and agonising story short, I discovered that I could boot Windows 98 into normal mode only if I disabled my ethernet adapter first. This is an Intel on-board device which had worked perfectly for 18 months. The same result could be achieved by not loading ndis.vxd on a step by step startup.

The strange thing was that once the system had started normally, the adapter could then be re-enabled and worked perfectly! I had to remember to dis-enable it again before shutdown though.........

I spent weeks trying to resolve this, unloading and reloading network drivers, researching on the web, to no avail.

One thing I had noticed when I looked at backups was that my registry files had become much larger as a result of the Office XP install, and it was this that turned out to be the problem.

If my system.dat file is bigger than about 12.5MB, I cannot boot into normal mode without the VFAT error, unless I disable the network adapter first!

I had uninstalled Office XP (which was the first thing I tried of course) and this made no difference to the problem. It wasn't until I labouriously went through the registry manually deleting all the hundreds of entries that the Office XP uninstaller had left behind, that the size of the registry files went down enough to allow the system to boot normally. Talk about bloat, Ofice XP increased the size of the system.dat file by over 2MB!

It was as if the registry files had become too big to fit in memory at start-up.

I can only assume that disabling the ethernet adapter freed up enough extra memory for the system to start, and the adapter could then be re-enabled as it was then using a different bit of memory, ........or something like that!

It makes sense that omitting NDIS.VXD would have the same effect as disabiling

the network adapter, because practically all Win95+ network hardware drivers

conform to NDIS 3.1 or newer (NDIS = Network Driver Interface Specification),

whereas 3.0 drivers included the functionality later factored out into NDIS.VXD.

NDIS.VXD has a real-mode init portion, and uses the bootstrap loader's

registry access services (more on that below) to decide whether it

should load real-mode (NDIS 2) network device drivers. Perhaps that's

where it fails, and perhaps that leads to the indirect failure of VFAT

and others.

32-bit file access is managed by IFSMGR.VXD, which relies on VFAT for

local FAT file systems, and VREDIR for remote ones. VREDIR probably

expects NDIS.VXD services to be available.

Did you check the c:\boorlog.txt by the way?

All my researches seemed to say that there is no practical limit to the size of the registry in Windows 98, as I believe there was in Windows 95, so I am very puzzled by this.

I don't know if free conventional memory is an issue here. I have over 500K free, and 1GB of RAM, with all the necessary tweaks to allow for this, vcache size limit etc. I have a bare minimum of entries in config.sys and autoexec.bat. In fact bypassing these files and system.ini and win.ini on start-up made no difference to the problem.

The VMM bootstap loader, which is actually the DOS "stub" of VMM32.VXD, provides

registry access (and system.ini parsing) services to drivers that load early. These

services are implemented indepentently of their "normal" equivalents, in 16-bit

real mode, and may suffer from limitations that don't normally apply.

The only anomaly I've noticed is that my system reports only 1021MB of RAM present instead of 1023MB.

In Safe Mode the full 1023MB is reported.

I can find no reason for this despite researching the MS Knowledge Base and on the web generally.

Safe mode is significantly different from (most) normal configurations - for

example, all swapping/paging is done through DOS, the standard VGA

driver is loaded instead of the normal one, 32-bit network drivers are

left unloaded, etc. Perhaps one of the omitted drivers would normally

"hide" a couple of MB.

Link to comment
Share on other sites

Thanks somewan. :)

I did check bootlog.txt after the bad startup, and it was very short.

In fact there were no entries after -

[000DFD33] LoadSuccess = C:\WIN-98\IFSHLP.SYS

I assume that is the point that the system crashed.

The next few lines on a good startup are -

[000DFD33] LoadSuccess = C:\WIN-98\IFSHLP.SYS

[000DFD45] C:\WIN-98\COMMAND\MODE.COM[000DFD45] starting

[000DFD45] C:\WIN-98\COMMAND\MODE.COM[000DFD46] starting

[000DFD48] C:\WIN-98\COMMAND\KEYB.COM[000DFD49] starting

[000DFD6D] Loading Vxd = C:\WIN-98\system\VMM32\VMM.VXD

[000DFD6A] LoadSuccess = C:\WIN-98\system\VMM32\VMM.VXD

[000DFD6A] Loading Vxd = C:\WIN-98\SMARTDRV.EXE

[000DFD6A] LoadSuccess = C:\WIN-98\SMARTDRV.EXE

[000DFD6A] Loading Vxd = vnetsup.vxd

[000DFD6A] LoadSuccess = vnetsup.vxd

[000DFD6A] Loading Vxd = ndis.vxd

[000DFD6A] LoadSuccess = ndis.vxd

[000DFD6B] Loading Vxd = ndis2sup.vxd

[000DFD6A] LoadFailed = ndis2sup.vxd

[000DFD6A] Loading Vxd = JAVASUP.VXD

[000DFD6A] LoadSuccess = JAVASUP.VXD

[000DFD6A] Loading Vxd = C:\WIN-98\system\VMM32\CONFIGMG.VXD

[000DFD6A] LoadSuccess = C:\WIN-98\system\VMM32\CONFIGMG.VXD

[000DFD6A] Loading Vxd = C:\WIN-98\system\VMM32\NTKERN.VXD

[000DFD6A] LoadSuccess = C:\WIN-98\system\VMM32\NTKERN.VXD

BTW as you will have gathered, my Windows 98 folder is C:\WIN-98, not C:\WINDOWS!

Likewise my Windows 2000 folder is D:\WIN-NT.......

So it does look as if the system was falling over at the point that the network drivers would have loaded.

As you can see, it doesn't load ndis2sup.vxd, but that has always been the case, I assume because it's not needed on my system.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...