Jump to content

Faster Startup For Windows 2000?


Recommended Posts

Booting from the Windows XP CD.

Yes thanks, that what I eventually did.

:yes:

If Master File Table or registry hive fragmentation is not great on your system (documented problems for the boot loader), the problem your are having would seem to be a bug in the Windows XP boot loader or other files involved in the boot process.

Thanks for that Ascii2, I will check it out.

I'm interested what you say adout "registry hive fragmentation" as my registry is quite large and has never been optimised, so is probably very fragmented.

I optimise my Windows 98 registry all the time as I have startup problems if it gets too large, but I have never bothered on Windows 2000.

I'm wondering if this may be an issue here.

:)

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


I'm interested what you say adout "registry hive fragmentation" as my registry is quite large and has never been optimised, so is probably very fragmented.

I optimise my Windows 98 registry all the time as I have startup problems if it gets too large, but I have never bothered on Windows 2000.

I'm wondering if this may be an issue here.

:)

Older versions of NTLDR could not load large fragmented registry hives during Windows boot (this was before Windows XP; Windows 2000 with Service Pack 4 NTLDR). Newer versions of NTLDR should not (not the same as "do not") have the problem.

Auslogics Registry Defrag (among many others) is software that may defragment registry hive files. If the registry hives that are maintained loaded in memory stay at about the same size (regardless if the size is great), do not expect much fragmentation.

By the way, if you test versions of NTLDR, it may be wise to keep a copy of the versions boot.ini, NTDETECT.COM, NTLDR, Ntbootdd.sys if necessary for SCSI, and possibly arcldr.exe and arcsetup.exe that boot Windows 2000 on a floppy. If you cannot later boot, from the hard disk partition, you may use the floppy to boot Windows 2000.

Also Dav-H, do you have a recovery console installed?

Edited by Ascii2
Link to comment
Share on other sites

Thanks.

I have never had ntbootdd.sys, arcldr.exe or arcsetup.exe on my system.

It has always seemed to work fine without them.

The latter two are in the %systemroot%\ServicePackFiles\i386 folder.

Ntbootdd.sys doesn't exist at all.

My "SYSTEM" registry file is 9.25MB in size.

Is that excessive?

I do have the Recovery Console installed.

:)

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

My "SYSTEM" registry file is 9.25MB in size.

Is that excessive?

The size is large, although possibly not excessive (not something I am able to determine for you).
I do have the Recovery Console installed.
The Recovery Console comes with a boot loader and NTDETECT.COM. Different versions of Recovery Console exist with different versions of their boot loader (CMLDR). I believe your problem is mainly do to design (defects) of the boot loaders.

Try removing the Recovery Console, prepare a floppy capable of booting Windows 2000 (in case booting from hard disk partitions fails later), install a recent version of Recovery Console (like from a Windows 2000 Professional with Service Pack 4 CD, not of a lower Service Pack), copy a recent version of Windows XP (not Windows Server 2003, as it seems to use a different file to load the operating system) NTLDR and NTDETECT.COM to the root of the system drive, and restart the computer.

Link to comment
Share on other sites

(not Windows Server 2003, as it seems to use a different file to load the operating system)

This is news to me.

Care to expand on this? :unsure:

@Dave_H

Something that you may want to try is to move the various NTLDR's to different partitions/directories or put them inside floppy images.

It's abit complex, but may prove a working workaround.

Basically you can use grub4dos' grldr as your "main" loader (or load it through a "base", NOT corrupting SYSTEM hive, NTLDR), then chainload from it a floppy image with the actual NTLDR, NTDETECT.COM and BOOT.INI, an image simialr to the one depicted here:

http://www.xxcopy.com/xxcopy33.htm

It is less difficult than what it may seem at first sight , but undoubtedly not "straightforward".

If you need help/more details, just ask. :)

jaclaz

Link to comment
Share on other sites

(not Windows Server 2003, as it seems to use a different file to load the operating system)

This is news to me.

Care to expand on this? :unsure:

