So I’ve had this old Seagate 1TB hard drive sitting in a desk drawer for over a year now. I had it installed a Windows Server 2008 box that I was using as a file server and backup location for pictures and home videos until it unceremoniously stopped responding one day. Of course most of the files were not backed up anywhere so when the drive went Tango Uniform I figured they were all lost. After a bit of googling I discovered that this series of drives in fact had faulty firmware causing the drive to lock up in a BSY state and with some carefully executed shell commands they could be brought back to life.
So finally a couple weeks ago I decided it was time to see if I could in fact bring this drive back to the land of the living and recover some of my old files. In my research I found what was needed is a serial cable to connect to the drives jumper ports to execute some commands from a shell. If you google around a bit you’ll find several forum and site posts on how to make your own but I opted to go the easy route and purchase one from Amazon. I ended up getting a JBtek USB to TTL serial cable that is listed for use with a Raspberry Pi for around $15 shipped. What makes this cable compatible is the Rx and Tx lines are 3.3 volt just like the lines on the Seagate drive.
The lines on the cable are
Red – 5v
Black – Ground
Green – Rx
White – Tx
To get the lines to fit on the drive I had to remove the plastic guides and install the bare leads on the jumper pins. A little electrical tape on each lead helped to ensure I didn’t short out the leads and end my project before I got started. To get the terminal program to communicate with the hard drive you have to install the Tx line from the cable to the Rx pin on the hard drive and the Rx line on the Tx pin with the ground line of course connected to the ground pin.
Before you get started you’ll also need to prepare the drive by disconnecting the 3 screws on the PCB on opposite end of the power cable. The reason for this is so you can insert something like a trimmed down business card between the PCB and the contacts underneath while you execute some of the commands while still providing power to the motor for spin up and spin down. You’ll also need the PCB loose so you can remove the card at the proper moment reconnecting the PCB to finish the process. Since the warden is into scrap booking I used a sheet of her card stock and cut a shim the perfect size I needed to slide in between the contacts so it could be easily removed.
So now that everything has been explained it’s time for the process.
Fist remove the 3 screws described earlier and install your shim.
Next connect your USB to TTL adapter to a convenient USB port. Open the device manager and go to the ports and find your adapter. It should be listed as “Prolific USB-to-serial COMM Port (COM1)”. The com port number will vary based on what COM port it is assigned by the OS. Obviously mine is listed as COM1. Remember the COM port number as you’ll need it later.
Right click on your adapter and select “properties” and click on the port settings tab and set them to the following:
Bits Per Second: 38400
Data Bits: 8
Stop Bits: 1
Flow Control: none
Hit “Ok” and close the device manager.
Now connect the Rx, Tx and ground cables to the jumper pins on the hard drive and connect the power cable.
Open up your favorite terminal program. In my case I use Putty. Select the serial listing under categories on the left hand pane and change the setting to match the settings you set the adapter cable to listed above. Now select “session” and then select the radio button next to “serial” and hit “open”.
NOTE: All the following commands are case sensitive.
Type ctrl+z and you should see a prompt that says F3 T>
Type /2 and press enter. It should say F3 2>
Type Z and press enter. It should say “Spin Down Complete, Elapsed Time 0.146 msecs”, the elapsed time may not be the same – that’s OK.
Remove shim and mount the PCB as normal, tighten up all the screws.
Type U and press enter. It should say “Spin Up Complete, Elapsed Time 6.864 secs”. Again, the elapsed time may not be the same and that’s OK.
You should see F3 T3> at this point, type /1 and press enter. It should say F3 1>
Type N1 and press enter. It should say F3 1>
Now power cycle the drive by removing and replacing the power cable. SEE NOTE BELOW!
Type / and press enter. It should say F3 T>
Type m0,2,2,0,0,0,0,22 and press enter. (Note the “m” is lower case and the 0’s are zeros). It should say…..
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 00, Max Certify Rewrite Retries = 0000
User Partition Format 5% complete, Zone 00, Pass 00, LBA 00008DED, ErrCode 00000080, Elapsed Time 0 mins 05 secs
User Partition Format Successful – Elapsed Time 0 mins 05 secs
And should bring you back to the F3 T> Prompt.
Unplug the SATA power cable from your drive, unhook the RX, TX, and GND wires. Turn off computer and re-install your drive.
Everything *should* be working fine.
Be sure to update your drive with the latest firmware as soon as possible.
NOTE: This step is where things didn’t go as planned for me. When I unplugged my drive putty lost connection to the drive and would not reconnect after power was restored. I ended up closing putty and re opening it and typing: ctrl+z pressing enter and then typing: m0,2,2,0,0,0,0,22 and pressing enter. After that the drive responded and I was GTG and I was able to continue on.