Eu tenho um disco NTFS montado como unidade de dados em um sistema Ubuntu (19.10).
Nos últimos dias, a unidade tornou-se muito lenta e pouco confiável.
O diário (journalctl -r) mostra isso:
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)
No entanto, ntfsfix
relata que o disco está bom (eu acho)
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.
- Existe outra maneira de verificar este disco?
Nas sugestões dos comentários, alguns smartctl
resultados.
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
Não sei como interpretar exatamente, mas parece algum problema de aquecimento?
Responder1
A substituição da unidade é recomendada.
Smart 05 significa quantos setores sobressalentes são usados para substituir setores defeituosos. O valor RAW 9840 significa 9840 setores, o que significa 4920 KB. 93 é o valor normalizado significa que você ainda tem 93% de tesouras sobressalentes.
Porém, ao mesmo tempo, 197 indica que existem 41.344 setores pendentes. Setores pendentes não significam necessariamente que esses setores estejam ruins, mas o disco rígido não conseguiu processá-los totalmente. (Às vezes porque não foi liberado antes da interrupção de energia) Na próxima gravação, ele retornará a um bom estado de setor ou irá para 05 e será substituído por setores sobressalentes.
De qualquer forma, 41344 já tem cerca de 20 MB. O que já é demais e significa que sua unidade não está estável.
Responder2
Como você tem o backup dos dados na nuvem, podemos preparar a unidade para um bloqueio incorreto, desta forma...
use
gparted
para estabelecer uma nova tabela de partição GPT (ISSO LIMPARÁ A UNIDADE)use
gparted
para criar uma única partição ext4 que use todo o espaço não alocado(você sempre pode recriar uma partição NTFS após bloquear o disco incorretamente)
Note: do NOT abort a bad block scan!
Note: do NOT bad block a SSD
Note: backup your important files FIRST!
Note: this will take many hours
Note: you may have a pending HDD failure
Inicialize em um Ubuntu Live DVD/USB.
Em terminal
...
sudo fdisk -l
# identifica todas as partições do "sistema de arquivos Linux"
Nota: certifique-se de identificar corretamente qual unidade deve ser bloqueada de forma incorreta... sdb1/etc.
sudo e2fsck -fcky /dev/sdXX
# teste somente leitura
ou
sudo e2fsck -fccky /dev/sdXX
# teste não destrutivo de leitura/gravação(recomendado)
O -k é importante porque salva a tabela de blocos defeituosos anterior e adiciona novos blocos defeituosos a essa tabela. Sem -k, você perde todas as informações anteriores do bloco inválido.
O parâmetro -fccky...
-f Force checking even if the file system seems clean.
-c This option causes e2fsck to use badblocks(8) program to do a
read-only scan of the device in order to find any bad blocks.
If any bad blocks are found, they are added to the bad block
inode to prevent them from being allocated to a file or direc‐
tory. If this option is specified twice, then the bad block
scan will be done using a non-destructive read-write test.
-k When combined with the -c option, any existing bad blocks in the
bad blocks list are preserved, and any new bad blocks found by
running badblocks(8) will be added to the existing bad blocks
list.
-y Assume an answer of `yes' to all questions; allows e2fsck to be
used non-interactively. This option may not be specified at the
same time as the -n or -p options.
Nota: se o bloqueio incorreto não resultar em uma unidade utilizável, substitua-a.