Windows Server 2003 products may use a boot loader file named "Osloader.ntd" (NTLDR and NTDETECT.COM may still exist). I am uncertain between the relationship between the different boot loaders of Windows Server 2003.
Link to comment
Share on other sites

Thanks guys,

jaclaz your possible suggestion sounds interesting, but are you saying that I would have to have a floppy image on a floppy disk in the floppy drive when I boot to implement it?

Ascii2 thanks for your input as always too.

I will wait until I can lay my hands on a Windows XP disk again to try it out.

There seems to be no uninstall routine for the Recovery Console.

Do I take it that all I need to do is delete the C:\CmdCons folder and remove the CMLDR file?

Is there anything else I need to remove before I try installing the XP version?

Cheers, Dave.

:)

Link to comment
Share on other sites

Ascii2 thanks for your input as always too.

I will wait until I can lay my hands on a Windows XP disk again to try it out.

The Windows XP disc (assuming you meant disc) is not necessary. Recent version of ntldr and ntdetect.com for Windows XP may be found within the Windows XP Service Pack 3 redistributable (or just use the files from the archive I have attached to this post). The files need not be expanded after extraction from the package.
There seems to be no uninstall routine for the Recovery Console.

Do I take it that all I need to do is delete the C:\CmdCons folder and remove the CMLDR file?

No. You also would need to delete the Recovery Console information from boot.ini.
Is there anything else I need to remove before I try installing the XP version?
If you are referring to Recovery Console that comes with Windows XP, yes. Versions of Recovery Console from a Windows XP operating system of at least Service Pack level 2 will perform an OS check. If the operating system is not determined to match the operating system in use (including Service Pack level), installation aborts. I would recommend installing the recovery console from a Windows 2000 with Service Pack 4 CD (or bootdisks) instead. Edited by Yzöwl
Attachment Removed, (non-reditributable files)
Link to comment
Share on other sites

Thanks again Ascii2.

Disc/disk, I've never been sure of the correct way to spell it depending on context.

I always use "disc" to refer to round flat things generally, especially old things like vinyl record discs, but "disks" (US spelling?) when referring to computer disks/discs!

A bit like "programme", the usual UK spelling, and "program", the US spelling, but always used when referring to computer programs.

In fact my spellcheck (supposedly UK English) says that it's always "disk", and "disc" doesn't exist!

:wacko:

Anyway, we digress............

Thanks for the files.

I tried them, but the same result of course.

:(

I don't have access to a Windows 2000 SP4 CD, all I have is an update installation file for SP4, and while that contains later versions of NTLDR and NTDETECT.COM (which still don't work) it has no Recovery Console files included in it.

I will do a search and see if I can download them from somewhere.

Cheers,

Dave.

:)

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

Well, I now have an important update!

:yes:

I've made something of a breakthrough since my last post earlier to-day, which deserves a new post I think.

Not an actual fix I'm afraid, but I'm a lot nearer to understanding (I think) what's happening here.

I was wondering, if you remember, whether the size of my registry files was an issue.

My SYSTEM file, which is the file mentioned in the error message, is 9.26MB.

