电池健康度等于energy-full除以energy-full-design的比值,该比值反映真实电荷容量衰减,不受percentage或capacity等易伪造字段干扰,且需结合自身设备历史数据趋势判断老化程度。

直接看 energy-full 和 energy-full-design 两个值,比值就是当前健康度(损耗百分比 = 100% − 健康度)。 其他参数如 charge-cycles 只能辅助判断,不能单独用来定义“损耗程度”。
为什么只看这两个 energy 值?
Linux 内核通过电池的 SMBus/ACPI 接口读取的是真实电荷容量(单位:微瓦时 μWh),不是估算值。其中:
-
energy-full-design是出厂标称最大容量,写死在电池固件里,永不改变 -
energy-full是当前可充入的最大电量,随老化持续下降 - 两者的比值(
energy-full÷energy-full-design)才是客观的健康度,比如 4200000 / 5000000 = 0.84 → 健康度 84%,已损耗 16%
别被 percentage 迷惑——它只是当前电量占 energy-full 的比例,和老化无关;也别轻信 capacity 字段,某些厂商固件会伪造该值,不可靠。
怎么快速提取这两个数值?
用 upower 最稳,无需安装:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先找电池路径:
upower -e | grep battery(常见是/org/freedesktop/UPower/devices/battery_BAT0) - 再查关键字段:
upower -i $(upower -e | grep battery) | grep -E "energy-full|energy-full-design" - 如果输出为空,说明设备未被 UPower 正确识别,可 fallback 到 sysfs:
cat /sys/class/power_supply/BAT0/energy_full和cat /sys/class/power_supply/BAT0/energy_full_design
注意:BAT0 可能是 BAT1 或 axp288_fuel_gauge(部分 ARM 设备),用 ls /sys/class/power_supply/ 确认实际目录名。
charge-cycles 数值怎么看?
charge-cycles 是计数器,记录完整充放电次数(从 0% 到 100% 再回到 0%),但它有严重局限:
- 很多笔记本(尤其是 Dell、Lenovo 部分型号)根本不报告该值,字段显示
0或空白 - 有些固件只在 AC 连接时才累加,插着电源频繁小充小放会被漏计
- 即使数值可信,也要结合健康度看:比如
charge-cycles: 420但energy-full仍是设计值的 95%,说明使用习惯好、老化慢
它更适合做趋势参考(每月记一次,看是否异常飙升),而不是单次判定损耗。
真正容易被忽略的是:不同电池批次的 energy-full-design 值本身就有 ±3% 差异,所以拿两台同型号机器对比健康度没意义;重点是你自己这台设备的数值变化趋势——建议每季度跑一次命令存档,比绝对值更有诊断价值。










