Solution
Yeah, the drive is dying. As suggested by @[email protected], and @[email protected], I ran a S.M.A.R.T. test (the short
option), and received the following report:
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 001 001 051 Pre-fail Always FAILING_NOW 1473
Original Post
I have a pulled hard drive from an old Western Digital external hard drive. I connected it to my desktop to see what was on it, and, after running fdisk -l
(which took a weirdly long time to run while also keeping one core at 100%), it gave the error message:
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
However, trying to mount it resulted in another error saying that the drive doesn’t exist. Looking at dmesg
reveals a ton of other errors like the following:
...
[ 252.090206] critical target error, dev sde, sector 8 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 252.090210] Buffer I/O error on dev sde, logical block 1, async page read
[ 252.090292] sd 6:0:0:0: [sde] Attached SCSI disk
[ 296.776697] sd 6:0:0:0: [sde] tag#13 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD IN
[ 296.776712] sd 6:0:0:0: [sde] tag#13 CDB: ATA command pass through(12)/Blank a1 08 2e 00 01 00 00 00 00 ec 00 00
[ 296.796696] scsi host6: uas_eh_device_reset_handler start
[ 296.920474] usb 4-6: reset SuperSpeed USB device number 3 using xhci_hcd
[ 296.940278] scsi host6: uas_eh_device_reset_handler success
[ 300.090562] sd 6:0:0:0: [sde] Unaligned partial completion (resid=12280, sector_sz=512)
[ 300.090567] sd 6:0:0:0: [sde] tag#16 CDB: Read(10) 28 00 00 00 00 08 00 00 18 00
[ 300.090570] sd 6:0:0:0: [sde] tag#16 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=2s
[ 300.090572] sd 6:0:0:0: [sde] tag#16 Sense Key : Hardware Error [current]
[ 300.090573] sd 6:0:0:0: [sde] tag#16 Add. Sense: Internal target failure
[ 300.090574] sd 6:0:0:0: [sde] tag#16 CDB: Read(10) 28 00 00 00 00 08 00 00 18 00
[ 300.090575] critical target error, dev sde, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 2
[ 300.090640] sd 6:0:0:0: [sde] tag#14 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=2s
[ 300.090642] sd 6:0:0:0: [sde] tag#14 Sense Key : Hardware Error [current]
[ 300.090643] sd 6:0:0:0: [sde] tag#14 Add. Sense: Internal target failure
[ 300.090644] sd 6:0:0:0: [sde] tag#14 CDB: Read(10) 28 00 00 00 00 20 00 00 08 00
[ 300.090645] critical target error, dev sde, sector 32 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 326.010763] usb 4-6: USB disconnect, device number 3
[ 326.010898] sd 6:0:0:0: [sde] tag#18 uas_zap_pending 0 uas-tag 1 inflight: CMD
[ 326.010901] sd 6:0:0:0: [sde] tag#18 CDB: Read(10) 28 00 00 00 00 20 00 00 08 00
[ 326.010903] sd 6:0:0:0: [sde] tag#17 uas_zap_pending 0 uas-tag 2 inflight: CMD
[ 326.010905] sd 6:0:0:0: [sde] tag#17 CDB: Read(10) 28 00 00 00 00 08 00 00 08 00
[ 326.010919] sd 6:0:0:0: [sde] tag#18 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK cmd_age=25s
[ 326.010921] sd 6:0:0:0: [sde] tag#18 CDB: Read(10) 28 00 00 00 00 20 00 00 08 00
[ 326.010922] I/O error, dev sde, sector 32 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 326.010925] Buffer I/O error on dev sde, logical block 4, async page read
[ 326.010931] sd 6:0:0:0: [sde] tag#17 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK cmd_age=25s
[ 326.010942] sd 6:0:0:0: [sde] tag#17 CDB: Read(10) 28 00 00 00 00 08 00 00 08 00
[ 326.010943] I/O error, dev sde, sector 8 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 326.010945] Buffer I/O error on dev sde, logical block 1, async page read
[ 326.050781] sd 6:0:0:0: [sde] Synchronizing SCSI cache
[ 326.270781] sd 6:0:0:0: [sde] Synchronize Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
...
Is this drive dead? Is something just corrupt? If there is data on it, would it be straightforward to pull it off?
Honestly, if there is any data on the disk you cannot afford to lose then power it off and take it to a professional recovery service. The more you try to do to a failing drive the lower the chances of recovering data or the less data can be recovered from a drive. So, if you really care about the data just pay for someone that knows what they are doing and that has the tools to recover the data for you.
But… if you don’t care or the data is not worth the cost of recovery. Then the first things I would run a S.M.A.R.T. report with
smartctl
and see what that says. This should give you an indication of if the drive if going bad or not. Though even if it passes it might still be going bad.You can also use tools like
ddrescue
to create a backup of the drive copying as many blocks as it can even if some of them fail the first time (before it goes back to retry bad sectors). Though be warned, even reading from a failing drive can cause it to fail faster, seek a professional if you care about the data on it.As for recovering data from it - if you are lucky you might just need to recover the partition table and ahve acess to things again. Though likely more than the partition table is bad on an old failing disk. You can use tools like photorec to recover files (more than just images that is) on the disk. Though with tools like this you lose all folder structure and there is no guarantee it will recover everything or even anything.
Then even if the S.M.A.R.T. report looks good you might want to run
badblocks
over the drive to try and detect any bad areas of the disk. A S.M.A.R.T. enable drive should be doing this passively in the background but it can be helpful to force a scan if you are having issues with the disk. You should really only do this after you have recovered any data from the disk you care about.You can also find other tools and tips here.
Oh, and if the disk has signs of failing I would never trust it again to store anything you care about. Best to replace it with something new if you can. And remember, always backup your data - file recovery is never a good option and should only ever be used as a last ditch attempt.
I ran a S.M.A.R.T short test, and, yeah, the hard drive is quickly dying:
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: FAILED! Drive failure expected in less than 24 hours. SAVE ALL DATA. Failed Attributes: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 001 001 051 Pre-fail Always FAILING_NOW 1473
Well… That’s bad news. Pretty clear though.