Having had similar issues with registry size in Windows 98 (here if anyone's interested) I wondered if this could be a similar issue.

I also read on the MS Knowledge Base that Windows 2000 only has 16MB of memory available while it's booting up.

So, I did an experiment.

I backed up my registry, and then substituted the SYSTEM file in D:\WIN-NT\System32\Config with the much smaller SYSTEM file in D:\WIN-NT\Repair. That file is only 2.77MB instead of 9.26MB.

I then installed the XP NTLDR and NTDETECT.COM files which Ascii2 kindly provided.

The system booted without the error message!

:thumbup

The "Starting Windows" bar didn't appear at all, and the progress bar on the splash screen was much faster in completing.

Then it went wrong.

:no:

It got as far as displaying the GUI background, but before the "Preparing Network Connections" message came up, the system just rebooted.

I tried again with the same result.

I then put the original SYSTEM file back, and tried again.

Same result!

I then put all the registry files back from their backups.

Same result!

Strangely, the system file was always reverting to the smaller version.

There is a SYSTEM.ALT file in the folder, and it's possible it was reverting to that.

I got the system up and running again by replacing the registry backups again, and the original startup files.

Then everything returned to normal.

So, I'm pretty convinced that the problem is being caused by the SYSTEM file being too large.

That almost certainly explains why simple later version startup file substitution works on some systems and not on others. It only works if the registry, or probably more specifically the SYSTEM file, is below a certain size.

I assume that the loader is trying to fit the registry into memory on boot, and basically it's too big to fit into the limited memory then available. The 2000 loader possibly doesn't do this, which may be one of the reasons that it's slower.

There must be more to it than that of course, or Windows XP installations would fail to boot if the registry got too big, but I'm sure that's the gist of the problem.

The smaller SYSTEM file I have in the Repair folder is I believe the one that was backed up when Windows 2000 was last installed. It is from October 2007, which would make sense as I did have to do a repair install not very long ago, and that was probably it.

Unfortunately it looks as if that file is not up to date enough now to start the system.

So, what I need to do is get the size of my existing registry down!

I've tried a compacter program on it, but that said that there was only 4% fragmentation, and made little difference.

The SOFTWARE file is huge, 36.3MB, but I'm hoping that it's only the SYSTEM file that I have to worry about.

So, what's stored in that file, and how can I go about reducing it?

I assume that it contains the stuff in the "System" hive.

I have three "ControlSets" as well as the "Current" one.

Is that really necessary as they seem to be rather a lot of data.

Can I somehow lose one or two of them without disaster?

Any more help greatly appreciated.

I feel I'm on the verge of finally cracking this now!

:)

Link to comment
Share on other sites

It seems that you made a discovery Dave-H.

It is possible that Windows XP does not allow its registry hives to grow very much and its loader cannot handle large registry hives as well as Windows 2000.

I have looked into this issue, and it seems that problems with large registry files were corrected in a patch during year 2000 and the fix was included in Windows 2000 Service Pack 2.

It may be best for you to use a recent version of the Windows Server 2003 boot loaders. Acording to KB302594, Windows 2003 should be able to load much larger registry hives. It may be that the Windows Server 2003 may not load Windows 2000 as quickly as a recent boot loader from Windows 2000.

Note that Windows Server 2003 also uses a boot loader "Osloader.ntd".

Articles related to registry hive size and boot (none pertaining to Windows XP):

Edited by Ascii2
Link to comment
Share on other sites

I don't have access to a Windows 2000 SP4 CD, all I have is an update installation file for SP4, and while that contains later versions of NTLDR and NTDETECT.COM (which still don't work) it has no Recovery Console files included in it.
If you slipstream the Windows 2000 Service Pack 4 update into a Windows 2000 installation source the . The Windows 2000 Service Pack 4 redistributable does not contain all the files necessary to install the updated Recovery Console, but once slipstreamed into a Windows 2000 installation source, the updated Recovery console may be invoked using the installation source's "Winnt32.exe".

A download from Microsoft Corporation exists that has the files necessary to install the Recovery Console, but installing from it is not publicly a Microsoft documented method (I have forgotten what package(s) exactly to download).

Link to comment
Share on other sites

(not Windows Server 2003, as it seems to use a different file to load the operating system)

This is news to me.

Care to expand on this? :unsure:

Windows Server 2003 products may use a boot loader file named "Osloader.ntd" (NTLDR and NTDETECT.COM may still exist). I am uncertain between the relationship between the different boot loaders of Windows Server 2003.

Well, Osloader.ntd is ONLY used when booting from ADS:

http://support.microsoft.com/kb/843536/en-us

Probably :unsure: just like SETUPLDR.EX_ is used instead of SETUPLDR.BIN for PXE/RIS installs/PE's.

Thanks guys,

jaclaz your possible suggestion sounds interesting, but are you saying that I would have to have a floppy image on a floppy disk in the floppy drive when I boot to implement it?

Of course NOT. B)

Basically:

You choose a "main" set of loader files, let's say the Windows 2000 ones, and have them in C:\:

