3
Dec

Learning By Doing: The Great Memory Mess

Posted by: Edward Clark   in Computers

(I feel I must apologize in advance for the stream-of-consciousness nature of this post. I wrote it while I was trying to fix a particularly mystifying problem at work, while I was enduring several Startup Repair screens.)

So in the past, oh, 18 months, I’ve taught myself quite a lot about computers. I’d been using the same rig for years – since my second year of University, since you asked – and I liked it very much. Its death was sudden, and I had no idea what caused it. I went through the usual song and dance at the repair shop to fix it, but alas, ’twas not to be. Just as well, anyway, because I was about to travel to another continent, and transporting my beloved desktop was an expensive prospect. Still. I was left feeling completely impotent – I use computers every single day, for most of the day. I use it for work, I use it for play. Without one, my tail does not twirl. Yet when that beast breathed its last breath, it struck me just how little I knew about the way computers worked.

That needed to be rectified. I told myself that the next computer I owned, I would build myself. Cue training montage – I studied lots, I quizzed myself, I took tests. I passed. I learned as much as I could. Fast forward to today. I’m working in a small company as their resident geek, and my responsibilities are great and varied. I do a little bit of this, a little bit of that – mostly web design, some database coding, and some general IT work. I’m starting to bump into a statement with relative frequency that exposes the weakness in my book-based learning:

“I know how to do that, but I’ve never done it before.”

Ugh.

Just writing that makes me feel the full weight of my own newbishness. Can I save the data on that hard drive? Can I rescue your files from that virus? Can I fix your internet connection? Can I migrate your blog from wordpress.com to its own domain? Sure. I know how to do that. But I’ve never done it before. I’ve only studied it.

Most of the time, that’s enough. Sometimes, I need to learn by doing. There really is no substitute for experience. Every once in a while, I’m faced with a major computer problem that requires sustained, direct attention for days if I’m to fix it. I’m right now dealing with one of these.

One of my coworkers told me that his computer – an aging Lenovo laptop which he purchased from ‘a dealer,’ who appears to have bought it originally in Singapore – was behaving a bit too slowly. It was easy enough for me to diagnose the reasons for this and suggest an upgrade. His machine was at least five years old, and he’d upgraded it from XP Professional to Windows 7. It was fast enough to run that OS, but just barely. It hovered slightly above the minimum system requirements. The computer had just 1 GB of RAM, so I recommended an upgrade there, the rationale being that it would be fairly cheap and it would make a dramatic difference. I’d never installed a SO-DIMM module on a laptop before, but how hard could it be? I’d read about it a bunch, and besides, these things were designed to be modular. Also, scan.co.uk’s insurance policy was pretty beastly. There was nothing to lose – even if I broke it while installing it, they’d give me a refund.

Got it in a day. After consulting the instructions, sacrificing a chicken, and fiddling around with the socket for a while, I finally got it installed correctly. Huzzah! Now this module is in and the computer has twice as much memory. Checkmate, bitch. I win. Now all I need to do is boot this up, and…

Balls.

The machine got past the POST sequence. It counted all the memory. It started to load up Windows. Then, I got what is called a ’stop error,’ or ‘non-maskable interrupt,’ or, most commonly, a ‘blue screen of death.’ I did the Responsible Technician thing and recorded the god-awful string of hexadecimal values, so I could consult Google and figure out what was going on. Predictably, the first few hits gave me a small amount of information and then tried to sell me a registry cleaner. What I did manage to find after a bit of digging and forum-browsing was not good, however – the specific error code was associated with faulty and/or bad memory modules. Which made a lot of sense, obviously, since that was the most recent change I’d made to the computer.

I was able to rule out ‘damage to the system inflicted by an idiotic technician’ as a cause of the problem, because reinstalling the old memory module allowed it to boot up just fine. So, the problem was with the module we’d gotten from Scan, or so I thought. I consulted a friend of mine who actually knows what he’s doing and bothered him until he gave me his opinion. He directed me to memtest.org, which provided a free utility that I could use to test the memory module I’d just bought.

I tried it, thinking that it would show some kind of physical defect, and would simply require me to return that module for a new one. Since the machine booted just fine with the old memory, I assumed that the module was the source of the problem. Yet the memtest reported no problem with the module. It got past POST and it passed both Memtest and the Windows Memory Diagnostic test. I decided to bust out my trusty bootable Linux CD to see if it would load the OS at all.

And, what do you know? It did. At this point, I was thoroughly confused. I called up Scan to get their opinion on the matter, and they suggested that I look for a firmware update from the OEM.

Shit.

