Diagnosing a bad laptop hard drive

Last week, my father-in-law asked me to take a look at his Dell Inspiron laptop running Windows 10. He said he had left it powered on but not actively used it for a while, and when he picked it up to try to do something, it didn’t boot up normally, but instead entered Windows Recovery.

In hopes of an easy fix, I began my troubleshooting by simply choosing the Continue option to exit and continue to Windows 10, but the laptop after a long delay ended up back in Windows Recovery again. That time around, I selected the Troubleshoot option. Selecting System Restore revealed no restoration points, so I next tried selecting System Repair, but was shortly informed that the system could not be repaired without any particular reason being given.

At that point, my hopes of a speedy resolution were evaporating pretty quickly, but I still wanted to try to determine what was wrong. I selected the Command Prompt option so I could try taking a look at the file system; then, in the command prompt window that opened, I entered c:. After another long pause, the following message was displayed:

The volume does not contain a recognized file system.
Please make sure that all required file system drivers are loaded and that the volume is not corrupted.

Well, that didn’t sound good! No recognized file system detected? My gut feeling was that the hard drive was dying, but since my father-in-law said he didn’t have any files of notes on the computer, attempting to reinstall Windows seemed worthwhile.

I entered exit to get out of the command prompt, then inserted a Windows 10 installation disc into the laptop’s optical drive, selected the Use a device option, and chose EFI DVD/CDROM from the list of devices. After the laptop rebooted, when I was prompted to press any key to boot from CD or DVD, I pressed Enter, and after a period of time, Windows Setup loaded.

With the appropriate language, time and currency format, and keyboard or input method selected, I clicked the Next button, then clicked Install now. I accepted the license terms and clicked Next, selected Custom: Install Windows only (advanced) option, and then selected the 452 GB partition that was listed as Primary partition type (rather than System, Recovery, etc.).

When I selected that partition, Windows Setup displayed a message indicating Windows couldn’t be installed on the partition, so I clicked for details, at which point Windows Setup reported the following:

Windows cannot be installed to this disk. The disk may fail soon. If other hard disks are available, install Windows to another location.

That certainly eliminated any lingering doubts that I may have had about the hard drive being the problem: Windows Setup wouldn’t even attempt to install Windows 10 to the existing hard drive!

The laptop’s existing hard drive is not especially old, but it is a super-slow 500 GB Toshiba 5400 RPM drive. I’ve ordered a 240 GB Seagate BarraCuda SSD to replace it; although it’s only half the size of the original drive, it should run rings around the original, and for what my father-in-law uses the computer for—web browsing and email—it will be more than adequate.

How to use PuTTY to communicate with a TLS unit

The company that employs me is involved in the fuel management industry, helping government agencies and corporations keep track of who can dispense fuel, how much and what types of fuel they can dispense, and how much fuel has been used.

One thing that we are not directly involved in is the manufacture or maintenance of tank level sensor (TLS) units. The company’s software does include the means to track fuel levels in storage tanks, however, as reported by TLS units monitoring those tanks, and that means we need to communicate with TLS units.

Under normal circumstances, the company’s communication software once configured retrieves current tank level data from each TLS unit, but there are times when we need to independently confirm what information a unit is reporting. For example, we or a customer’s IT staff may need to determine how a contractor configured the tank probes, confirm a tank’s capacity, or manually check current tank levels or delivery records.

Our usual approach when that is necessary is to open a command prompt and start the Windows Telnet client by entering something like the following:

telnet 10.10.10.10 3001

That is assuming that the customer’s workstation or server actually has the Telnet client installed, however, which is not necessarily always the case, and we don’t always have the option of making modifications to a customer’s environment. In those situations, we have to have an alternative.

A couple of month’s ago, I started playing around with the PuTTY client to figure out if it could serve as a stand-in for the Windows Telnet client. After all, Telnet is one of the listed connection types on the main PuTTY screen, so it should be able to handle the job, right?

I began by entering a TLS unit’s IP address, changing the port number—3001 and 10001 are common defaults used by Veeder-Root and other manufacturers’ TLS units—then selected the Telnet connection type and opened the connection. I was greeted by this response:

9999FF1B

That essentially means the TLS unit looked at the information submitted to it and responded, What does that mean? I don’t know what it is you want me to do.

The solution, it turned out, was simple enough. In PuTTY, under the Connection menu, on the Telnet page, I changed the telnet negotiation mode from active to passive. After doing that and connecting to the TLS unit again, I was able to enter commands like this:

CTRL+A SHIFT+I 20100

And after pressing the enter key, I got a rational response from the TLS unit.

Curious about why I had to change this setting, I went searching for an answer, and found this in the PuTTY documentation:

“In a Telnet connection, there are two types of data passed between the client and the server: actual text, and negotiations about which Telnet extra features to use… In active mode, PuTTY starts to send negotiations as soon as the connection is opened. In passive mode, PuTTY will wait to negotiate until it sees a negotiation from the server.”

