How to check Hard Drive Disk Health in GNU/Linux

So, I recently purchased a new (used, but new to me) laptop, that had a 1TB 5400RPM Hard Disk in it, granted the laptop is fairly powerful and capable of modern gaming, rendering, and number crunching thanks to a 4th generation i7 CPU and a Dedicated 2GB GDDR5 GPU. However, the HDD seemed to be running awfully slowly, even for a 5400RPM drive.

I’ve been using strictly Solid State Drives for a number of years now, so I admit there was always the possibility of me just having become spoiled, but I thought that perhaps I should look into the health of the drive; after all, a laptop with specs like that should in my eyes run faster so better safe than sorry. This raised the thought to me that perhaps I should write a quick how-to on this procedure for the Ghacks.net community.

This tutorial is done via CLI only, however, there are tools that do the job as well I will briefly cover at the end of this.

Checking the hard drive health in Linux

The tool we are going to be using is called smartmontools (which is also available for Windows and OS X).

The smartmontools package contains two utility programs (smartctl and smartd) to control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA/SATA, SCSI/SAS and NVMe disks. In many cases, these utilities will provide advanced warning of disk degradation and failure. Smartmontools was originally derived from the Linux ​smartsuite package and actually supports ATA/ATAPI/SATA-3 to -8 disks and SCSI disks and tape devices.

Installing smartmontools

  • For Ubuntu/Linux Mint users: sudo apt install smartmontools
  • For Arch users: sudo pacman -S smartmontools

Generally speaking smartmontools is available on most distributions, just install with your given package manager using the package name “smartmontools”

The How-To



Once that is installed, we need to figure out which drive our questionable one is:

sudo fdisk -l

This will give you a list of all drives and partitions. If you are only using one drive within your machine then it’s going to list /dev/sda and its various partitions. If you have multiple drives, you’ll need to use a little bit of common sense in seeing which drive the one you want to inspect, has what on it, and it’s associated listing such as /dev/sdb or /dev/sdc etc.

Once we know the drive we want to check out, there are three tests that we can run, depending on how concerned you are:

  • A short test, usually sufficient at detecting issues
  • A longer test if you are more concerned that examines the entire disk surface
  • A conveyance test which is used to test if damages occurred during transportation of the device from the manufacturer.
Read also:  A look at the nano text editor in GNU/Linux

The next step is to find out what types of tests our disk supports, as well as an estimate to how long the tests will take to run.

sudo smartctl -c /dev/sdX (replace X with the appropriate letter)

You're going to be given a large amount of output as seen in this screenshot. I've highlighted the areas that were relevant to me for this test; the time estimates, and the fact that my disk does NOT support a conveyance test.

smartmontools capabilities

I oped to run the shorter test, just because I heard no clicks or other telltale signs that the hard disk was actually on it’s last legs besides the speed; to which I again state I may just be spoiled by SSDs. You are more than welcome to run that which you feel needed.

smartmontools test

The commands for the various tests are (replace sdX with the drive that you want to test)

  • Short: sudo smartctl -t short /dev/sdX
  • Long: sudo smartctl -t long /dev/sdX
  • Conveyance: sudo smartctl -t conveyance /dev/sdX

Note: You will not get any scrolling output for your test beyond being told how long the test will take. If you're running the long test, you may have to wait an hour or two or longer.

Once the test is finished, it's time to get out result!

sudo smartctl -H /dev/sdX

Hopefully you'll see this:

smartmontools results

If not, then either some more digging may need to be done, or it might just be time to replace the drive in question.

GUI Tools

There are other options for those of you who avoid the command line, such as the very popular and well known tool gnome-disk-utility (also known as 'disks' by some desktop environments.)

There are numerous other free and paid utilities out there, but I'm not here to advertise, as both of these utilities have served me well in the past for doing quick checks.

Good Luck!

Summary
Article Name
How to check Hard Drive Disk Health in GNU/Linux
Description
Mike provides you with instructions on checking hard drives connected to a machine running Linux for health related issues.
Author
Publisher
Ghacks Technology News
Logo

Please share this article

Facebooktwittergoogle_plusredditlinkedinmail



Responses to How to check Hard Drive Disk Health in GNU/Linux

  1. Richard Steven Hack July 19, 2017 at 8:36 am #

    I use GSmartControl which is a GUI that runs smartmontools and is available for most distros in their repositories and is very easy to use. Shows you details of the hard drive selected (type, serial number, model, firmware version, etc.), shows all the S.M.A.R.T. attributes and capabilities supported by the drive, and allows to select the short or long tests.

    • Gerard July 19, 2017 at 12:27 pm #

      I agree with Richard. Disks (gnome-disks) is good enough for a quick view and check. GSmartControl is more detailed and extensive, an excellent GUI for smartctl in my opinion.

  2. svim July 19, 2017 at 5:59 pm #

    Another GUI for smartmontools is through Webmin, a browser-based system configuration utility. It includes a handy module that taps into a drive's SMART.
    http://www.webmin.com/

  3. Lumpy Gravy July 19, 2017 at 6:03 pm #

    If your hdd or partition is formatted with ext2/ext3/ext4 you can also use e2fsprogs which, like these file systems, is developed and maintained by Theodore Ts'o.

    http://e2fsprogs.sourceforge.net/
    https://en.wikipedia.org/wiki/E2fsprogs

    The program(s) (it's actually a number of very small tools) is straightforward to use from the console and has many useful options. I have set mine up to run a thorough hdd-check once each 100 boot-ups ...

    tune2fs -c 100 /dev/sda1 (change your device accordingly)

    ... so, each couple of weeks the boot procedure takes a little longer. But that's ok.

  4. Emil July 19, 2017 at 6:44 pm #

    PartEd Magic would be worth a feature, I think it's indispensable.

  5. TelV July 20, 2017 at 4:20 pm #

    A few more suggestions here: https://www.howtogeek.com/howto/37659/the-beginners-guide-to-linux-disk-utilities/

  6. Kubrick August 25, 2017 at 1:16 pm #

    I use the gnome disk utility but its alright informing me of bad sectors but can they fix them.?.these are useless in that respect.

Leave a Reply