标签 PVE 下的文章

因为飞牛炸了想着重启群晖,在 PVE 里用 RR 装了个群晖,结果发现系统盘只有可怜的 8GB ,瞬间开启了“找系统盘的玄学之旅”。
第一步:我心想“肯定是 RR 的那个小破 img 文件太小了”,果断把它拉到 50GB 。
结果进系统一看:哥们儿你扩了个寂寞,系统盘还是 8GB ,像在嘲笑我“你扩的是我的硬盘,我的心只有 8G”。
第二步:行吧,重装!这次我很聪明,在生成 RR 镜像时直接指定 50GB !
然后……插件还在,套件还在,共享文件夹还在,连下载任务列表都还在!
这哪是重装啊,这简直是给 DSM 做了个昂贵的“Ctrl+Z”啊喂!
第三步:我开始怀疑人生,觉得系统可能偷偷住进了我直通的硬盘里。
于是把所有硬盘全卸了,硬盘柜里只剩风扇的哭声,再次一脸严肃地全新安装……
结果呢?系统盘还是 8GB ,数据和配置跟失忆患者一样完整地站在原地等我。
我现在怀疑 DSM 是不是已经进化成了“薛定谔的系统盘”——你看得到 8GB ,但你永远找不到它到底藏在哪里。
现在整个人已经崩溃到哲学层面了:
请问大佬们,群晖的系统盘到底是被谁藏起来了?是藏在 RR 的灵魂深处,还是被 DSM 私吞了?
正确的扩容姿势到底是什么?求别再让我继续当小丑了,谢谢!😂

https://www.v2ex.com/t/1188009

接上次, 今天又折腾了一下

过程很神奇, 我依然不太明白咋回事

我找了一块以前库存硬盘, 打算换上去那个 down 的 pve 机器, 准备重装(我认为原来硬盘已经坏了)

结果, 依然无法重装系统, 中途报错...

我傻了, 到底是这块硬盘本来就是坏的, 还是因为装到这台机坏了呢, 我有点糊涂了

又过了一会, 我突然想, 难道硬盘没坏, 不可能这么巧

我找了一台老笔记本, 把原来认为有问题硬盘插上, 插上 u 盘, 娴熟的安装 windows, 结果你猜怎么着, 丝滑完成, 没有任何问题, 顺利重启进入桌面, 我还试了试看几个网页和视频, 没任何问题

我现在怀疑那台电脑主板坏了, 可能什么 io 问题, 不能复制文件写文件啥的, 具体是啥还不清楚, 这问题从来没见过, 一块硬盘在这台电脑无法装系统, 另一台却可以

坏消息, 我当时以为硬盘坏了, 已经格式化数据了, 真是想不到阿

分享个 Proxmox VE (PVE) “黑产级” 小技巧,通过改一点点后台代码和前端脚本,直接让 PVE 的侧边栏显示 VM 的备注第一行,支持显示为中文。效果就是一眼望去,你的 “测试机”、“数据库”、“挂机宝” 全都清清楚楚。

注意:此操作是基于 8.2.2 版本,操作前务必先备份文件,万一代码对不齐把网页搞崩了,还能救回来。

一共三个步骤:

  • 后端: 让 PVE 的 API 在获取集群资源时,顺便去读一下 VM 配置文件里的备注字段。
  • 前端: 让网页侧边栏拿到这个字段,并把它显示出来。
  • 重启: 刷新服务生效。

直接上代码,可以直接把下面这一整段代码复制到 PVE 的 Shell 里执行。代码里加上了自动备份功能,改错了也能找回原文件。

# ==========================================
# 第一步:后端修改 (让 API 吐出备注数据)
# ==========================================

# 先备份,万一翻车好救命

cp /usr/share/perl5/PVE/API2/Cluster.pm /usr/share/perl5/PVE/API2/Cluster.pm.bak

# 在 API 定义里加个 description 字段

sed -i "/name => {/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ description => { description => \"Description\", type => \"string\", optional => 1 }, " /usr/share/perl5/PVE/API2/Cluster.pm

# 注入读取逻辑:直接去读 /etc/pve/ 下的配置文件第一行注释

sed -i "/my \$entry = PVE::API2Tools::extract_vm_stats/a \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval { my \$raw = PVE::Tools::file_get_contents(\"/etc/pve/\" . (\$entry->{type} eq 'lxc' ? 'lxc' : 'qemu-server') . \"/\$vmid.conf\"); if (\$raw =~ /^#(\\\\S+)/) { \$entry->{description} = \$1; } };" /usr/share/perl5/PVE/API2/Cluster.pm

# ==========================================
# 第二步:前端修改 (让网页侧边栏显示备注)
# ==========================================

# 还是先备份

cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak

# 在 ResourceStore 资源池里注册一下 description 字段

sed -i "4000,4500s|name: {|description: { header: gettext('Description'), type: 'string', hidden: true }, name: {|" /usr/share/pve-manager/js/pvemanagerlib.js

# 修改侧边栏显示逻辑:如果有备注就显备注,没备注就显原来的名字

sed -i "s|text += \" (\" + info.name + ')';|text += \" (\" + (info.description ? decodeURIComponent(info.description).split('\\\\n')[0] : info.name) + ')';|" /usr/share/pve-manager/js/pvemanagerlib.js

# ==========================================
# 第三步:重启服务,刷新页面
# ==========================================

systemctl restart pvedaemon pveproxy

执行之后,使用 Ctrl+F5 强制刷新 PVE 网页。
选中一个虚拟机,点开备注。
在备注的第一行写上你想显示的文字,比如:核心数据库。
填了之后侧边栏 ID 后面括号里显示的就是你填的备注,支持中文和特殊字符。

关于更新: PVE 每次大版本更新,这些系统文件都会被覆盖。到时候如果你发现备注没了,再跑一遍这个脚本就行。

万一网页打不开了: 别慌,用 cp /usr/share/pve-manager/js/pvemanagerlib.js.bak/usr/share/pve-manager/js/pvemanagerlib.js 把备份覆盖回去,再重启服务就恢复了。


📌 转载信息
转载时间:
2026/1/16 12:29:50