At this point, I started getting a little nervous. I’ve been told that firmware updates can be pretty dangerous, and that the risk of data loss or a completely unbootable (and unrecoverable) computer are both high. But in the patch notes for the latest firmware version, I did see a few notes about memory referencing fixes. Still, I’d never done a firmware update before, and I knew that the chance of turning this machine into an unbootable paperweight was reasonably high.

But hey, I’m an idiot, so I did it anyway. The installation went off without a hitch, the machine got past POST, and it gave me the option to pick which OS I wanted. Success! Or so I thought. Alas, it threw up the same problems. Except this time, neither memory module would allow the computer to boot. I’d actually succeeded in making the problem worse. My raw ability to fuck things up was starting to amaze me.

Yet the machine would still boot into Linux with either module. Because of this, I was hesitant to diagnose a bad flash. I mean, surely, if that were the case, it simply wouldn’t boot at all… right? It was also possible that I’d managed to frag the hard drive somehow, either through my meddling with the memory or upgrading the firmware.

Yet I could access the drive using the command console in Startup Repair. After I ran a chkdsk, I could even see it in Linux. The drive still worked. I could still get files off it, anyway, though I supposed I couldn’t completely rule out a problem there just yet. Still, the fact that I could access it through the command console was pretty heartening. I hadn’t destroyed it beyond repair! Hooray!

But I knew I was still screwed in the near term. Fun fact: I could access the laptop’s hard drive with the old memory using Linux or the Command Console. I couldn’t with the new memory, even though the computer booted the Ubuntu OS. WTF, mate?

At this point, I was pretty much resigned to the prospect of returning the memory I bought and either getting new sticks or giving up on the upgrade entirely. The 2GB ‘upgrade’ caused some kind of problem in the system, I reasoned, even though it got past POST and booted into Linux. While using the command line, for instance, I could see the files… but if I used the new memory, it sometimes threw up a BSOD.

So, I needed to fix the operating system files. Failing that, I needed to go with the Nuclear Option – reformat the hard drive, reinstall everything. I was loathe to do this, however, because it would require my coworker to find all the license keys for his software again. This is a guy who did not understand the link between having a working internet connection and the ability to receive emails. He’d also moved in the last year, so the odds of him being able to find those vital keys was pretty close to nothing.

However, it was also becoming pretty clear to me that I was going to have to cross the Rubicon here and format the hard drive. It’s a good thing that I backed everything up and therefore wouldn’t lose data.

Time passed. Startup repair was tried several times, with no success. Chkdsk was run, too, with no success. Hope began to dwindle.

So I installed Linux. It worked. Booted without the CD, and everything appeared to be functional. I took this to mean that there was no hardware fault preventing the computer from booting properly.

(Also, I’m now thinking of setting up my own laptop to be dual-boot capable with Linux. Why, you ask? Because the suffering makes me feel alive. Because I think I’d look great with a few gray hairs. But mostly because it’d be cool and increase my Geek Cred. Though I may be vastly overestimating the difficulty of this task, because I’ve just made a bootable Ubuntu pen drive using the native utility that came with the OS, and it took me all of five minutes to do without any instructions whatsoever. I did this in order to test the computer’s ability to do something that’s presumably quite complex using the new memory, and what do you know? It appears to be working just fine. It looks like I won’t be giving the stick back to Scan after all. The problem must have been with that version of Windows. Now that the hard drive has been reformatted, it seems to have no difficulties at all.)

So. Unless there’s some kind of serious problem with the Windows discs we’re about to get, or something native to Windows that makes the memory fail to cooperate again, my coworker will get his computer back, and it’ll be faster and better than it was before.

Phew.

That was way harder than it should have been.

Lessons learned:

  • How to properly install memory on a laptop – I’d never done this before, and now that I have, I’ll be able to do it with confidence in the future.
  • Seriously, bro, don’t update the firmware unless you’ve tried everything else. You should have attempted startup repair with the windows discs a couple of times before you did this.
  • Sometimes, when you can’t put your finger on the specific problem, the nuclear option is the only way. Get the files off, then nuke it from orbit. It’s the only way to be sure.
  • Linux is tied with Google as the best troubleshooting tool ever.
This entry was posted on Friday, December 3rd, 2010 at 7:36 am and is filed under Computers. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One comment

John
 1 

Nothing beats a pocket linux disk! If you’re committing to a Linux install, Ubuntu is good but Linux Mint is also a great option for those less familiar with the OS. It’s essentially an Ubuntu build but comes with everything your average user might want (codecs, flash, etc.) which otherwise don’t show up in a linux distribution since they’re closed source. Enjoy!

December 6th, 2010 at 6:10 pm

Leave a reply

Name (*)
Mail (will not be published) (*)
URI
Comment