Tom's Guide | Tom's Hardware | Tom's Games | PC Safety Suite
![]() |
![]() |
![]() |
Name: spamtrap
Comment:
How does window 98 1st addition determine where to look for the registry files user.dat and system.dat ?
I thought it was the msdos.sys files but there must be more to it that than that.
The reason I would like to know is a bit long but here it is....I have a win98 system where dos is on the C drive but windows has been install on the H: drive using the dos 'subst' command where H: has been substituted with S:.
This means that windows behaves like it is installed on the S: drive. The msdos.sys file has path statements..
[Paths]
WinDir=S:\WINDOWS
WinBootDir=S:\WINDOWS
HostWinBootDrv=sI have this setup to I can create a ram drive with drive letter S: ,boot to dos, lcopy drive H: to S: and run windows in Ram.
Autoexec.bat has a menu that lets me run windows from either the hard drive where H: is substituted with S:, or from a ram drive created with drive letter S:.The system works fine except for two problems related to finding the registry (user.dat/system.dat) files on S:.
The first is that when I first created this system I found that although windows was running on S:, it was using system.dat and user.dat on H:. I got around this by having autoexec.bat rename these files on H: so they aren't found. Now windows uses the registry files on s:.
This indicates to me that windows can't find the registry files where it expects them (probably searches on c?) and then searches all the drives until it finds a user.dat and system.dat. But why doesn't it use msdos.sys paths to search for them?The second problem is weirder.Because Win98 is running in ram, to change anything permanently I have to boot and run windows from H: substituted with S:.Now anything I change in windows is changed on drive H:.
This works fine. However when I then reboot back to using the ram drive s:, windows fails to load with messages about invalid registry or cant find registry type messages, then says the system is invalid and powers the pc down. The weird part is that I just restart and it works. This happens everytime I change something on H:, the first reboot onto the ram drive fails but the second works.
Something must be changing between boots or the second boot would also fail. I can't detect any changes in the dos files on C drive between boots but feel I must have missed something.Anyhelp appreciated.
Thanks,
Spamtrap
+1 | ![]() |
I applaud your initiative...running windows from a ramdisk...I have a hard time imagining you ever getting that working effectively even if you fix these problems, because even if you could get it to work, windows would be erased every time you shut down or restart the computer (RAM is not preserved like your Hard Drive is) and windows will have to be reloaded to RAM on each startup. This would be just as slow as running windows off a hard drive.
Secondly, programs in your computer, especially windows, use RAM so having all of windows in RAM when it's supposed to be managing it would produce unpredictable results. (I know windows is always in RAM like any other program when you run it, but there's a difference between having it run from RAM and having it completely installed in RAM.)
However, it sounds like you know what's up and have some plan in mind for this (apparently the lcopy thing.)
I think (and this is unexplored territory so I'm speculating) the problem has its source in the fact that windows is an operating system, and so many of the changes you make to it aren't just changing registry entries, but actually modifying or completely recreating system files.
The weird problem is pretty perplexing...My only guess is that somewhere the registry is being backed up, and when it can't find it the first time, it restores the backup, and haves you restart.I really want to know how this turns out...if it's possible and if it's worth it. Post back with any updates.
-SN
P.S. You must have a crapload of RAM.
+1 | ![]() |
Win 98 likes to run self checks on the registry and update as needed, sometimes that's during the boot process. Scanregw.exe is the windows level reg check and it also does the auto backups in C:\WINDOWS\SYSBCKUP.
If you check that folder often, you may see an odd backup file added to the usual rb00x.cab files, it will be rbbad.cab, and has been marked as such by scanregw.exe before restoring and checking out an earlier backup. Weird but it works.For more on win 98 registry backups checkout:
+1 | ![]() |
Thanks for the replies, I wasn't sure that I would get any.
I configured scanreg.ini to not make any registry backups (Backup=0) as they are pointless in a ram system.They would be lost on reboot. Rebooting effectively restores my registry.
There are no backed up registry files.(I just searched on rb*.* files to make sure)
I also configured scanreg.ini not to optimise the registry for the same reasons as above. I may try changing this back to see if this makes a difference. I doubt it but what the heck.I will try a reboot to hard drive then back to ram a bit later and double check that no files have been modified on C and report back.I feel that something must be being altered on the C drive or it would indicate that something is changing at the bios level which doesn't sound right to me.
Just a note..
This is a working system, I am running on it now and have been using it for a few months. It runs great and windows is fast. It does however take about 2 to 3 minutes to lcopy (long file name copy command) the files onto the ram drive. Once this is done windows starts in about 5 seconds. The system is as stable as win98 is normally as far as I can tell. xmsdisk allocates ram to a ram disk. I have 512MB ram with 350MB as a ram disk. Windows has 150MB to use. There are no ram conflicts between the ram disk and ram that windows can use.I have rampage running that tells me how much free windows ram I have (54MB at the moment)as I am a bit short (get another 512MB today).
You are right that all changes are lost. I consider this a feature of the system. After a reboot I am always back to a stable clean system no matter what dodgy software I have tried out. This is a great test system in that respect and is my main reason for running in ram. To change anything I have to reboot and select a hard drive startup, make my changes, then reboot into my ram system.. or because of my problem, reboot twice.For any application that I need changes saved such as my emails (I use Mozilla), I either install it on a hard drive, or in mozilla's case, have my profile stored on a hard drive. I appreciate that any registry changes will be lost but this has never been a problem for me with the software I am running.Most applications only alter the registry if you change options or to record things such as recently used files.
I have a multiboot system so have other 'normal' systems for games and work. This is my test and internet system only.Thanks,
spamtrap
+1 | ![]() |
spamtrap,
I am just curious. Can you just shut down by
throwing a switch? Rather than going through
the lengthy shut-down?I had my win 3.11 set up, (not to run on
RAM), but with a ram drive and so I could
just throw a switch - liked that procedure
so much better than 98.
+1 | ![]() |
Probably ok to power down but dos is still on a hard drive so I shut down normally.Shutdown is pretty quick.
Also windows would want to do a scandisk on the next restart.
Spamtrap
+1 | ![]() |
I think I have found my answer but havn't tested it yet.
To get around the problem of my ram drive system using the reg files from the H: drive rather than the S: drive I hid the H: drive reg files via the autoexec.bat file. I think that this is too late in the startup process to be doing this and that windows has already decided to use the reg files on the H: drive then I hide them and windows dies. On the next boot, since they are already hidden, windows uses the reg files on the s: drive and all is ok.
I think that after using windows off the hard drive, I need to shutdown to dos and hide the reg files on H: then reboot to my ramdrive system.As an aside, I added another 512MB ram, to go to 1GB, yesterday and installed a win98 SE version of this system. I struck a ram limitation I had not heard of for win98 before. My ram drive startup was failing saying that there was insufficient memory to load windows. I found from the microsoft database that windows is not designed for 1GB or more of RAM and that not only do you have to limit maxcache (when you have more than 512MB ram) but when you get to 1GB you have to limit the amount of ram that windows uses to below 1GB. Microsoft suggest adding the line
MaxPhysPage=30000 to the [386Enh] section of the system ini file to limit ram to 768 MB.
I did this and my system then started fine.Thanks for your suggestions,
Spamtrap.
![]() |
Device problems?
|
Cannot load win 95B
|

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.