In other words, in active mode, PuTTY tries to send information about what it’s willing to do, which the TLS unit interprets as a command that it doesn’t understand. That’s why I was getting the weird response from the TLS unit I was trying to contact.

In summary, if you need to make a Telnet connection to a TLS unit using PuTTY, be sure to select passive negotiation mode.

How to prevent magnetic stripe data from being printed on front of card

I’ve gotten to deal with a couple of different magnetic stripe card reader/writer/printers in my current job, and although they have a lot of similarities to standard laser or inkjet printers, there are a few oddball settings that have to be tweaked to get everything working as it should.

While helping configure a Datacard SP35 card printer for a customer recently, I ran into a weird issue. Windows was able to find the correct driver for the printer, and once we adjusted the print orientation settings, the text printed on the front of the card parallel to the “long” edge. That was good.

What wasn’t good was that an unexpected string of characters also printed on the front of the card. I recognized that that string of characters was the data that should be encoded in the magnetic stripe on the back of the card, but for some reason it was getting printed instead.

It turned out there was one more setting that needed to be adjusted: Mag Stripe Escape Compatibility. We set that to Enabled, printed a new card, and voilà—no more random characters on the front of the card.

(What exactly does Mag Stripe Escape Compatability mean? I have no idea, and haven’t had time to go digging through search results to find something that explains it clearly. If you can give me a succinct explanation, please feel free to leave a comment.)

Upgrading BIOS fixes Windows 10 docking station DVI output problem

Since late last year, I’ve been upgrading our desktops and laptops at work from Windows 7 to Windows 10. For each machine, our process has consisted of doing the free upgrade to Windows 10, then doing a clean install. For the most part, the transition has gone smoothly, but I recently ran into a problem with an upgraded HP ProBook 6460b and accompanying HP docking station (VB041UT#ABA). Both pieces of hardware were purchased in 2011, so we’re not talking about brand new equipment here, but the computer does what we need it do.

The problem

With Windows 7 installed, the problem laptop output video through the DVI and VGA ports. After I installed Windows 10, however, if a VGA monitor was connected, it would display only at the laptop’s native resolution of 1366×768, and the external monitor connected via DVI would fail to find a signal.

If no VGA monitor was connected, the DVI monitor would display the HP logo on the boot screen and the Windows logo as Windows began loading, but then the screen would go black. The power button on the monitor would remain lit up like it was getting a signal until I opened the lid on the laptop; at that point, the monitor would lose its connection and display the “check cables” message, and the only way to get it to display anything again was to close the laptop’s lid and reboot.

Troubleshooting

We previously upgraded another 6460b with the same model docking station to Windows 10 without running into any issues, so I had no reason to believe the laptop model in question was incompatible. I tried swapping cables, monitors, and even the docking station itself with another identical docking station that I knew worked with a laptop upgraded to Windows 10. I compared the laptop’s display settings, power settings, and graphics driver version with the working laptop, and everything was in sync.

After checking the obvious things, I began my online search, and finally ran across a forum thread in which someone mentioned having to update BIOS on a Dell laptop to correct a similar problem. It seemed like a long shot, but I restarted the problem laptop and a working machine, pressed Esc on boot and then F1, and checked the BIOS versions on each computer. Sure enough, the laptop that output video correctly boasted BIOS version F.60, while the problem laptop reported version F.42.

I downloaded the latest BIOS from HP (version F.61) and let the flashing process run over a weekend. Once the BIOS was updated, I docked the laptop, and video was output to the DVI and VGA monitors, both of which displayed at the correct resolutions.

Troubleshooting, part 2

All appeared to be right with the world until I rebooted the laptop, at which point the computer forgot what resolution it should be using on the external VGA monitor, and reverted to the laptop’s native resolution. I opened Device Manager, expanded the Monitors grouping, and uinstalled the Generic P&P Monitor listed there, then rebooted, and the VGA monitor was detected correctly once more.

Following another reboot, however, the VGA monitor once again reverted to the laptop’s native resolution, and after that point, uninstalling the generic plug-and-play monitor from Device Manager had no effect on the setup’s performance.

After fighting the issue for a while longer, I finally opened the Intel Graphics and Media Control Panel, went to the Display section, and added a custom resolution (1280×1024) and refresh rate (60Hz) appropriate for the monitor connected to the VGA port, and rebooted again. After that, I went into Windows display settings and clicked through to the advanced display settings, and I was able to select my newly-added custom resolution for the VGA monitor.

Summary

The DVI output problem was resolved by updating the laptop’s BIOS. The BIOS update initially appeared to have fixed the VGA resolution issue, too, but I ultimately had to define a custom resolution in the graphics control panel to get away from the laptop’s native resolution being displayed on that second external monitor.

Although the laptop detects when something is plugged into the VGA port on the docking station, it appears to be failing to detect exactly what that something is, reporting only that a generic plug-and-play monitor is connected. I can’t explain why it worked immediately after the BIOS update without a custom resolution defined unless there is some sort of intermittent hardware problem, but the user has reported no display issues since I added the custom resolution and swapped the laptop into place.