As wonderful as computers can be, they can also be incredibly infuriating. Probably the most frustrating problem computer users run into are startup problems, where your computer won’t boot. Equally annoying are error messages you constantly run into during your computer’s startup process. In this article I’ll give you a few tips on how you can avoid some of the most common problems that happen right after your computer turns on.

Learning the Boot

Before getting into the troubleshooting details, you need to know a little about when goes on during the startup process. The reason is, there are actually quite a few steps that occur in between flipping the power switch and hearing the familiar Windows 95, 98 or Windows ME startup sounds and seeing the Windows desktop. In fact, there are a whole series of files that are automatically loaded one after the other when you turn your computer on. The trick with troubleshooting startup problems is trying to figure out which of those files (or what step in the process) causes your specific problem to occur. If you don’t know approximately where in the startup process your holdup happens, you could end up wasting an inordinate amount of time (and even causing more problems) on something that’s irrelevant to your situation. So, here goes.

When your computer is first turned on, it automatically loads a program called the BIOS, or Basic Input/Output System, which is stored on a special chip on your computer’s motherboard. The BIOS is essentially a combination of software and hardware in that it consists of software, but the contents of that software is stored in a hardware chip. On most recent computers, the BIOS can be updated via a process called flash updating, which uses a piece of software that’s stored on a special startup floppy disk to overwrite the contents of the chip with a new version. On older computers, however, to upgrade the BIOS software you need to physically remove and replace the chip itself. (BIOS upgrades are often a necessary step in solving hardware-related problems. See the "PC Hardware Troubleshooting Tips" article for more.)

One of the first things you should see on your computer’s monitor when you start your PC is some type of message that’s akin to "Hit Esc to enter Setup," although instead of Esc it may say F2 or F10 or any number of other keys and instead of Setup it may say CMOS Setup or BIOS Setup or just CMOS. Make note of the key required to enter the Setup program because you may need that later (some startup problems can only be solved by changing some BIOS/CMOS settings via the Setup program).

As the BIOS runs, it performs a number of tests on your hardware called POST (Power On Self Test), such as checking the memory. Then it lists any devices that it finds attached to your computer’s internal IDE controller(s). Typically, this is any internal hard drives, CD/DVD-ROM drives, tape drives, etc. One common problem you can check for is to make sure that all the devices that are supposed to be attached to the IDE controllers are listed. If not—for example, if you just upgraded your hard drive or added a DVD-ROM drive and you don’t see a reference to them right after your computer turns on—then more than likely there is a connection problem between the IDE controllers on your motherboard and the device itself. You’ll have to open up your PC, check the cable connections at both the drive and on the motherboard and, if necessary, replace your IDE cable(s). In a few rare instances you may also have to make some changes to your hard drive settings in the BIOS Setup program mentioned earlier.

Another possible problem if a drive that used to appear in that listing no longer appears is that a physical problem has occurred with the drive. (Computer peripherals don’t last forever after all—although you should get at least five years out of a hard drive or CD-ROM drive.) If that’s the case, check the cable connections—sometimes they just come loose—and then run a disk utility such as ScanDisk or Norton Utilities’ Disk Doctor from a boot floppy disk to see if you can salvage any of your data. More than likely in this scenario it’s time to start thinking about a new hard drive.

If you have a SCSI controller installed in your PC, you will also see a message about any BIOS (separate from the main system BIOS) that it has, as well as a listing of all the internal and external SCSI devices attached to it. Again, if you don’t see a device listed, you need to double check the cable connections, or check the integrity of the devices themselves. One other possible issue with SCSI devices has to due with SCSI termination issues, which I discuss more thoroughly in the "Mac Hardware Troubleshooting Tips." (SCSI is SCSI, regardless of platform, so the concepts explained there are just as relevant for PC people as they are for Mac users).

Mastering the Master Boot Record

After the BIOS finishes it work, it hands control of the startup process to some specific files stored in the first sector of your hard drive. This special area is called the master boot record and it contains critical information about how to start Windows (or any other operating system(s) you may have installed on your PC) as well as the specific files needed to continue the startup process.

Because of critical role it plays, your hard drive’s master boot record is also a favorite target of virus writers. Why you wonder? Well, if a virus corrupts or rewrites your master boot record, your computer won’t work (and people who create viruses seem to get some sick pleasure out of causing computers to "break"). Viruses that target this area are called, logically enough, boot viruses and they are probably the most common type of virus there is (other than Word macro viruses, that is, but those aren’t typically very lethal). Most anti-virus programs can take care of boot viruses, but only if you have a boot floppy disk with the anti-virus program installed on it (otherwise you can’t boot your computer to get to the anti-virus program to run it!).

