Visualizando Metadados do SSD - Seu SSD Pode Conter Erros, Confira
Ao longo da nossa vida como desenvolvedor, as vezes precisamos saber o estado do nosso SSD de forma mais "low code" onde podemos consultar metadados e se previnir de possíveis problemas futuros.
Com isso em mente, alguns SSD possui, em seu Firmware, uma funcionalidade chamada S.M.A.R.T
, que fornece informações precisas de uso, erros, warnings e até horas ligada.
No Linux, usaremos uma ferramenta dedicada chamada smartctl
que é possível usar apenas em modo root
Instalação Usando
- apt:
~ $ sudo apt-get update && sudo apt-get install smartmontools
- pacman:
~ $ sudo pacman -S smartmontools
- dnf:
~ $ sudo dnf install smartmontools
Obtendo Metadados
Para obter todos os metadados, utilize a seguinte flag do comando smartctl
. Lembrando que deve trocar o /dev/sdX
para um caminho válido:
~ $ sudo smartctl -a /dev/sdX
Usando esse comando, vai retornar (possívelmente) um output
nessa estrutura:
Model Number: KINGSTON ***
Serial Number: ***
Firmware Version: ***
PCI Vendor/Subsystem ID: 0x2646
IEEE OUI Identifier: 0x0026b7
Controller ID: 1
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 1,000,204,886,016 [1.00 TB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 0026b7 686529f365
Local Time is: Wed Aug 7 10:00:12 2024 -03
Firmware Updates (0x12): 1 Slot, no Reset required
Optional Admin Commands (0x0016): Format Frmw_DL Self_Test
Optional NVM Commands (0x009f): Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Verify
Log Page Attributes (0x12): Cmd_Eff_Lg Pers_Ev_Lg
Maximum Data Transfer Size: 64 Pages
Warning Comp. Temp. Threshold: 83 Celsius
Critical Comp. Temp. Threshold: 90 Celsius
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 5.00W - - 0 0 0 0 0 0
1 + 3.50W - - 1 1 1 1 0 200
2 + 2.50W - - 2 2 2 2 0 1000
3 - 1.50W - - 3 3 3 3 5000 5000
4 - 1.50W - - 4 4 4 4 20000 70000
Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 0
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 34 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 1%
Data Units Read: 18,755,607 [9.60 TB]
Data Units Written: 9,576,763 [4.90 TB]
Host Read Commands: 90,964,067
Host Write Commands: 189,200,013
Controller Busy Time: 9,645
Power Cycles: 907
Power On Hours: 3,291
Unsafe Shutdowns: 158
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged
Algumas informações foram censurada com ***
.
Analisando
Em algumas linhas podemos ver informações relevantes como:
-
Unsafe Shutdowns: 158
Quantas vezes o PC desligou de forma insegura sem usar comandos comoshutdown
,poweroff
ou pelo botão mesmo ou UI do sistema. (incrementeado por desligar puxando a tomada ou falta de energia) -
Power Cycles: 907
Quantos ciclos de ativação do SSD. Toda vez que desliga e liga o PC e o SSD está conectado e depois montado esse numero vai incrementar. -
Error Information Log Entries: 0
Aqui é quantidade de logs de erro. -
Error Information (NVMe Log 0x01, 16 of 64 entries) No Errors Logged
Onde mostra os logs de erros em detalhe.
Finalização e Recomendações
Caso seu SSD tenha apresentado muitos erros é recomendado que você começe a ter o hábito de fazer backups diariamente de coisas importantes para já ir evitando futuros problemas com corrupção e talvez até morte do SSD.
Lembrando que estou usando Linux com NVME Kingston M2 de 1TB pois já fiz testes em outros SSD e a estrutura das informações mudam um pouco. Até agora apenas a Kingston que usei forneceu uma quantidade de metadados detalhado.
Para Windows tem a ferramenta Crystal Disk Info que trás algumas informações parecidas do disco.
SSD Novo
SSD Antigo
Cara, muito boa esta ferramenta.
Tenho uma "pilha" de HD e estava precisando deste tipo de ferramente para saber a vida util.
Muito obrigado pela a indicação.