NTLDR (from win2k)

NTDETECT.COM (from win2k)

BOOT.INI (with ONLY entries for your Win2k)

You add to BOOT.INI this line:

C:\grldr="grub4dos"

Then you add to root the grldr file from grub4dos:

http://www.boot-land.net/forums/index.php?showtopic=14

And a menu.lst containing (among others) entries like:

title Windows XP

find --set-root /winxp.ima

map --mem /winxp.ima (fd0)

map --hook

root (fd0)

chainloader /ntldr

Read the grub4dos guide:

http://www.boot-land.net/forums/index.php?showtopic=5187

Then you create a number of floppy images, like the one depicted on http://www.xxcopy.com/xxcopy33.htm , each with a given "set" of NTLDR+NTDETECT.COM+BOOT.INI. (and you save them in the ROOT of C:\ or another drive, or in another path on your hard disk)

The floppy image can be gzip compressed, or alternatively, Zip compressed if you use memdisk, and memdisk can be gzip compressed, some details are here:

http://www.boot-land.net/forums/index.php?...c=3963&st=0

A suitable app for creating floppy images is VFD:

http://chitchat.at.infoseek.co.jp/vmware/vfd.html

A similar approach and some more details:

http://www.msfn.org/board/index.php?showtopic=127900

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

Thanks guys.

:)

Sorry jaclaz, I think I understand now!

I obviously had completely the wrong end of the stick there.

It would of course be very silly indeed to have to have a floppy in the floppy drive to boot up!

I will follow up your suggestion if I don't get anywhere with my registry investigations.

Ascii2, thanks so much for researching those KB articles for me!

The one I was most interested in was 269075, which contains a section on reducing the size of the SYSTEM hive, which is exactly what I want to do.

I went through it, but was puzzled to find that one of the registry keys that it refers to doesn't seem to exist on my system.

It's "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Share".

All I have under \CurrentControlSet\Services\LanmanServer is a subkey called "Shares", not "Share".

That is empty apart from a "Security" subkey, which is also empty.

There is no "Share" key in any of the ControlSets under that path, so I couldn't proceed with that procedure to reduce the SYSTEM hive size.

I did get hold of copies of the Windows 2003 NTLDR, NTDETECT.COM and OSLOADER.NTD files and gave them a try.

Really bad move!

:no:

It didn't boot, with the same error message, and when I went into Windows 98 to put the original files back, I got a frightening message that the MBR was corrupted!

When I went into the Windows 98 Recycle Bin it warned me that was corrupted.

Most worrying of all, when I went into "My Computer" on Windows 98 I found to my horror that all the drive letters (except C: of course fortunately) had been rearranged!

I was really worried that I'd hosed the system completely, but fortunately once I'd restored the original 2000 startup files and deleted osloader.ntd, everything returned to normal after a reboot.

So, where do I go from here..........

:)

Link to comment
Share on other sites

The one I was most interested in was 269075, which contains a section on reducing the size of the SYSTEM hive, which is exactly what I want to do.

I went through it, but was puzzled to find that one of the registry keys that it refers to doesn't seem to exist on my system.

It's "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Share".

All I have under \CurrentControlSet\Services\LanmanServer is a subkey called "Shares", not "Share".

That is empty apart from a "Security" subkey, which is also empty.

There is no "Share" key in any of the ControlSets under that path, so I couldn't proceed with that procedure to reduce the SYSTEM hive size.

"Share" probably should have been "Shares" in the KB article; "Share" may be a typo.

You should be able to delete one of your three ControlSets. Check the [HKEY_LOCAL_MACHINE\SYSTEM\Select] key to determine what control sets are being used for "Current", "Default", and "LastKnownGood". You may delete all other ControlSets.

If you are able to reduce you SYSTEM hive sufficiently such that the Windows XP boot loader is able to load Windows 2000, Windows 2000 may in the future fail to boot if the SYSTEM hive continues to grow. It may best just to continue using the Windows 2000 boot loot files.

Edited by Ascii2
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...