If you’re really stuck, one other trick you can try is to use the Fdisk partitioning program, which comes with any version of Windows, to rewrite the master boot record. You’ll need a boot disk with the Fdisk and Sys programs on it for this trick to work (see "Creating a 'Real' Windows 95 (or 98 or ME) Boot Disk" for more on how to do this). You can find both those programs (as well as other DOS utilities) in the Commands folder inside your Windows folder.

As with any startup floppy disk, you need to turn your computer on with this floppy disk in the floppy drive and then the computer will use it to start the computer instead of trying to use your hard drive. If your PC boots successfully from the floppy, you should be taken to a DOS command prompt that says A:\. To make anything work under DOS you have to type in commands that tell the computer what to do, so use the following commands to continue with this process (hit the Enter key after each one).


fdisk /mbr

sys c:

The first command switches over to your main hard drive, the second command tells the Fdisk program to rewrite the master boot record, and the third command rewrites the critical startup files back to your master boot record using the DOS Sys program. I’ll warn you now that this technique doesn’t always work (and in some cases you may need to reinstall Windows), but if you’re desperate, it’s certainly worth a try.

Starting the Startup Files

If you’re not having any problems up to this point, and your computer continues to boot, then that means your master boot record and a few of the critical startup files (such as Io.sys) are fine.

Next up are some old DOS startup files that—despite Microsoft’s claims to the contrary—continue to play an important role for Windows on many (though not all) PCs. Specifically I’m referring to the Config.sys and Autoexec.bat files, which are typically used to load device drivers and startup programs, respectively. (Device drivers are pieces of software that are used to communicate between the operating system and all the different peripherals inside your PC, such as your CD-ROM drive, sound card, modem, etc.) In addition, these files can be used to set up a few relatively obscure system parameters that usually don’t have any impact under Windows 95, 98 or ME.

If you have Config.sys and Autoexec.bat files on your PC (again, not all systems do), then any commands that they contain are automatically loaded or any programs that they refer to are automatically started when they themselves are loaded. One very common problem that occurs when you install new software (or hardware) on your PC is that the installation program may add a line to one of these startup files. This line (or lines) tells your PC to automatically load some software that the new program (or piece of hardware) that you just installed requires. Unfortunately, sometimes those new startup programs conflict with other software you already have installed on your system and cause the boot process to stop or your system to crash. (See the "PC Software Troubleshooting Tips" article for more on how to deal with those types of problems.)

Another related problem can occur when you remove software (or hardware) from your system. Depending on how you removed it or how the program’s uninstaller works, you may end up with a situation where there are references in one of these startup files to programs that no longer exist on your hard drive. In most cases like this you’ll get some type of error message that says something about being unable to find a particular file, but if you hit OK, your system often continues to boot and works just fine. In other words, it’s not causing any real problems for your PC, but it can be somewhat disconcerting or, at the very least, annoying.

In either the first or second example (but particularly the latter), the solution to the problem usually involves removing the reference to the problem line in your startup files. In other words, you tell your computer not to try and load the files that are either causing a conflict or no longer exist. You can do that by either finding the specific line in your Config.sys or Autoexec.bat file and deleting it or by essentially telling your PC to ignore that particular line by "remarking it out." There are two ways to do this as well. You either type rem and then the space character at the very beginning of the offending line, or use the semi-colon (;) character at the beginning of the line. So, for example, a line that previously said:


Would change to:

Rem Device=nec_bm.sys or ;Device=nec_bm.sys.

To edit your Config.sys or Autoexec.bat files (which should find in the root directory of your main drive—typically C:\) under Windows 95, you need to use some type of text editing program, such as Notepad, or the DOS Edit program. The easy way to do it, however, is to open the Run… command window off the Start menu and type in Sysedit, which launches the System Configuration Editor. This utility program automatically opens the five main startup files (including Config.sys or Autoexec.bat) in five overlapping windows for easy editing. Regardless of how you open files, you can make any necessary changes to the file(s) and save it (or them).

Windows 98 makes the process much easier by providing a program called the System Configuration Utility that lets you individually turn on and off lines in any of your startup files, including Config.sys and Autoexec.bat (as well as lots more that I’ll be getting to in just a bit). You can find the powerful System Configuration Utility via the System Information Tool, which is available off the Start menu via Programs, Accessories, System Tools. Launch System Information Tool and then from its Tools Menu you’ll find the System Configuration utility (as well as other very useful troubleshooting tools—this is one area where Windows 98 and Windows ME offer clear benefits/improvements over Windows 95). The easy way to launch the program it is to select Run… from the Start menu and type in msconfig.exe.

