0

I have an old Seagate 4TB internal drive from a crapped out pc that I was planning to repurpose as a spare drive for gaming.

Figured I'd run some smartctl scans on it first just to be safe so I did smartctl -t short /dev/sdb and got back results. They looked ok to me bc I didn't see anything listed in the 'WHEN_FAILED' column (and originally I had been mostly concerned with the temperature related errors). But then I saw an article from 2018 mentioning that 'Current_Pending_Sector' is pretty serious... And mine is not zero... And I did have some errors besides... Since I can't really make sense of whether or not to be concerned about them, I figured I'd try SE.

My best guess so far is that I shouldn't put anything critical on it but that it might be fine to use for games if I symlink the save folders so they exist somewhere else (on a drive with better smart results) and don't mind re-downloading the installed game in the event of drive failure. Also not sure if the 'READ DMA EXT' errors are indications of imminent failure or if that could be a cable or other one-time event (I can only see errors 35-39 and they all occurred at "16936 hours"... not sure if there's a way to see all of the errors or if literally only the last 5 are stored like it says). OTOH, I didn't have any issues mounting it or copying data off it (it was a relative's and they didn't want it anymore; just some pics/videos off it).

If there's at least decent odds that the drive might have some life left, I don't mind chancing it for less important stuff. But it is highly likely to fail in the near future, I'd prefer not to waste any time with it for anything but acquiring a new magnet :-) Any advice / recommendations?

Anyway, I reran with smartctl -t long /dev/sdb waited till the next day and ran smartctl -a /dev/sdb. Here are the results for that:

I_AM_ROOT@fedora35:~
# smartctl -a /dev/sdb
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.7-200.fc35.x86_64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Desktop HDD.15
Device Model:     ST4000DM000-1F2168
Serial Number:    <Redacted>
LU WWN Device Id: <Redacted>
Firmware Version: CC54
User Capacity:    4,000,787,030,016 bytes [4.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5900 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Dec 17 11:44:49 2021 EST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      ( 118) The previous self-test completed having
                    the read element of the test failed.
Total time to complete Offline 
data collection:        (  168) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 528) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x1085) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   119   099   006    Pre-fail  Always       -       233492808
  3 Spin_Up_Time            0x0003   092   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1890
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   044   039   030    Pre-fail  Always       -       678608011490
  9 Power_On_Hours          0x0032   065   065   000    Old_age   Always       -       30836
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -       1206
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   061   061   000    Old_age   Always       -       39
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0 0 0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   058   045    Old_age   Always       -       29 (Min/Max 27/32)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       304
193 Load_Cycle_Count        0x0032   084   084   000    Old_age   Always       -       32204
194 Temperature_Celsius     0x0022   029   042   000    Old_age   Always       -       29 (0 12 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       16
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       16
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       23293h+16m+41.533s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       19236444339
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       27220280383

SMART Error Log Version: 1
ATA Error Count: 39 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 39 occurred at disk power-on lifetime: 16936 hours (705 days + 16 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 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 ff ff ff ef 00      04:59:22.764  READ DMA EXT
  25 00 40 ff ff ff ef 00      04:59:22.762  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:59:22.736  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:59:22.735  READ DMA EXT
  ef 10 02 00 00 00 a0 00      04:59:22.735  SET FEATURES [Enable SATA feature]

Error 38 occurred at disk power-on lifetime: 16936 hours (705 days + 16 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 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 ff ff ff ef 00      04:59:18.709  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:59:18.696  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:59:18.693  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:59:18.631  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:59:18.631  READ DMA EXT

Error 37 occurred at disk power-on lifetime: 16936 hours (705 days + 16 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 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 ff ff ff ef 00      04:57:53.914  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:57:53.914  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:57:53.882  READ DMA EXT
  ef 10 02 00 00 00 a0 00      04:57:53.881  SET FEATURES [Enable SATA feature]
  27 00 00 00 00 00 e0 00      04:57:53.881  READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]

Error 36 occurred at disk power-on lifetime: 16936 hours (705 days + 16 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 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 ff ff ff ef 00      04:57:49.903  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:57:49.903  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:57:49.903  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:57:49.903  READ DMA EXT
  25 00 08 ff ff ff ef 00      04:57:49.903  READ DMA EXT

Error 35 occurred at disk power-on lifetime: 16936 hours (705 days + 16 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 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 ff ff ff ef 00      04:57:45.210  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:57:45.181  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:57:45.179  READ DMA EXT
  25 00 00 ff ff ff ef 00      04:57:45.178  READ DMA EXT
  25 00 58 ff ff ff ef 00      04:57:45.149  READ DMA EXT

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       60%     30817         3723785408
# 2  Short offline       Completed without error       00%     30812         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
1
  • That's a poorly disk. You might get some more life out of it if you can write something to the whole disk (eg erase everything with cat /dev/zero >/dev/sdX) and then re-review the SMART output Dec 17, 2021 at 22:09

1 Answer 1

2

SMART is not very bad but your HDD firmware cannot fix some errors.

Considering you now perfectly know which sector is broken you can try to reallocate it using dd:

https://www.smartmontools.org/wiki/BadBlockHowto

Still, this HDD is now unsafe to use, so even if you manage to fix it, consider using the drive only for non-essential info you're ready to lose.

4
  • Thanks! So IIUC I have LBA = 3723785408 and only 1 empty ext4 partition with gpt, /dev/sdb1. per fdisk, Sector size = 512 bytes, start = 2048, end = 7814035455. So in my case, problem LBA should be offset 3723785408 - 2048 = 3723783360 sectors into /dev/sdb1. per tune2fs my block size = 4096. my b = (int)((L-S)*512/B) should be b = (int)((3723785408-2048)*512/4096) or 465472920. So the command I should run is: dd if=/dev/zero of=/dev/sdb1 bs=4096 count=1 seek=465472920 && sync and this will prevent the bad sector from being used going forward. Did I get all of that correct?
    – zpangwin
    Dec 17, 2021 at 20:55
  • actually I guess my previous should be dd if=/dev/zero of=/dev/sdb1 bs=4096 count=1 seek=465472920; sync cuz otherwise sync would only run if there was no error. Anyway, just tried it (from root) and got 1+0 records in\n1+0 records out\n4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000489273 s, 8.4 MB/s. sync didn't generate any output. Then ran smartctl -t offline /dev/sdb followed by a wait and smartctl -A /dev/sdb as suggested. I see that my Current_Pending_Sector count went from 16 to 8. But smartctl -a /dev/sdb still shows the same errors as before so not sure what my new LBA is.
    – zpangwin
    Dec 17, 2021 at 21:15
  • Ah just re-read. sounds like the next step is I need to do another smartctl -t long /dev/sdb and wait it out, then check smartctl -a /dev/sdb again when it gets done.
    – zpangwin
    Dec 17, 2021 at 21:20
  • Yes, rerunning the long smart test is absolutely required after fixing/relocating bad sectors. The test has to complete. Dec 17, 2021 at 22:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .