On Monday, I make a decision: “I’m going to re-install my Operating System.” I’d been deliberating this for weeks. This is because since around July time, I’ve been noticing boot time increases. Not tiny increases of, say a few seconds, we’re talking minutes. Luckily, I signed up to be in the public beta for a program called Soluto – which you should totally check out (if you’re a Windows user), by the way. One of the great things about Soluto is that it allows you to time your boot sequence. Once it’s done that, it can suggest ways to improve your boot time.
This, unfortunately for my situation, provided me with a temporarily reduced boot time. My fastest boot was clocked at, around 2 minutes. That might not sound like a lot, but for the technology that’s built into my PC, that’s quite slow. Of course, some of my slower boots were around the 4 minute mark. So I decided to re-install my Operating System.
How Would This Help?
Well, as you may or may not know, the Windows family of Operating Systems try their hardest to optimise themselves. The goal of this is to reduce software boot times (note: the use of “software” there, not “operating system”). To do this, Windows uses a piece of software called the Prefetch. The basic algorithm for this software is:
- Look at the most used programs on the computer
- Make a list of the ones that were used last
- Prioritise them by overhead (average size in memory) and how long the user spends using the software
Once the Prefetch has this data, it is able to load large chunks of these programs into memory as Windows boots. Usually, this takes place between the “Welcome” screen, and your desktop appearing. The problem with this is that the Prefetch can – and often does – load that many programs into memory when Windows boots, that it slows down the boot process. This might be due to the user having used many different pieces of software over a long period of time. For instance, my average day of computer use requires the following software (amongst others) to be loaded as and when I need them:
- Google Chrome
- Flash player
- Adobe Reader
- Visual Studio
- VLC Player
- Final Draft
And that’s just a list of programs from the top of my head. Each time that you load a different program, and entry is made or added to in the Prefetch database; which means that some of that program will be loaded the next time you boot.
What Happened, Then?
So, I woke up at 8.30 am. By 9am I’d done my morning stuff (brushed my teeth, washed, had breakfast, gotten dressed) and was ready to begin the process of re-installing my Operating System.
I know that I haven’t mentioned the name of the Operating System yet, and that’s intentional. Let’s just say that it’s a 64 bit version of a Microsoft Operating System that replaced one called Longhorn.
I’d spent a large portion of the previous weekend backing up my important data. I’ve been stung by this one to many times (and by that I mean, four times). The last thing anyone wants is to wipe their computer clean, re-install the Operating System and get it all set up and ready to use, only to find that they forgot to backup a specific file or folder.
I lost my 1st year of college notes to this in 2003, then lost some of my 1st year of University notes to this in 2005. Luckily, I’d made redundant backups of my notes and work on the University’s computer system (by that, I mean that I stored my work both at home and at University). The 2 times that I’ve been stung by this have been since University, and I’ve lost 2 files that where on Google Documents anyway (although, I’d forgotten that at the time).
Anyway, I sat down at my PC. I booted the OS. I checked one last time, then shut down. I got out my OS install disc and inserted it into my BluRay DvD drive. After a few minutes, the system had been wiped and the OS was being installed.
Side bar: The Windows OS installer has been simplified so much over the past 10 years. It’s almost baffling how clunky and slow it was, back in the days of Windows 95 through to XP.
There’s a point, during the Windows install routine, when your computer has to restart to complete the installation. You can either press a button to force the machine to restart immediately, or you can wait 10 seconds. It doesn’t matter which you chose, they both do the same thing.
After this point, however, disaster stuck.
When your computer restarts at this point,it runs through the Windows OS setup’s final routine: Gather information from the user about them and their Licence Key. After the standard Windows boot screen (image below), a pale screen is shown with some prompts and some test boxes, selection boxes and drop down menus.
The problem was, that my monitor went blank after the Windows boot screen. The only message I was given was from my monitor directly: “No Signal Detected.”
This meant that my monitor wasn’t receiving a video signal from my computer. For some reason, my thoughts took me to my hard drive: “Maybe the installer didn’t copy the files across correctly.”
So, I went through the process again. I formatted my hard drive and began the install process again.
It happened again.
What Did You Do?
I knew that if the data wasn’t being written to the hard drive correctly, then there’d be a trail somewhere. But to get to the trail, I’d need an Operating System. This is where Ubuntu comes in.
Ubuntu is a distribution of Linux. Linux is a free Operating System. A free Operating System that many people claim is better than any other Operating System. That’s all I’m going to say about that.
I booted into an Ubuntu Live CD – a Live CD is a version of an Operating System that you can try out before you install it – and had a look at the default tools available to me.
GParted is a partitioning program. I used it to bring up the basic details about my hard drive: how much data was on there; what format it was all stored in; when it was last accessed; etc.
It all looked ok. Or at least, how it should.
Next, I used the SMART tools.
Most hard drives are SMART enabled. I wont bore you with what SMART means, but it’s a way for your hard drives to track how they are each doing. Similar to a health check that they perform on themselves from time to time. This includes any bad sectors of the disc, any reads or writes that failed, any time when the hard drive got too hot, estimated time of use left. All sorts of useful information.
The SMART data told me that the hard drive was more than healthy (with over 10,000 hours left; 0 problematic writes and 0 over heats). “Maybe it’s the formatting step that’s going wrong,” I thought.
I brought up a terminal (the Linux equivalent of the Windows Command Prompt) and typed in the following command:
sudo dd if=/dev/zero of=/dev/sda
The command tells Linux to copy some data from an area of memory called Zero onto my hard drive (sda) using the tool DD (sometimes called Data Descriptor). This meant that the entirety of my hard drive would be wiped clean and it would look like a virgin hard drive, fresh out of the manufacturing plant. Wiping EVERYTHING on the hard drive meant that I’d have to rebuild certain parts in software (ToC and such), but that’s easy enough with GParted.
Did That Work?
I dropped out of Linux and started Windows re-installing after I’d finished zero’ing the hard drive (and rebuilding sections of it). The install procedure seemed to go a little quicker this time. “Maybe GParted can, somehow, make the hard drive more optimised,” I thought. Maybe it did, maybe it didn’t.
It happened again: just after the boot screen (post install), my monitor went blank.
“It can’t be the hard drive, I’ve checked it thoroughly.” By this time, I’d downloaded and tried SeaTools, Samsung’s own hard drive checker (my hard drive is a Samsung SpinPoint3) and a great suite called MHDD. All of which said that my hard drive was fine, no errors.
“It can’t be my graphics card, that was working fine yesterday… Maybe I’ll take another look inside the case.”
A Stroke of Genius
When I looked inside the case, there was nothing wrong. All the cables where plugged in firmly; the components where sat neatly and flush to their surroundings; the motherboard was fine.
… “That CAN’T be it!”
Most motherboards will have 2 PCI-E ports that are next to each other to allow for multi-grpahics card displays (CrossFire or SLI, dependant on the manufacturer of your graphics cards), as does mine. Except that the ports are quite far away from each other on my motherboard; further than you would expect.
I got out the motherboard manual – it’s worth keeping these to hand, even if they are filled with Chingrish – and looked up the difference between the two ports. It turned out that one of them, the black one – the one that I wasn’t using for my graphics card – had a higher throughput and data bandwidth than the other one, the blue one – the one that I was using for my graphics card.
“What the hell. I’ll switch it round. If nothing else, it’ll run a little better,” I thought.
I switched them round. The same thing happened… or did it?
“I’ve done it!” I shouted as the final stage of the installation appeared.
I clicked through these prompts in a flurry of joy, almost on automatic. AS any SysAdmin knows, you get to a point with installations where it all becomes muscle memory and you zone out.
“Windows is restarting one last time,” I was informed.
It happened again.
However, this time Windows had finished installing. “Maybe it’s a dodgy driver,” I thought as I set my PC booting in to Safe Mode.
“It MUST have been a dodgy driver.” I restored a backup of my drivers from the previous install of Windows using Double Driver.
Double Driver is an excellent program that has saved my bacon more times that I care to remember. Give it a try.
I crossed my fingers as I restarted the machine.
Just because I’m a SysAdmin for 25 hours a week doesn’t mean that I don’t hope with all my heart that something works.
All that I could see and hear, when I was greeted with the Windows 7 desktop (in all it’s low resolution glory) was:
Well, it’s been nearly 27 hours since I started (thanks to a 11 hour long zero’ing procedure and stopping for 2 hours to eat), but I’ve finally gotten Windows installed on my PC again.
In the time it’s taken me to write, proof read and add media to this post, I’ve installed all the software that I wanted installing on here, too. I had a little problem with Google Chrome – on account of the DEP (Data Execution Prevention) leaping in and saying that the installer had crashed every time that I ran it – but I’ve fixed that now.
You’ve gotta love batch scripts.
All that remains for me to say is a huge thanks to Matthew and Timothy for their excellent help in figuring this one out.
I hope that they’re OK with me putting their first names up on here. If not, I’ll just delete them.
Until next time – which’ll, hopefully be after I’ve slept for about 15 hours – have fun,