And More Startup Files

After the Config.sys and Autoexec.bat files (if present) load, the System.ini and Win.ini (again, if present) load. While these files are primarily leftovers from the days of Windows 3.1, they too can have a role in the startup process. And similarly, the exact same kinds of problems that can occur with Config.sys and Autoexec.bat can occur with these files—specifically, references to startup files that conflict with other programs or no longer exist on your system. In addition, though rare, it’s possible that certain settings in the System.ini or Win.ini can cause startup problems.

Thankfully, the exact same methods that you use to solve problems with Config.sys and Autoexec.bat can be used with System.ini and Win.ini. The respective System Configuration utilities I mentioned above will open them and let you delete or remark out references in those startup files as well. In addition, you can manually edit or, in some cases, simply delete settings in these files that are causing problems. (Of course, you may want to make a backup copy of them before you start deleting anything.)

Reading the Registry

The first "real" Windows 95/98/ME file to load is the massive Windows Registry, which keeps track of loading all the 32-bit Windows 95/98/ME drivers—their filenames typically end in .vxd—for all the peripherals in your PC. (The previously mentioned Config.sys only loads older 16-bit drivers that you solely need under DOS.) The Registry is in charge of loading a ton of other important operating system files as well. If you ever want to see just how many, take a look at the Bootlog.txt that you’ll typically find in the root directory of your C: drive. (You’ll have to turn on hidden files in Windows Explorer by going to the View menu, selecting Folder Options and going to the View tab in order to see it.)

When you see the text message that Windows 95, 98 or ME is starting to load (and then when you see the Windows splash screen), then you’ll know that your PC has begun loading and "processing" the registry.

If you don’t quite make it to the Windows splash screen, you could have a problem with one of the low-level drivers that form part of the Windows Virtual Machine Manager (or VMM). The VMM is what lets Windows run multiple applications at once (which makes your PC appear to be multiple "virtual" machines in one—hence the name). Typically, you’ll see a message that refers to being unable to load vmm32.vxd. In reality, vmm32 refers to a folder located inside your Windows/System folder on your main hard drive that holds several driver (.vxd) files. In some situations this error message may indicate that some of the low-level drivers stored in this folder have been corrupted, which typically requires you to re-install Windows. However, I have found that simply turning the computer off, letting it rest a few minutes, and then turning it back on sometimes takes care of the problem all by itself. (In fact, this is a good piece of advice for startup problems in general.)

