VMware 被 Broadcom 收购后宣布不再提供免费的 VMware ESXi 了,于是就把家里的机器换到了 Proxmox VE。
安装过程很简单,直接把 ISO 镜像放进 Ventoy 里然后 boot 进去安装就行了。本文主要讲一下安装后的一些必要设置。比如修改存储库为非订阅、移除“无有效订阅”警告、在管理面板增加 CPU 温度显示。
修改存储库
首先是启用非订阅存储库和禁用企业存储库,在节点 pve 中选择 更新-存储库-添加 即可。记得把下面那个 Ceph Quincy 的非订阅库也加进去。添加完把 Enterprise 的几个库禁用掉即可。
移除登录面板时的“无有效订阅”警告
首先 cd /usr/share/javascript/proxmox-widget-toolkit
然后备份一下文件 cp -p proxmoxlib.js proxmoxlib.js.backup
接下来编辑 proxmoxlib.js
文件,搜索关键词 No valid subscription
把 Ext.Msg.show
给 Undefined 掉。
- Ext.Msg.show({
title: gettext('No valid subscription'),
icon: Ext.Msg.WARNING,
+ void({
title: gettext('No valid subscription'),
icon: Ext.Msg.WARNING,
proxmoxlib.js保存后重启服务器即可。
添加 CPU 温度显示
对于家庭用户来说,CPU 温度不仅是显示机器负载/健康度的指标,更是关系到屋子里会不会热热的一个参数(我瞎说的,但夏天太热的话就要开空调了ww),但 PVE 居然没有默认提供 CPU 温度的监测,那就只能自己动手了。
首先安装 lm-sensors:apt install lm-sensors
接下来运行 sensors-detect
来扫描一下设备,一路按 enter 到最后输入 yes 保存即可
重启一下,然后执行一下 sensors -j
看看是否正常
root@pve:~# sensors -j
{
"coretemp-isa-0000":{
"Adapter": "ISA adapter",
"Package id 0":{
"temp1_input": 34.000,
"temp1_max": 80.000,
"temp1_crit": 100.000,
"temp1_crit_alarm": 0.000
},
"Core 0":{
"temp2_input": 34.000,
"temp2_max": 80.000,
"temp2_crit": 100.000,
"temp2_crit_alarm": 0.000
},
"Core 1":{
"temp3_input": 32.000,
"temp3_max": 80.000,
"temp3_crit": 100.000,
"temp3_crit_alarm": 0.000
},
"Core 2":{
"temp4_input": 33.000,
"temp4_max": 80.000,
"temp4_crit": 100.000,
"temp4_crit_alarm": 0.000
},
"Core 3":{
"temp5_input": 31.000,
"temp5_max": 80.000,
"temp5_crit": 100.000,
"temp5_crit_alarm": 0.000
}
},
Bash看起来非常正常,接下来 cd /usr/share/perl5/PVE/API2/
备份一下 Nodes.pm
文件:cp -p Nodes.pm Nodes.pm.backup
然后编辑 Nodes.pm
找到 my $dinfo
字段,加入 $res->{thermalstate} = sensors -j;
完成后的文件应该是下面这样的
$res->{pveversion} = PVE::pvecfg::package() . "/" .
PVE::pvecfg::version_text();
$res->{thermalstate} = `sensors -j`;
my $dinfo = df('/', 1); # output is bytes
Nodes.pm然后备份一下要修改的文件(不 cd 了,省事) cp -p /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.backup
然后编辑 pvemanagerlib.js
搜索关键词 itemId: 'load',
,在这个块下面添加以下内容(仅限 Intel 用户,AMD 用户请执行 sensors -j
后查看对应的 CPU 温度参数并修改为对应的路径)
{
itemId: 'thermal',
printBar: false,
iconCls: 'fa fa-fw fa-thermometer-half',
title: gettext('Temperature CPU'),
textField: 'thermalstate',
renderer: function(value) {
let objValue = JSON.parse(value);
let pkg0 = objValue["coretemp-isa-0000"]["Package id 0"]["temp1_input"];
return `${pkg0} °C`;
}
},
/usr/share/pve-manager/js/pvemanagerlib.js编辑完成后应该是下面这样
{
itemId: 'load',
iconCls: 'fa fa-fw fa-tasks',
title: gettext('Load average'),
printBar: false,
textField: 'loadavg',
},
{
itemId: 'thermal',
printBar: false,
iconCls: 'fa fa-fw fa-thermometer-half',
title: gettext('Temperature CPU'),
textField: 'thermalstate',
renderer: function(value) {
let objValue = JSON.parse(value);
let pkg0 = objValue["coretemp-isa-0000"]["Package id 0"]["temp1_input"];
return `${pkg0} °C`;
}
},
/usr/share/pve-manager/js/pvemanagerlib.js保存后重启一下 webUI:systemctl restart pveproxy
然后清除一下浏览器缓存,完成后的界面应该是这样的
参考资料
DeskMini H470にProxmox VE8.0をインストールする[Tuto] Afficher la température CPU dans Proxmox VE 8