Monitoring hard drive temperature reduces the risk of overheating, unexpected shutdowns, and permanent data loss. Spinning disks and SSDs both degrade faster when exposed to sustained high temperatures, especially under constant workload or in poorly ventilated cases.
Most modern drives expose temperature data through S.M.A.R.T. sensors. Tools such as smartctl (from smartmontools) read these values directly from the disk firmware and present them as temperature attributes for quick checks during troubleshooting or performance testing.
On Linux, temperature checks usually require elevated privileges and a correct device path like /dev/sda. Some virtual disks or passthrough devices may not expose temperature information, and certain NVMe or USB enclosures require different utilities, so behavior can differ between systems.
Steps to check hard drive temperature:
- Open a terminal on the Linux system.
- List available disk devices to identify the correct drive.
$ lsblk -d -o NAME,TYPE,SIZE | grep -E 'disk|nvme' nbd0 disk 0B nbd1 disk 0B nbd2 disk 0B nbd3 disk 0B nbd4 disk 0B nbd5 disk 0B nbd6 disk 0B nbd7 disk 0B vda disk 1.8T vdb disk 606.5M nbd8 disk 0B nbd9 disk 0B nbd10 disk 0B nbd11 disk 0B nbd12 disk 0B nbd13 disk 0B nbd14 disk 0B nbd15 disk 0B
Device names like /dev/vda or /dev/vdb correspond to the disks listed by lsblk.
- Query the disk for temperature attributes using smartctl.
$ sudo smartctl -a /dev/vdb smartctl 7.4 2023-08-01 r5530 [aarch64-linux-6.12.54-linuxkit] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org /dev/vdb: Unable to detect device type Please specify device type with the -d option. Use smartctl -h to get a usage summary
If smartctl cannot identify the disk type, use the -d option to specify the device protocol.
- Retry with an explicit device type for passthrough or virtual disks.
$ sudo smartctl -a -d scsi -T permissive /dev/vdb smartctl 7.4 2023-08-01 r5530 [aarch64-linux-6.12.54-linuxkit] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org Standard Inquiry (36 bytes) failed [Inappropriate ioctl for device] Retrying with a 64 byte Standard Inquiry Standard Inquiry (64 bytes) failed [Inappropriate ioctl for device] === START OF READ SMART DATA SECTION === Request Sense failed, [Inappropriate ioctl for device] Read defect list: asked for grown list but didn't get it Error Counter logging not supported Device does not support Self Test logging
Look for temperature fields such as Temperature_Celsius or Current Drive Temperature; if the drive reports none, the controller may not expose sensor data.
- Compare the reported temperatures to a safe operating range and investigate cooling issues if limits are exceeded.
A typical safe range for most drives is roughly 30°C to 50°C, while sustained readings above 60°C can significantly shorten drive lifespan.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
