There are no reallocated sectors because they failed to reallocate. Your drive is showing 5 Offline_Uncorrectable sectors, which happens when automatic repair fails. There are obvious read failures shown in the dmesg output, SMART errors, and read failures from SMART tests. There are ways of repairing these sectors as you have mentioned in the question, but from my experience it is a very short-term fix.
Replace the drive.
Your disk had some problems with reading data from the surface, but it seems that the disk dealt with it. I had similar situation:
Error 29 occurred at disk power-on lifetime: 18836 hours (784 days + 20 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 00 40 37 e6 Error: UNC 8 sectors at LBA = 0x06374000 = 104284160
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 00 40 37 e6 08 03:39:32.447 READ DMA
c8 00 08 f8 3f 37 e6 08 03:39:32.447 READ DMA
c8 00 08 f0 3f 37 e6 08 03:39:32.447 READ DMA
c8 00 08 e8 3f 37 e6 08 03:39:32.447 READ DMA
c8 00 08 e0 3f 37 e6 08 03:39:32.447 READ DMA
And when I wanted to perform test, I got:
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 7 Short offline Completed: read failure 90% 18845 104284160
Ultimately, I managed to unblock the sectors, and after running the extended test, which scan the whole surface, I got the following result:
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 3 Extended offline Completed without error 00% 18858 -
If there were bad blocks, they could be observed in the table under:
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
In your case, there's no indication of bad sectors because the extended test was performed (11746 h) after the last error occurred (11706 h). So, you can sleep peacefully. :)
As I mentioned in comments, there's two types of badblocks. Here's short info about the difference between the two:
There are two types of bad sectors — often divided into “physical” and
“logical” bad sectors or “hard” and “soft” bad sectors.
A physical — or hard — bad sector is a cluster of storage on the hard
drive that’s physically damaged. The hard drive’s head may have
touched that part of the hard drive and damaged it, some dust may have
settled on that sector and ruined it, a solid-state drive’s flash
memory cell may have worn out, or the hard drive may have had other
defects or wear issues that caused the sector to become physically
damaged. This type of sector cannot be repaired.
A logical — or soft — bad sector is a cluster of storage on the hard
drive that appears to not be working properly. The operating system
may have tried to read data on the hard drive from this sector and
found that the error-correcting code (ECC) didn’t match the contents
of the sector, which suggests that something is wrong. These may be
marked as bad sectors, but can be repaired by overwriting the drive
with zeros — or, in the old days, performing a low-level format.
Windows’ Disk Check tool can also repair such bad sectors.
Best Answer
Hard disks do not have an unlimited life span, and it is not possible to predict exactly what it will be. If
badblocks
ran for that long, it is probably because of serious hardware failure. On linux, this can manifest itself at first as sudden system freezes due to processes falling into uninterruptible sleep, meaning they cannot be stopped and the kernel keeps spinning its wheels trying to handle them, maxing out the processor. This is due to disk read failures, which will be reported in syslog.Running
badblocks
in that case can work but take a very long time, because it can fall pray to uninterruptible sleep too when it finds the bad blocks; if it comes out of this and logs the blocks successfully, the disk can be used, but if you reformat again that bad blocks list is gone too.If you can't take the hard drive out yourself and examine it by plugging it into another computer, you should take it to someone who can. Taking it out is probably not that hard, which will save you a bunch of service charges including replacing the drive if necessary.