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.
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.
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.
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:
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!
In Windows 7 was implemented the best system for checking HDD drives and even Sata 2/3 /, when you go into my computer you right-click on the disk and select the properties, go to the service, perform the scan, the following options are available: 1) Automatically correct system errors 2) Scan and repair damaged sectors. in Windows 10 do you think it’s all included? Removed … you run the Automatically fix system errors – on Windows 2000 / XP / Windows Vista / 7 / test automatically and you will be notified that the system is busy and can not check the disk, enable the next time you restart the computer, check (in the scheduler) and there will be a blue screen with verification depending on the version of Windows / and will check well between others, for which I liked Microsoft, but for some reason I forgot or specially removed it in Windows 10 and maybe in 8 / 8.1 such a function, of course the best way to restore these functions to save many users from the Bad Sector to the At the initial stage, do not you agree? Ð’ Windows 7 была реализована ÑÐ°Ð¼Ð°Ñ Ð»ÑƒÑ‡ÑˆÐ°Ñ ÑиÑтема по проверке HDD диÑков и даже Sata 2/3/ , когда заходишь в мой компьютер нажимаешь правой кнопкой мыши на диÑк и выбираешь ÑвойÑтва, переходишь в ÑервиÑ, выполнить проверку, ДоÑтупны Ñледующие варианты: 1)ÐвтоматичеÑки иÑправлÑÑ‚ÑŒ ÑиÑтемные ошибки 2)ПроверÑÑ‚ÑŒ и воÑÑтанавливать поврежденные Ñектора. в Windows 10 вы думаете вÑÑ‘ включено? Убрали… вы запуÑтите проверку ÐвтоматичеÑки иÑправлÑÑ‚ÑŒ ÑиÑтемные ошибки – на Windows 2000/XP/Windows Vista/7/ и вам выдаÑÑ‚ уведомление о том, что ÑиÑтема занÑта и не может проверить диÑк, включить при Ñледующий перезагрузке компьютера проверку (в планировщик) и будет Ñиний Ñкран Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¾Ð¹ в завиÑимоÑти от верÑии Windows/ и между прочем проверит хорошо, за что Ñ Ð»ÑŽÐ±Ð¸Ð» Microsoft, но почему то забыли или Ñпециально убрали в Windows 10 а то и может и в 8/8.1 такую функцию, конечно лучший вариант воÑÑтановить Ñти функции, чтобы ÑпаÑти многих пользователей от Бад Секторов на начальной Ñтадии, разве вы не ÑоглаÑны?
THANK YOU. very helpful. Q. Can I run this utility on more than on hard drive at once, i.e. start it for one, then immediately for another while the first test is running?
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.
A few more suggestions here: https://www.howtogeek.com/howto/37659/the-beginners-guide-to-linux-disk-utilities/
PartEd Magic would be worth a feature, I think it’s indispensable.
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.
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/
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.
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.