In other situations, stopping right before the Windows splash screen could indicate a corrupted Windows Registry. That’s never a good problem to have, because it often requires re-installing Windows and all your applications (because application preferences are also stored in the Registry). You might be able to fix some Registry problems with Microsoft’s free RegClean if you can find it (it's no longer available on the Microsoft web site) or, if you have Windows 98 or ME, by running the Scanreg (DOS) or Scanregw (Windows) utilities bundled with that OS.

If your registry is completely hosed, you can go back to a previous version (or any one of five or more previous versions under Windows 98 or ME), by renaming the Registry backup files that Windows automatically creates every time it successfully starts up. The two files that actually make up the Registry are called System.dat and User.dat and the main (or most recent) backups of those files are called System.da0 and User.da0. You’ll find all of these files at the main level of the Windows folder. To make use of the backups you’ll need to boot to a DOS prompt and then rename the System.da0 and User.da0 files to System.dat and User.dat respectively, overwriting the other files in the process. To do that in DOS, you use the following commands:

Rename system.dao system.dat

Rename user.da0 user.dat

Once you’ve done that, you’ll need to restart the machine (holding the Control, Alt and Delete keys simultaneously always works), and then reboot from the hard drive to make the changes take effect. This is a good technique to use if you just installed a new application and start having Registry-related problems immediately afterwards because it will revert the Registry to the state it was in before you did the install. If you made the installation a few days (or, more importantly, a few "restarts") ago, then the backup versions will have the same problems as well, so this technique may not work in those situations.

Registry Drivers

If your computer makes it to the Windows splash screen before it stops, you probably have a driver-related problem. Many PC startup problems are the result of drivers that don’t load properly from the Registry, either because of a conflict with another driver, because a driver has been corrupted or accidentally deleted, or other possible problems. Unfortunately, there’s no easy to way to edit the Registry in the same way you can with other startup files, so Windows provides other options if your computer stops the boot process at this point.

The most common one is known as Safe Mode, which is essentially a limited, or minimal version of Windows that loads when your PC is having problems. Thankfully, in many situations Windows is smart enough to know when a problem has occurred and will automatically start in Safe Mode (or at least give you the option to start in Safe Mode) the next time you restart. In some situations you may also want to force your computer to start in Safe Mode. To do that, hold down the F5 key when you start up and keep holding it until you see that your PC has booted to Safe Mode. You can easily tell this because your screen resolution will be reduced to the VGA standard 640 x 480 resolution and you’ll see the words "Safe Mode" all over the screen. (Another way to do this is to hold down the F8 key during boot time until you’re presented with the Windows Startup Menu and then choose Safe Mode from the list of options presented there.)

When you’re in Safe Mode Windows skips the Config.sys and Autoexec.bat files and loads a minimal set of drivers that lets your PC function at a basic level. However, usually you can’t print, use your modem or do lots of other things you would normally otherwise be able to do. You can, however, run most of your applications, so if you’re desperate to get some work done and your machine keeps crashing, you may want to consider simply working in Safe Mode for a while.

The idea of Safe Mode, however, is to let you do things like install driver updates or make other software changes (such as changing references to start up files, as discussed earlier) while in a familiar Windows environment. Once you’ve made your changes, you can restart the machine and check to make sure that everything works.

Another common startup troubleshooting technique is to take advantage of the Step-by-Step Confirmation mode that Windows also offers you when you use F8 to boot your machine. In step-by-step mode, Windows asks you before it loads certain programs called for in your startup files. The idea is that by loading files one at a time, you can more quickly tell what’s causing the problem. Basically, you say Yes to each prompt until your machine freezes and you’ll learn the culprit. Note that this mode processes the entire Registry at once, however, so if the problem is a particular file called for in the Registry, this method won’t tell you which one it is.

Still More Places for Programs to Run

Believe it or not, we’re still not done yet, particularly if you’re trying to track down all the different programs that can be loaded automatically when your computer boots up. Some applications and utility programs, for example, take advantage of the fact that in addition to loading drivers, the Windows Registry can also automatically load applications (or small programs that continuously run in the background while your PC is on) in a kind of "hidden" way. The only way to find these is to open RegEdit, the built-in Windows Registry editor and go to the HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion section of the Registry and click on the Run, RunOnce, RunOnceEx, RunServices, and RunServicesOnce keys inside the Registry. Each item you see listed on the right hand side is started up each time Windows boots.

To prevent any items listed in any of these keys from starting up, you need to delete the specific settings from the key by right-clicking on it and selecting Delete from the context menu that appears. Select all but "Default" if you want to get rid of all of them and simply quit RegEdit when you're done. (Note that deleting these settings will not delete the software they're pointing to, just the command to launch them at boot time.) I don’t recommend you edit the Registry unless you know exactly what you’re doing, but this simple procedure can be helpful.

Finally, the last step that occurs in the Windows startup process is to automatically launch any programs that have shortcuts stored in the Startup folder, which you can find inside the C:\Windows\Start Menu\Programs directory. As with Registry’s Run keys, some applications and utility programs take advantage of this feature to automatically launch program’s every time you start Windows. Using the Startup folder is a more "public" way of doing it, however.

Unlike the Registry, fixing problems related to the Startup folder is easy—simply drag the shortcut of the offending application (or anything else you want to keep from starting automatically) out of the Startup folder and onto your Windows desktop. If you prefer, you can even delete it—as long as it’s just a shortcut it won’t affect the real application. The next time you restart your machine and Windows loads, whatever you’ve taken out of the Startup folder simply won’t start automatically. You can start it manually any time you want, however, by simply double-clicking on the shortcut icon you dragged to your Windows desktop.

The End

As you can see, there’s quite a bit to the Windows startup process. In fact, if you had to go through all these different techniques it could literally take you days to figure out what your problem was and what was required to fix it. If you can narrow down where in the process your particular problem occurs, however, you can save yourself a lot of time and effort.

Ultimately, all computer troubleshooting problems—including those related to startup—are solvable, but that doesn’t mean they’re necessarily logical, nor easy. (If you feel like you've invested enough time, you can always just start over and reinstall everything. See "Starting Over: Repartitioning, Reformatting and Reinstalling" for more.) As with all difficult procedures, perseverance, common sense and a bit of good luck is what you’ll need to get through your startup problems and get back to enjoying your PC. Good luck.