I have a NTFS disk mounted as a data drive to a Ubuntu system (19.10).
In the last couple days, the drive has become very slow and unreliable.
The journal (journalctl -r) shows this :
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 54 to 53
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 46 to 47
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 188 Command_Timeout changed from 100 to 99
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 183 Runtime_Bad_Block changed from 97 to 96
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Offline uncorrectable sectors (changed +8)
...
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Currently unreadable (pending) sectors (changed +8)
However ntfsfix
reports the disk is okay (I think)
sudo ntfsfix -bd /dev/sdb1
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK
NTFS partition /dev/sdb1 was processed successfully.
- Is there another way of checking this disk?
At suggestions from comments some smartctl
output.
smartctl -data -A /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.3.0-23-generic] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
[=== START OF READ SMART DATA SECTION ===
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 079 078 006 Pre-fail Always - 168133076
3 Spin_Up_Time 0x0003 094 092 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 099 099 020 Old_age Always - 1209
5 Reallocated_Sector_Ct 0x0033 093 093 036 Pre-fail Always - 9840
7 Seek_Error_Rate 0x000f 074 060 030 Pre-fail Always - 8648101443
9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 24172
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1237
183 Runtime_Bad_Block 0x0032 096 096 000 Old_age Always - 4
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 12019
188 Command_Timeout 0x0032 099 098 000 Old_age Always - 11 26 26
189 High_Fly_Writes 0x003a 097 097 000 Old_age Always - 3
190 Airflow_Temperature_Cel 0x0022 047 042 045 Old_age Always In_the_past 53 (Min/Max 47/58 #91)
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 - 1217
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 3392
194 Temperature_Celsius 0x0022 053 058 000 Old_age Always - 53 (0 18 0 0 0)
197 Current_Pending_Sector 0x0012 001 001 000 Old_age Always - 41344
198 Offline_Uncorrectable 0x0010 001 001 000 Old_age Offline - 41344
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 23784h+22m+27.579s
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 16322055947757
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 108452827544617
I don't know how to interpret it exactly but it looks like some heating problem?
Drive replacement is recommended.
Smart 05 means how many spare sectors are used to replace bad sectors. RAW value 9840 means 9840 sectors, which means 4920KB. 93 is normalized value means you still have 93% spare secators.
However, at the same time, 197 indicates that there's 41344 pending sectors. Pending sectors does not necessarily mean those sectors are bad, but the hard drive failed to fully process it. (Sometimes because not flushed before power interruption) On next write, it will either return to a good sector state, or go to 05 and replaced by spare sectors.
Either way, 41344 is already around 20MB. Which is already too much and means that your drive is not stable.
Since you have the data backed up into the cloud, we can prepare the drive to bad block, this way...
use
gparted
to lay down a fresh GPT partition table (THIS WILL WIPE THE DRIVE)use
gparted
to create a single ext4 partition that uses all unallocated space (you can always recreate a NTFS partition after bad blocking the disk)Boot to a Ubuntu Live DVD/USB.
In
terminal
...sudo fdisk -l
# identify all "Linux Filesystem" partitionsNote: make sure you properly identify which drive to bad block... sdb1/etc.
sudo e2fsck -fcky /dev/sdXX
# read-only testor
sudo e2fsck -fccky /dev/sdXX
# non-destructive read/write test (recommended)The -k is important, because it saves the previous bad block table, and adds any new bad blocks to that table. Without -k, you loose all of the prior bad block information.
The -fccky parameter...
Note: if bad blocking doesn't result in a usable drive, replace it.