Table of Contents
SSDs (Solid State Drives) and HDDs (Hard Disk Drives) are two of the most common storage devices used in computers today. Over time, both types of drives can experience issues that can affect their performance and stability. To keep your data safe and ensure that your storage devices are functioning properly, it is important to regularly check their health. In this blog post, we will show you how to check the health of your SSD or HDD in Linux.
Smartmontools (S.M.A.R.T. Monitoring Tools) is a set of utility programs (smartctl and smartd) to control and monitor computer storage systems using the Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.) system built into most modern (P)ATA, Serial ATA, SCSI/SAS and NVMe hard drives.
Smartmontools displays early warning signs of hard drive problems detected by S.M.A.R.T., often giving notice of impending failure while it is still possible to back data up.
In this post, we will show you how to check SSD and HDD health on Linux.
By default, Smartctl is included in the default repository of all major Linux distributions.
For Debian and Ubuntu distribution, install Smartctl using the following command:
#sudo apt-get install smartmontools -y
For RHEL, CentOS, and Fedora distribution, install Smartctl using the following command:
sudo dnf install smartmontools
After installing Smartctl, start the Smartctl service using the following command:
# sudo systemctl start smartd
You can check the status of the smartd with the following command:
systemctl status smartd
You should get the following output:
# systemctl status smartd ● smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daem> Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; vendor> Active: active (running) since Thu 2021-08-12 08:06:42 CEST; 22s ago Docs: man:smartd(8) man:smartd.conf(5) Main PID: 71321 (smartd) Status: "Next check of 1 device will start at 08:36:42" Tasks: 1 (limit: 9278) Memory: 1.7M CGroup: /system.slice/smartmontools.service └─71321 /usr/sbin/smartd -n Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], opened Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], PNY CS900 120GB > Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], not found in sma> Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], can't monitor Cu> Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], can't monitor Of> Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], is SMART capable> Aug 12 08:06:42 Gandalf smartd: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 0 > Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], previous self-te> Aug 12 08:06:42 Gandalf smartd: Device: /dev/sda [SAT], state written to> Aug 12 08:06:42 Gandalf systemd: Started Self Monitoring and Reporting Techn>
Test Health of SSD/HDD
To test overall-health of the drive, type:
# sudo smartctl -d ata -H /dev/sda
d – Specifies the type of device.
ata – the device type is ATA, use scsi for SCSI device type.
H – Check the device to report its SMART health status.
# sudo smartctl -d ata -H /dev/sda [sudo] password for rasho: smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-80-generic] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
The result PASSED indicates that the disk drive is good. If the device reports failing health status, this means either that the device has already failed or could fail very soon.
If it indicates failing use -a option to get more information.
# sudo smartctl -a /dev/sda
# sudo smartctl -a /dev/sda smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-80-generic] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Device Model: PNY CS900 120GB SSD Serial Number: PNY07190003520101427 LU WWN Device Id: 5 f8db4c 071901427 Firmware Version: CS900612 User Capacity: 120,034,123,776 bytes [120 GB] Sector Size: 512 bytes logical/physical Rotation Rate: Solid State Device Form Factor: 2.5 inches Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ACS-4 (minor revision not indicated) SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Thu Aug 12 08:26:38 2021 CEST 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: ( 32) The self-test routine was interrupted by the host with a hard or soft reset. Total time to complete Offline data collection: (65535) seconds. Offline data collection capabilities: (0x79) SMART execute Offline immediate. No Auto Offline data collection support. Suspend Offline collection upon new command. 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: ( 2) minutes. Extended self-test routine recommended polling time: ( 30) minutes. Conveyance self-test routine recommended polling time: ( 6) minutes. SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0 9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 5116 12 Power_Cycle_Count 0x0012 100 100 000 Old_age Always - 3573 168 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 0 170 Unknown_Attribute 0x0003 093 093 000 Pre-fail Always - 65 173 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 10420411 192 Power-Off_Retract_Count 0x0012 100 100 000 Old_age Always - 225 194 Temperature_Celsius 0x0023 067 067 000 Pre-fail Always - 33 (Min/Max 33/33) 218 Unknown_Attribute 0x000b 100 100 050 Pre-fail Always - 0 231 Temperature_Celsius 0x0013 100 100 000 Pre-fail Always - 94 241 Total_LBAs_Written 0x0012 100 100 000 Old_age Always - 12374 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Interrupted (host reset) 00% 1822 - SMART Selective self-test log data structure revision number 0 Note: revision number not 1 implies that no selective self-test has ever been run 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.
You can monitor the following attributes:
[ID 5] Reallocated Sectors Count – Numbers of sectors reallocated due to read errors.
[ID 187] Reported Uncorrect – Number of uncorrectable errors while accessing read/write to sector.
[ID 230] Media Wearout Indicator – Current state of drive operation based upon the Life Curve.
100 is the BEST value and 0 is the WORST.
Check SMART Attribute Details for more information.
To initiate the extended test (long) using the following command:
# sudo smartctl -t long /dev/sda
To perform a self test, run:
# sudo smartctl -t short /dev/sda
To find drive’s self test result, use the following command.
# sudo smartctl -l selftest /dev/sda
To evaluate estimate time to perform test, run the following command.
# sudo smartctl -c /dev/sda
You can print error logs of the disk by using the command:
# sudo smartctl -l error /dev/sda
To get help information, run the following command:
# sudo smartctl --help
In conclusion, checking the health of your SSD or HDD is an important part of maintaining the stability and performance of your Linux system. By using tools like Smartmontools, GSmartControl, and hdparm, you can easily monitor the health of your storage devices and ensure that your data is safe.