sensors无输出是因传感器驱动未加载,需运行sensors-detect并加载coretemp/k10temp等模块;/sys/class/hwmon提供原始毫摄氏度数据但需手动定位;/sys/class/thermal语义清晰但部分zone为估算值;硬盘温度须用hddtemp或smartctl读取SMART信息。

sensors 命令没输出?先确认传感器驱动是否加载
直接运行 sensors 却只看到 Adapter: Non-I2C bus 或完全空白,不是命令坏了,而是内核没加载对应硬件的传感器模块。Intel CPU 需要 coretemp,AMD CPU 需要 k10temp(或新平台的 it87、nct6775 等),这些模块默认不自动启用。
- 运行
sudo sensors-detect,全程按YES(尤其别跳过Probe I2C adapter?和最后保存到/etc/modules的提示) - 检查模块是否已载入:
lsmod | grep -E "coretemp|k10temp|nct6775",无输出说明没生效 - 若
sensors-detect后仍无效,手动试加载:sudo modprobe coretemp(Intel)或sudo modprobe k10temp(AMD) - 某些云镜像或精简系统禁用了 ACPI 资源强制策略,可临时加启动参数
acpi_enforce_resources=lax再试
/sys/class/hwmon 是最稳的原始数据源
这个路径由内核原生暴露,不依赖用户态工具,单位统一为毫摄氏度(m°C),适合脚本调用或容器环境。但命名不固定,得自己定位。
- 先列出所有监控设备:
ls /sys/class/hwmon/ - 挨个查芯片名:
for d in /sys/class/hwmon/hwmon*; do echo "$d:"; cat "$d/name" 2>/dev/null; done,找含coretemp(Intel)、k10temp(AMD)或it87的目录 - 确认后读温度值:
cat /sys/class/hwmon/hwmon2/temp1_input→ 通常是 Package 总温;temp2_input起才是各核心(但顺序不保证,需结合label文件或实测验证) - 注意:部分主板用
in*_input而非temp*_input,得看实际文件名
/sys/class/thermal 更语义化,但 zone 不一定对应物理传感器
thermal_zone* 目录名带类型标识(如 cpu-thermal、x86_pkg_temp),比 hwmon 更易理解,但有些 zone 是软件估算值,非真实传感器读数。
- 快速筛选 CPU 相关 zone:
for z in /sys/class/thermal/thermal_zone*; do [ -f "$z/type" ] && grep -q -i "cpu\|pkg" "$z/type" && echo "$(cat $z/type): $(cat $z/temp 2>/dev/null) m°C"; done - 典型有效 zone:
thermal_zone0(常为 CPU 封装)、thermal_zone1(可能为 GPU 或主板) - 数值仍是毫摄氏度,需除以 1000;
mode文件可查当前热策略(enabled或disabled) - 虚拟机里这个路径可能为空,因为没真实 thermal 硬件
硬盘温度得单独处理,hddtemp 或 smartctl
CPU 和主板温度走传感器,硬盘靠 SMART。别指望 sensors 或 /sys/class/thermal 返回硬盘温度。
- 安装
hddtemp:sudo apt install hddtemp(Debian/Ubuntu)或sudo dnf install hddtemp(Fedora/RHEL) - 运行:
sudo hddtemp /dev/sda(需 root 权限读取 SMART 数据) - 更通用的方式是
sudo smartctl -A /dev/sda | grep Temperature_Celsius,兼容性更好,尤其对 NVMe 盘(smartctl -a /dev/nvme0) - 注意:部分 NVMe 盘的温度字段名是
Temperature:(带空格),grep 要适配
真实硬件温度读数依赖底层驱动支持,没有“一招鲜”方案。sensors 最方便但配置门槛高;/sys/class/hwmon 最可靠但需手动定位;/sys/class/thermal 名字友好但语义可能失真;硬盘必须另走 SMART 路径。选哪个,取决于你手头机器的芯片组、内核版本和权限场景。


















