HDD Resurrection Using Freezer

One day, my computer refused to boot properly, and the hard drive was at fault. It sounded like it's trying to read something, unsuccessfully (not the sound of heads scraping the plates, but rather a click of death -- the head seeking all over again). After a while, the BIOS gave up and the drive went silent. After some trial and error, my drive booted in another SATA port and worked just fine. I thought that probably the port or cabling is bad, it happens.

Unfortunately, a few days later the same scenario repeated, and unfortunately, changing ports and cables didn't work this time. I've booted from SystemRescueCD and at least got some output from the Linux Kernel, trying to initialize the drive (it gave up after a while):

[    7.351024] ata2.00: link is slow to respond, please be patient (ready=-19)
[   11.533025] ata2.00: SRST failed (errno=-16)
[   17.343024] ata2.00: link is slow to respond, please be patient (ready=-19)
[   21.576025] ata2.00: SRST failed (errno=-16)
[   27.386025] ata2.00: link is slow to respond, please be patient (ready=-19)
[   40.799062] ata2.00: SATA link down (SStatus 0 SControl 300)
[   40.799178] ata2.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[   40.812149] ata2.01: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[   51.609024] ata2.00: link is slow to respond, please be patient (ready=-19)
[   55.842025] ata2.00: SRST failed (errno=-16)
[   61.652023] ata2.00: link is slow to respond, please be patient (ready=-19)
[   65.885023] ata2.00: SRST failed (errno=-16)
[   71.695024] ata2.00: link is slow to respond, please be patient (ready=-19)
[   84.241059] ata2.00: SATA link down (SStatus 0 SControl 300)
[   84.241176] ata2.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[   84.254135] ata2.01: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[   84.254325] ata2.01: limiting SATA link speed to 1.5 Gbps
[   95.051024] ata2.00: link is slow to respond, please be patient (ready=-19)
[   99.284024] ata2.00: SRST failed (errno=-16)
[  105.094024] ata2.00: link is slow to respond, please be patient (ready=-19)
[  109.327024] ata2.00: SRST failed (errno=-16)
[  115.137025] ata2.00: link is slow to respond, please be patient (ready=-19)
[  127.122060] ata2.00: SATA link down (SStatus 0 SControl 300)
[  127.122177] ata2.01: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[  127.135132] ata2.01: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[  137.932013] ata2.00: link is slow to respond, please be patient (ready=-19)
[  142.165024] ata2.00: SRST failed (errno=-16)
[  147.975019] ata2.00: link is slow to respond, please be patient (ready=-19)
[  152.208016] ata2.00: SRST failed (errno=-16)
[  158.018025] ata2.00: link is slow to respond, please be patient (ready=-19)
[  170.819061] ata2.00: SATA link down (SStatus 0 SControl 300)
[  170.819178] ata2.01: SATA link up 1.5 Gbps (SStatus 113 SControl 310)

I've tried to reinitialize it a few more times, but without any success. You can try it with this command (where N is the bus with SATA -- try some):

echo "- - -" > /sys/class/scsi_host/hostN/scan

I've tried my HDD toaster, but it failed horribly:

[ 1622.913028] usb 2-4: new high-speed USB device number 5 using ehci_hcd
[ 1623.027938] usb 2-4: New USB device found, idVendor=152d, idProduct=2329
[ 1623.027942] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[ 1623.027945] usb 2-4: Product: USB to ATA/ATAPI Bridge
[ 1623.027948] usb 2-4: Manufacturer: JMicron
[ 1623.027950] usb 2-4: SerialNumber: FFFFFFFFFFFF
[ 1623.028891] usb-storage 2-4:1.0: Quirks match for vid 152d pid 2329: 8020
[ 1623.028908] scsi8 : usb-storage 2-4:1.0
[ 1624.030577] scsi 8:0:0:0: Direct-Access                                    PQ: 0 ANSI: 2 CCS
[ 1624.031207] sd 8:0:0:0: Attached scsi generic sg6 type 0
[ 1624.032317] sd 8:0:0:0: [sdf] Very big device. Trying to use READ CAPACITY(16).
[ 1624.033568] sd 8:0:0:0: [sdf] Using 0xffffffff as device size
[ 1624.033574] sd 8:0:0:0: [sdf] 4294967296 512-byte logical blocks: (2.19 TB/2.00 TiB)
[ 1624.034319] sd 8:0:0:0: [sdf] Write Protect is off
[ 1624.034323] sd 8:0:0:0: [sdf] Mode Sense: 34 00 00 00
[ 1624.035132] sd 8:0:0:0: [sdf] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1624.035944] sd 8:0:0:0: [sdf] Very big device. Trying to use READ CAPACITY(16).
[ 1624.037193] sd 8:0:0:0: [sdf] Using 0xffffffff as device size
[ 1642.392706] sd 8:0:0:0: [sdf] Unhandled sense code
[ 1642.392710] sd 8:0:0:0: [sdf]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[ 1642.392714] sd 8:0:0:0: [sdf]  Sense Key : Medium Error [current] 
[ 1642.392719] sd 8:0:0:0: [sdf]  Add. Sense: Unrecovered read error
[ 1642.392724] sd 8:0:0:0: [sdf] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
[ 1642.392734] end_request: critical target error, dev sdf, sector 0
[ 1642.392738] Buffer I/O error on device sdf, logical block 0
[ 1659.229343] sd 8:0:0:0: [sdf] Unhandled sense code
[ 1659.229347] sd 8:0:0:0: [sdf]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[ 1659.229352] sd 8:0:0:0: [sdf]  Sense Key : Medium Error [current] 
[ 1659.229357] sd 8:0:0:0: [sdf]  Add. Sense: Unrecovered read error
[ 1659.229362] sd 8:0:0:0: [sdf] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
[ 1659.229371] end_request: critical target error, dev sdf, sector 0
[ 1659.229375] Buffer I/O error on device sdf, logical block 0
[ 1662.500061] usb 2-4: USB disconnect, device number 5

I disconnected the drive, since the toaster is probably evil anyway and would only damage my drive further. I had no more good ideas, but thinking I have only a few days old backup on my server, I put my drive into aluminium bag (for storing tea) and put it into the freezer. After 20 minutes, I plugged the drive back and surprisingly, it worked! I didn't took any chances and started copying new data to another drive immediately. The drive worked for a few hours (in the end, I copied everything, including every useless file in /tmp) and after I powered it down, it failed completely.

I don't really know why the freezer helped, but it's something that sometime works. I suppose it either cooled down some overheating parts enough to get it running (maybe the motor was spinning a bit slower?), or it helped mechanically (all materials change their size with temperature). I would vote for the first possiblity, but it's just a wild guess. If you know what's behind the freezer trick, please, let me know!

Be warned! The freezer method worked for me and for very short time only! I do NOT recommend this method to anyone, since it may have been just a good luck! Please, if you have valuable data on your drive, don't experiment with it and bring it to you local data-recovery experts. They can find the fault and get your data out without damaging them further!