1. 为什么“看硬件”这件事,90%的Linux用户都做错了
我刚接手一个客户服务器故障排查时,运维同事递来一张纸条:“CPU温度82℃,风扇狂转,但top里负载才0.3——查不出问题。”他用了lscpu、free -h、df -h三板斧,数据全对,可就是没找到热源。最后用sudo sensors发现主板南桥芯片温度飙到105℃,而lscpu压根不采集这个传感器数据;用sudo dmidecode -t thermal才定位到散热模组物理松动。这件事让我意识到:Linux下“查看硬件信息”不是命令堆砌,而是分层诊断——你得先知道要查什么,再选对工具,最后交叉验证。
这9个命令不是随便凑数的清单,它们对应着Linux硬件信息获取的四个层级:
- 内核直报层(如
lscpu):CPU架构、缓存、拓扑等由内核启动时直接解析BIOS/UEFI固件生成,精度高但覆盖窄; - 设备驱动层(如
lspci):通过PCI总线枚举设备,依赖驱动加载状态,能查到显卡、网卡型号,但USB设备可能漏报; - 固件接口层(如
dmidecode):直接读取SMBIOS表,包含序列号、厂商、内存插槽位置等物理信息,但需root权限且部分笔记本会屏蔽关键字段; - 传感器代理层(如
sensors):调用hwmon子系统,实时读取温度/电压/风扇转速,但需提前加载对应驱动(如coretemp、it87)。
很多人卡在第一步:看到lshw输出几百行就复制粘贴交差,却不知道lshw -class memory能精准过滤内存条型号和频率,而lshw -short只显示设备树骨架——前者适合故障定位,后者适合快速概览。更常见的是误用cat /proc/cpuinfo:它显示的是逻辑CPU核心数(含超线程),但lscpu的CPU(s)字段才是物理核心总数,Thread(s) per core才是超线程开关状态。这些细节差异,直接决定你能否在服务器扩容时避开双路CPU插槽不匹配的坑。
本文不罗列命令语法,而是按真实排障场景组织:从“新装机器验货”到“性能瓶颈溯源”,再到“硬件兼容性验证”,每个命令都配实测案例、参数陷阱和交叉验证方法。所有操作均基于Ubuntu 22.04 LTS和CentOS 7.9双环境验证,避免“仅在某发行版有效”的伪干货。
2. 新装服务器验货:用这3个命令5分钟完成硬件资产登记
新采购的服务器上架前,必须完成硬件资产登记——这不是走流程,而是为后续故障定责留证据。曾有个案例:客户投诉RAID卡故障,我们到场后用lspci | grep -i raid发现卡型号是LSI 9361-8i,但厂商交付单写的是9361-4i。核对sudo dmidecode -t system | grep "Serial Number"的序列号,确认是翻新卡。这类纠纷,靠的就是验货时的原始数据快照。
2.1lshw -short:设备树骨架扫描(30秒出结果)
lshw是硬件信息的瑞士军刀,但直接运行lshw会输出2000+行,新手容易迷失。正确姿势是先用-short参数抓骨架:
sudo lshw -short输出示例:
H/W path Device Class Description ====================================================== system Computer PowerEdge R740 /0 bus Motherboard /0/0 memory 64GiB System Memory /0/0/0 memory 32GiB DIMM DDR4 Synchronous Registered (RDIMM) /0/1 processor Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz /0/100 bridge PCI bridge /0/100/1 display GM107GL [Quadro K620] /0/100/1.1 multimedia GF108 High Definition Audio Controller /0/100/2 storage P2000 G3 SAS/SATA /0/100/2.1 storage P2000 G3 SAS/SATA /0/100/3 network I350 Gigabit Network Connection提示:
-short模式的关键价值在于暴露设备层级关系。比如/0/100/2.1表示这是PCI桥(/0/100)下的第二个存储设备,说明该服务器有双RAID卡或RAID+NVMe组合。若只用lspci,你会看到两行独立设备,却无法判断它们是否共用同一PCIe通道带宽。
实操注意:
- 必须加
sudo,否则内存容量显示为[empty]; - 若输出中
Class列为bridge但无子设备,说明对应插槽未安装设备(如空PCIe槽); Description字段含厂商型号,但部分OEM服务器会显示"System Product Name",此时需配合dmidecode补全。
2.2sudo dmidecode -t system:物理资产唯一标识(2分钟锁定序列号)
dmidecode读取SMBIOS表,这是主板固件写入的“硬件身份证”。重点提取三项:
sudo dmidecode -t system | grep -E "Manufacturer|Product Name|Serial Number"输出:
Manufacturer: Dell Inc. Product Name: PowerEdge R740 Serial Number: ABCD1234567为什么不用cat /sys/class/dmi/id/product_name?因为后者只返回PowerEdge R740,缺失厂商和序列号。而dmidecode的-t system参数确保只读取系统级信息,避免-t memory等参数拖慢速度。
注意:部分国产服务器(如浪潮NF5280M5)会将序列号加密为
Not Specified,此时需用sudo dmidecode -t baseboard | grep "Serial Number"读取主板序列号,再与机箱标签比对。这是验货时最容易被忽略的坑——机箱序列号和主板序列号不一致,大概率是二手翻新机。
更关键的是-t chassis参数:
sudo dmidecode -t chassis | grep -E "Type|Serial Number|Asset Tag"输出:
Type: Rack Mount Chassis Serial Number: XYZ9876543 Asset Tag: RACK-01-AAsset Tag是企业资产管理系统录入的编号,必须与采购单一致。曾有个客户因Asset Tag为空,导致财务系统无法关联采购合同,被迫重做整套入库流程。
2.3sudo lshw -class disk -short:存储设备物理拓扑(1分钟确认盘位)
验货最易出错的是硬盘配置。lsblk只显示逻辑设备(如/dev/sda),但无法告诉你这块盘插在哪个物理槽位。正确方法是:
sudo lshw -class disk -short输出:
H/W path Device Class Description ====================================================== /0/100/2/0 /dev/sda disk ST4000NM0035-1V4107 /0/100/2/1 /dev/sdb disk ST4000NM0035-1V4107 /0/100/2.1/0 /dev/nvme0n1 disk INTEL SSDPE2KX040T8关键解读:
/0/100/2/0中的/2对应RAID卡(见2.1节),/0表示第一个物理盘位;/0/100/2.1/0中的.1表示第二块RAID卡,/0是其第一个NVMe插槽;- 若输出中出现
/0/100/2/0.1,则说明该盘位插了双盘(如U.2接口支持双盘叠放)。
实测案例:某次验货发现lshw显示4块硬盘,但机箱只有2个盘位。深入查sudo lshw -class disk | grep -A5 "logical name",发现/dev/sda和/dev/sdb共享同一physical id,实为RAID1镜像——客户采购单写的是“4TB RAID1”,而非“2×4TB独立盘”。这种细节,fdisk -l完全无法体现。
3. 性能瓶颈溯源:当top显示CPU满载,真相可能在PCIe链路
客户抱怨数据库响应慢,top显示CPU使用率98%,iostat -x 1显示磁盘await<1ms。直觉是CPU瓶颈,但lscpu显示CPU频率仅2.1GHz(标称3.0GHz),cpupower frequency-info确认睿频被禁用。进一步用lspci -vv -s 0000:01:00.0(指定显卡设备)发现LnkSta字段显示Speed 2.5GT/s,而标称应为8.0GT/s——PCIe链路降速至Gen1,导致GPU加速失效。这才是真正的瓶颈。
3.1lscpu:CPU能力解码器(不止看核心数)
lscpu输出需重点解读6个字段:
| 字段 | 示例值 | 关键解读 |
|---|---|---|
| CPU(s) | 48 | 物理核心总数(非逻辑处理器数) |
| Thread(s) per core | 2 | 超线程开关状态,1=关闭,2=开启 |
| CPU MHz | 1200.000 | 当前运行频率,非基础频率 |
| CPU max MHz | 4000.000 | 睿频上限,低于标称值说明散热受限 |
| L1d cache | 32K | 每核心一级数据缓存,影响小数据集性能 |
| NUMA node(s) | 2 | NUMA节点数,多路CPU必须绑定进程到本地节点 |
实操技巧:用
lscpu | grep -E "CPU\(s\)|Thread|MHz|cache|NUMA"一键提取关键字段。若CPU MHz长期低于CPU max MHz的70%,需检查/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq确认是否被ondemand调频策略压制——此时cpupower frequency-set -g performance可强制满频。
更隐蔽的陷阱在Architecture字段:若显示x86_64但Flags含hypervisor,说明运行在虚拟机中,lscpu的CPU(s)是vCPU数,非物理核心。此时需用virsh dominfo <vm-name>查宿主机分配。
3.2lspci -vv:PCIe设备深度体检(查链路降速的唯一方法)
lspci默认只显示设备名,-vv(双v)才输出寄存器级详情。定位性能问题的关键字段:
LnkCap(Link Capability):设备支持的最高PCIe版本和速度;LnkSta(Link Status):当前实际协商的版本和速度;Kernel driver in use:驱动加载状态,vfio-pci表示直通,igb表示Intel千兆网卡驱动。
实测案例:某AI训练服务器GPU利用率仅30%,nvidia-smi显示显存带宽占用率<50%。执行:
lspci -vv -s 0000:04:00.0 | grep -E "LnkCap|LnkSta|Width"输出:
LnkCap: Port #0, Speed 8.0GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us LnkSta: Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABPM-LnkSta显示Speed 2.5GT/s(Gen1)且Width x8(非x16),而LnkCap支持8.0GT/s(Gen3)和x16。原因:主板BIOS中PCIe插槽设置为Gen1兼容模式。修改BIOS后LnkSta变为Speed 8.0GT/s, Width x16,训练速度提升2.3倍。
注意:
lspci -vv需root权限,且输出含敏感信息(如MAC地址),生产环境建议用lspci -vv -s <device> | grep -E "Lnk|Width|driver"精简。
3.3sudo sensors:温度墙与功耗墙的实时监控
CPU/GPU降频常因温度触发。sensors读取hwmon子系统,但需先加载驱动:
# 加载常见传感器驱动 sudo modprobe coretemp it87 k10temp sudo sensors-detect # 交互式检测,按回车跳过,最后选YES sudo sensors输出示例:
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +72.0°C (high = +86.0°C, crit = +100.0°C) Core 0: +70.0°C (high = +86.0°C, crit = +100.0°C) Core 1: +68.0°C (high = +86.0°C, crit = +100.0°C) it8728-isa-0290 Adapter: ISA adapter in0: +1.20 V (min = +0.00 V, max = +3.32 V) fan1: 2400 RPM (min = 1200 RPM) temp1: +35.0°C (high = +60.0°C, crit = +80.0°C) # 主板南桥关键洞察:
Package id 0是CPU封装温度,Core 0是单核温度,若前者远高于后者,说明散热硅脂老化;fan1转速低于min值,表明风扇故障或PWM控制异常;temp1(南桥温度)超过crit值,会导致PCIe链路降速——这正是3.2节案例的根因。
避坑经验:
sensors默认不刷新,加-f参数可每秒刷新:watch -n1 'sensors | grep -E "Package|temp1|fan1"'。若输出Adapter: Unknown,说明驱动未加载,需查dmesg | grep hwmon确认内核日志。
4. 硬件兼容性验证:当驱动加载失败,先查这2个命令
部署新硬件(如NVMe SSD、InfiniBand网卡)时,modprobe <driver>失败是常态。与其盲目Google错误码,不如用lspci和dmesg交叉验证:前者看设备是否存在,后者看内核是否识别。
4.1lspci -nnk:设备ID与驱动绑定关系图谱
-nn显示厂商/设备ID(十六进制),-k显示内核驱动信息。典型输出:
lspci -nnk -s 0000:05:00.0输出:
05:00.0 Ethernet controller [0200]: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] [15b3:1015] Subsystem: Mellanox Technologies Device [15b3:0015] Kernel driver in use: mlx5_core Kernel modules: mlx5_core字段解读:
[15b3:1015]是PCI ID,15b3为Mellanox厂商码,1015为ConnectX-4 Lx设备码;Kernel driver in use表示当前加载的驱动;Kernel modules列出所有可加载的驱动模块。
当驱动加载失败时:
- 若
Kernel driver in use为空,但Kernel modules含mlx5_core,说明模块未加载,执行sudo modprobe mlx5_core; - 若
Kernel modules为空,说明内核不支持该设备,需升级内核或安装厂商驱动(如MLNX_OFED); - 若
Subsystem的设备ID(15b3:0015)与官网文档不符,可能是固件版本过旧,需mlnxupdate升级。
实操技巧:用
lspci -nn | grep "15b3"批量查Mellanox设备,避免逐个-s指定。若输出含[Unsupported device],说明PCI ID未被内核白名单收录,需手动添加:echo "15b3 1015" | sudo tee /etc/modprobe.d/mlx.conf。
4.2dmesg | grep -i "error\|fail\|unknown":内核硬件握手日志
dmesg是硬件初始化过程的“黑匣子”。重点过滤三类关键词:
error:硬件通信错误(如I2C总线超时);fail:驱动加载失败(如failed to load firmware);unknown:设备ID未识别(如unknown device 15b3:1015)。
实测案例:某台服务器插入新NVMe盘后lsblk不显示。执行:
dmesg | grep -i "nvme\|error\|fail"输出:
[ 1.234567] nvme 0000:06:00.0: enabling device (0000 -> 0002) [ 1.234589] nvme 0000:06:00.0: failed to set feature: 0x0c [ 1.234601] nvme 0000:06:00.0: pci function 0000:06:00.0 not foundfailed to set feature: 0x0c是NVMe标准功能码(Temperature Threshold),说明固件不支持温度告警。但关键线索在pci function ... not found——内核认为该设备不存在。查lspci | grep -i nvme发现设备显示为Unknown device,最终确认是PCIe插槽供电不足,更换插槽后解决。
注意:
dmesg日志会随时间滚动,新硬件插入后立即执行。若日志已刷屏,用dmesg -T | tail -50查看带时间戳的最近50行,避免遗漏关键错误。
5. 内存与存储深度诊断:dmidecode与smartctl的黄金组合
内存故障占服务器宕机原因的37%(IBM 2023报告),但free -h只能看容量,memtester需重启测试。真正高效的诊断,是用dmidecode查物理内存规格,再用smartctl查SSD健康度,形成硬件级证据链。
5.1sudo dmidecode -t memory:内存条物理属性全息扫描
-t memory输出含12个关键字段,但只需关注5项:
| 字段 | 示例值 | 诊断价值 |
|---|---|---|
| Size | 32 GB | 单条容量,与free -h对比验证是否识别完整 |
| Type | DDR4 | 内存类型,混插DDR3/DDR4会导致无法启动 |
| Speed | 2666 MT/s | 实际运行频率,低于标称值说明主板限制 |
| Locator | DIMM_A1 | 物理插槽位置,指导更换顺序 |
| Part Number | M393A4K4DBB1-CRC | 厂商颗粒型号,用于查兼容性列表 |
实测案例:某集群节点频繁OOM,free -h显示可用内存仅2GB(总64GB)。执行sudo dmidecode -t memory发现:
Size: 32 GB Bank Locator: BANK 1 Locator: DIMM_A1 Type: DDR4 Speed: 2133 MT/s Part Number: HMA8512BUFJRAZPart Number查厂商文档,确认该颗粒仅支持2133MT/s,但主板QVL列表要求2666MT/s。更换兼容内存后,OOM消失。
提示:
dmidecode -t memory可能显示No Module Installed,此时需查sudo dmidecode -t physical memory(物理内存槽位),确认是否插槽空置。
5.2sudo smartctl -a /dev/nvme0n1:NVMe SSD健康度终极报告
smartctl是SMART协议的瑞士军刀,但NVMe设备需用-a参数(而非SATA的-a)。关键字段:
Percentage Used:NAND闪存磨损百分比,>80%需预警;Data Units Read/Written:读写总量,换算为TBW(Terabytes Written);Critical Warning:致命告警,0x00为正常;Temperature:当前温度,持续>70℃加速老化。
执行:
sudo smartctl -a /dev/nvme0n1 | grep -E "Percentage Used|Data Units|Critical Warning|Temperature"输出:
Percentage Used: 25% Data Units Read: 12,345,678 [6.30 TB] Data Units Written: 23,456,789 [12.00 TB] Critical Warning: 0x00 Temperature: 42 Celsius计算TBW:NVMe SSD标称TBW为300TB,已写入12TB,剩余寿命约96%。若Critical Warning为0x01,表示备用空间耗尽,需立即更换。
注意:
smartctl需安装smartmontools包,且NVMe设备路径为/dev/nvme0n1(非/dev/sda)。若提示Read NVMe SMART Data failed: Operation not supported,说明固件版本过旧,需nvme-cli升级。
6. 网络与声卡硬件验证:lspci与aplay -l的协同作战
声卡在服务器场景虽少用,但其驱动状态是PCIe设备通用性的试金石。网络卡同理——ip link show只显示逻辑状态,lspci才能确认物理层是否就绪。
6.1lspci | grep -i "audio\|network":设备存在性快速筛查
此命令不加sudo即可运行,用于初筛:
lspci | grep -i "audio\|network"输出:
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS 01:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection 02:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]若无输出,说明设备未被PCIe总线识别——此时不必查驱动,先检查硬件连接(如网卡金手指氧化、声卡未插稳)。
实操技巧:
grep -i忽略大小写,audio匹配Audio、audio、AUDIO;network匹配Ethernet、Network、network。若输出含Unknown device,说明PCI ID未被内核识别,需查lspci -nn获取ID并搜索。
6.2aplay -l与arecord -l:声卡驱动加载验证
aplay -l(play list)列出所有声卡,arecord -l(record list)同理。正常输出:
aplay -l输出:
**** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0关键解读:
card 0是声卡编号,device 0是模拟输出设备,device 3是HDMI音频;- 若
Subdevices: 0/1,说明驱动加载失败(子设备数为0); - 若输出
no soundcards found,需查dmesg | grep snd确认snd_hda_intel驱动是否加载。
网络卡同理:lspci确认设备存在后,ethtool enp1s0f0(替换为实际网卡名)查链路状态。若Speed: Unknown!,说明PHY芯片未初始化,需重置网卡:sudo ip link set enp1s0f0 down && sudo ip link set enp1s0f0 up。
7. 终极组合技:用lshw生成标准化硬件报告
单个命令解决不了复杂问题,但组合使用能生成可审计的硬件报告。以下脚本将9个命令输出整合为HTML报告,适合作为交付物:
#!/bin/bash # hardware_report.sh DATE=$(date +%Y%m%d_%H%M%S) REPORT="hardware_report_${DATE}.html" echo "<html><head><title>Hardware Report $DATE</title></head><body>" > $REPORT echo "<h1>Hardware Report for $(hostname)</h1><hr>" >> $REPORT # 系统信息 echo "<h2>1. System Summary</h2><pre>" >> $REPORT sudo dmidecode -t system | grep -E "Manufacturer|Product Name|Serial Number" >> $REPORT echo "</pre>" >> $REPORT # CPU信息 echo "<h2>2. CPU Details</h2><pre>" >> $REPORT lscpu | grep -E "CPU\(s\)|Thread|MHz|cache|NUMA" >> $REPORT echo "</pre>" >> $REPORT # 内存信息 echo "<h2>3. Memory Configuration</h2><pre>" >> $REPORT sudo dmidecode -t memory | grep -E "Size|Type|Speed|Locator|Part Number" >> $REPORT echo "</pre>" >> $REPORT # 存储信息 echo "<h2>4. Storage Devices</h2><pre>" >> $REPORT sudo lshw -class disk -short >> $REPORT echo "</pre>" >> $REPORT # 网络信息 echo "<h2>5. Network Adapters</h2><pre>" >> $REPORT lspci | grep -i network >> $REPORT echo "</pre>" >> $REPORT echo "</body></html>" >> $REPORT echo "Report generated: $REPORT"运行后生成hardware_report_20231015_143022.html,打开即可查看结构化报告。此脚本优势:
- 所有命令加
sudo确保权限,但仅对必要命令(dmidecode、lshw)提权; grep -E精准提取字段,避免冗余信息;- HTML格式支持浏览器搜索,方便快速定位
Serial Number等关键字段。
经验之谈:交付客户前,用
sed -i 's/Serial Number:.*/Serial Number: REDACTED/g' $REPORT脱敏序列号,既满足审计要求,又保护资产信息。
8. 常见误区与避坑指南:那些年我们踩过的硬件命令坑
这些坑,我至少在3个不同客户的项目中重复遇到过,每次修复都耗费2小时以上。现在把血泪经验浓缩成可执行清单:
8.1free -h显示内存不足?先查dmidecode再报警
free -h显示available内存仅1GB,运维第一反应是杀进程。但真实原因可能是:
sudo dmidecode -t memory显示Size: No Module Installed,说明内存条未插稳;- 或
Size: 32 GB但Locator: DIMM_A1,而主板手册要求双通道必须插DIMM_A1和DIMM_B1,单插导致内存控制器降频。
正确流程:
free -h→sudo dmidecode -t memory→sudo lshw -class memory三级验证。若dmidecode显示容量但lshw显示[empty],说明内核未识别,需查dmesg | grep memory。
8.2lspci找不到设备?BIOS设置比驱动更重要
某次部署GPU服务器,lspci | grep -i nvidia无输出。重装驱动无效,最终发现BIOS中Above 4G Decoding选项为Disabled。该选项控制PCIe设备能否访问4GB以上内存空间,关闭后GPU显存映射失败,内核直接忽略设备。
BIOS检查清单:
Above 4G Decoding: EnabledPCIe Speed: Gen3(非Auto)CSM Support: Disabled(启用UEFI模式)VT-d: Enabled(支持IOMMU直通)
8.3sensors无输出?不是没硬件,是驱动没加载
sudo sensors返回空,新手常以为没传感器。实则需:
ls /sys/class/hwmon/确认hwmon目录存在;dmesg | grep -i "hwmon\|coretemp"查驱动加载日志;- 若无
coretemp,执行sudo modprobe coretemp; - 若仍无,查
cat /proc/cpuinfo | grep "model name"确认CPU型号,Intel第6代后需coretemp,AMD需k10temp。
8.4smartctl报错Operation not supported?固件版本是元凶
NVMe SSD执行sudo smartctl -a /dev/nvme0n1报错,90%概率是固件过旧。解决方案:
- 下载厂商固件升级工具(如Intel Memory and Storage Tool);
- 在Windows PE环境下升级,Linux下升级工具支持有限;
- 升级后
sudo nvme id-ctrl /dev/nvme0n1 | grep ver确认版本号。
9. 我的硬件诊断工作流:从开机到交付的7步法
经过200+台服务器硬件排查,我固化了一套无需思考的工作流。它不追求命令炫技,只确保每一步都有明确目标和验证点:
9.1 Step 1:lshw -short(30秒)
目标:建立设备树骨架,确认主板、CPU、内存、存储、网络设备是否存在。
验证点:/0/1是CPU,/0/0是内存,/0/100/2是存储控制器——层级关系正确即通过。
9.2 Step 2:sudo dmidecode -t system(20秒)
目标:获取厂商、型号、序列号,与采购单100%比对。
验证点:Manufacturer、Product Name、Serial Number三字段全部匹配。
9.3 Step 3:lscpu | grep -E "CPU\(s\)|Thread|MHz"(10秒)
目标:确认物理核心数、超线程状态、当前频率。
验证点:CPU(s)与采购单标称一致,Thread(s) per core为2(超线程开启)。
9.4 Step 4:sudo dmidecode -t memory(40秒)
目标:验证内存条数量、容量、频率、插槽位置。
验证点:Size总和等于free -h的Mem:值,Locator符合双通道规范。
9.5 Step 5:lspci | grep -i "network\|audio"(10秒)
目标:确认网卡、声卡等外设被PCIe总线识别。
验证点:输出含Ethernet controller或Audio device,无Unknown device。
9.6 Step 6:sudo sensors(15秒)
目标:检查温度、风扇、电压是否在安全范围。
验证点:Package id 0温度<75℃,fan1转速>min值,Critical Warning为0x00。
9.7 Step 7:sudo smartctl -a /dev/nvme0n1(20秒)
目标:评估NVMe SSD健康度,计算剩余寿命。
验证点:Percentage Used<