WindowsDevCenter.com
oreilly.comSafari Books Online.Conferences.

advertisement


AddThis Social Bookmark Button

Optimizing Windows Startup

by Mitch Tulloch, author of Windows Server Hacks
11/09/2004

While Windows XP is a big improvement over previous versions of Microsoft Windows in terms of how long it takes to boot your system to the desktop, there are a few things you can do to squeeze even faster boot times out of your machine.

Of course, if you're one of those who likes to leave their computer on all the time, this won't matter. I've heard arguments on both sides of this issue, some saying always-on causes more wear on mechanical parts such as your hard drives and fans, others saying frequent cold starts are even harder on such parts and shorten their useful lifetime. For myself, I've developed a compromise--I leave my home machine on all the time during weekdays so I can access it immediately when I get home from the office and need to finish some work or check my email, but I also turn it off from Friday evening until Sunday evening so I can enjoy the weekend and have a life.

But when I turn on my machine Sunday evening, I get impatient at how long it takes to start up. I want access to my email, and I want it now. What can I do to speed things up? Here are six tips you can try out to speed the startup process for your machine.

BIOS

One trick is to disable various system integrity checks performed during the BIOS power-on self test (POST) routine, such as testing for faulty RAM. You can also change the boot order so that your hard drive is the first boot device. Of course, if you are using an old machine, your BIOS tuning options may be limited. One of my office machines is an old Dell Precision workstation, and the POST routine takes more than 30 seconds to run, longer than it takes XP itself to start up on the machine. The answer here would be to buy a newer machine, but I like to keep costs low for my business so I buy most of my machines from ComputerGeeks and then add more RAM and extra hard drives until the machines meet my needs.

Boot.ini

If you've installed the Recovery Console on your machine, or if you multiboot to XP and some other OS, the Boot Loader menu appears after the POST and asks you to choose which OS or version of XP (normal or Recovery Console) you want to launch. The default time-out for this menu is 30 seconds, and you can shorten this to something more reasonable like 3 seconds by editing the boot.ini file. The easiest way to do this in XP is to use the bootcfg command with the /timeout switch to change the time-out value to 3 seconds as follows:

C:\>bootcfg /timeout 3

Here's the response you'll get:

SUCCESS: Changed the timeout value in the BOOT.INI.

You can then use the bootcfg command with the /query switch to confirm the result:

C:\>bootcfg /query

Boot Loader Settings
--------------------
timeout: 3
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
------------
Boot entry ID:   1
Friendly Name:   "Microsoft Windows XP Professional"
Path:            multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optin /fastdetect

Boot entry ID:   2
Friendly Name:   "Microsoft Windows Recovery Console"
Path:            C:\CMDCONS\BOOTSECT.DAT
OS Load Options: /cmdcons

Another tweak is to add the /noguiboot switch to your OS load options to disable the Windows XP splash screen and boot progress bar. This will reduce your startup time slightly, but it has the side effect of disabling stop screen messages generated during startup, so use this approach with caution. Here's how you do this using the bootcfg command:

C:\>bootcfg /addsw /ng /id 1

Here's the response you'll get:

SUCCESS: Added the switches to the OS entry "1" in the BOOT.INI.

To verify the result, note the /noguiboot switch added to the OS load options for boot entry 1 below:

C:\>bootcfg /query

Boot Loader Settings
--------------------
timeout: 3
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
------------
Boot entry ID:   1
Friendly Name:   "Microsoft Windows XP Professional"
Path:            multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optin /fastdetect /noguiboot

Boot entry ID:   2
Friendly Name:   "Microsoft Windows Recovery Console"
Path:            C:\CMDCONS\BOOTSECT.DAT
OS Load Options: /cmdcons

Startup Programs

Programs that launch automatically when Windows starts can be a major drag on how long it takes to boot your system. Some of these programs are legitimately needed, but others may be holdovers from trial software you installed from the Internet. You can check the contents of the Startup folders for both your own user profile (%UserProfile%\Start Menu\Programs\Startup) and for the All Users profile (All Users\Start Menu\Programs\Startup) under C:\Documents and Settings. Any shortcuts to programs that are no longer needed should be deleted from these folders.

And while you're at it, you may as well check the Run Registry keys for additional programs that automatically run when Windows starts. The two Run keys are found at:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

and

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

The Prefetcher

Windows XP includes a new feature called the prefetcher, which monitors the boot process to determine which files are needed, and then preloads those files early in the boot process to optimize startup. The prefetcher can be configured to preload boot files, application files, or both, by editing the following Registry DWORD value:

HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement
	\PrefetchParameters\EnablePrefetcher

Possible values are:

0 = no prefetching

1 = application prefetching only

2 = boot prefetching only

3 = both application and boot prefetching

Related Reading

Windows Server Hacks
100 Industrial-Strength Tips & Tools
By Mitch Tulloch

The default value is 3, but this can be changed to 2 since application files usually end up being cached in the RAM cache and hence don't need to be prefetched.

Hibernation

One way of getting really fast boot times is to put your machine into hibernation instead of powering it down at the end of the day. Hibernation mode causes the current memory contents to be written to file, after which the computer shuts down. When your machine is restarted, a Resuming Windows message is displayed instead of the usual Starting Windows message, and the contents of the hibernation file (Hiberfil.sys) is read back into memory in only a few seconds, after which you are prompted to type your password to unlock your desktop.

Hibernation is supported by ACPI-compliant hardware but must first be enabled on the Hibernation tab of the Power Options utility in Control Panel. Once it's enabled, you can send your machine into deep sleep anytime by clicking Start -> Turn off computer -> Hibernate, assuming you're using the Welcome screen instead of the classic Windows log-on screen.

One issue with hibernation can come up if your password is configured to expire periodically. The problem is that if your password expires while your machine is hibernating, you can't bring it out of hibernation to reset your password. To work around this, boot in safe mode, log on using the local Administrator account, and change the password for your ordinary user account, then reboot the machine.

Automatic Log-on

Finally, you can configure your machine to automatically log on with your user account after Windows starts. That way you can turn the machine on and go make your coffee, and when you return your desktop is open and any programs in your Startup folder (like your email program) are running. The way to configure this feature is described in How to turn on automatic logon in Windows XP in the Microsoft Knowledge Base. Be warned, though--using automatic log-on means that anyone who can press the power button on your machine can access your desktop, so use this feature only if your computer is physically secure and you are the only person who uses that machine!

Mitch Tulloch is the author of Windows 2000 Administration in a Nutshell, Windows Server 2003 in a Nutshell, and Windows Server Hacks.


Return to the Windows DevCenter.