arm-pve-issue

arm的pve还是太小众 。搞了个e20c来玩pve,安装好了遇到了问题,在gemini的帮助下解决了

基本信息

硬件

radxa e20c 4g+32g

系统

armbian
Armbian_25.11.0_rockchip_e20c_bookworm_5.10.160_server_2025.08.11

(由于该项目几乎每周都会编译新的固件,链接会失效,就不挂链接了)

内核

然后我使用命令更新内核到6.1

1
armbian-update -k 6.1.115

注意,内核也有可能因为更新的原因而删除旧的内核,可以去以下链接查看

https://github.com/ophub/kernel/releases/

e20c的目前支持的内核版本

https://github.com/ophub/kernel/releases/tag/kernel_rk35xx

其它

在安装pve之前,我执行了armbian-upgrade把软件都更新到了最新版本

安装

注意1,armbian13 (trixie) 目前(2025-08-17)是不支持安装pve9的。尽管文档中写的支持

注意2,以前可以使用 armbian-software 直接选308 安装pve,现在也不行了。直接表现为里面那个仓库都404了

项目地址

https://github.com/jiangcuo/pxvirt

中文文档:
https://docs.pxvirt.lierfang.com/zh/installfromdebian.html

就几句命令就安装好了

发现问题

注意,我解决了问题以后,没能复现问题,但在解决之前是100%复现了问题的,估计是刷机没有清理的问题。。。

安装完成后,能看到版本 pveversion

1
pve-manager/8.4.10/01d2d7dd794a93d5 (running kernel: 6.1.115-rk35xx-ophub)

端口也能正常监听,但是不能访问

root@pxvirt:~# netstat -ano | grep 8006

1
tcp6       0      0 :::8006                 :::*                    LISTEN      off (0.00/0/0)

问了gemini,让按步骤排除问题

1

1
systemctl status pveproxy pvedaemon

2

1
2
systemctl status pve-firewall
pve-firewall status

3

检查证书问题

开始检查

我第一步就检查出了问题

1
systemctl status pveproxy pvedaemon

以下输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49


● pveproxy.service - PVE API Proxy Server

     Loaded: loaded (/lib/systemd/system/pveproxy.service; enabled; preset: enabled)

     Active: active (running) since Sun 2025-08-17 05:51:43 PDT; 10min ago

    Process: 1624 ExecStartPre=/usr/bin/pvecm updatecerts --silent (code=exited, status=1/FAILURE)

    Process: 1630 ExecStart=/usr/bin/pveproxy start (code=exited, status=0/SUCCESS)

   Main PID: 1662 (pveproxy)

      Tasks: 3 (limit: 4664)

     Memory: 152.7M

        CPU: 1min 32.921s

     CGroup: /system.slice/pveproxy.service

             ├─1662 pveproxy

             ├─3629 "pveproxy worker"

             └─3630 "pveproxy worker"



Aug 17 06:02:04 pxvirt pveproxy[1662]: starting 1 worker(s)

Aug 17 06:02:04 pxvirt pveproxy[1662]: worker 3629 started

Aug 17 06:02:04 pxvirt pveproxy[3629]: /etc/pve/local/pve-ssl.pem: failed to use local certificate chain (cert_file or cert) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 2088.

Aug 17 06:02:04 pxvirt pveproxy[3606]: worker exit

Aug 17 06:02:04 pxvirt pveproxy[3607]: worker exit

Aug 17 06:02:04 pxvirt pveproxy[1662]: worker 3606 finished

Aug 17 06:02:04 pxvirt pveproxy[1662]: starting 1 worker(s)

Aug 17 06:02:04 pxvirt pveproxy[1662]: worker 3607 finished

Aug 17 06:02:04 pxvirt pveproxy[1662]: worker 3630 started

Aug 17 06:02:04 pxvirt pveproxy[3630]: /etc/pve/local/pve-ssl.pem: failed to use local certificate chain (cert_file or cert) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 2088.

注意到这句,说明是证书问题

1
/etc/pve/local/pve-ssl.pem: failed to use local certificate chain (cert_file or cert) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 2088.

然后我输入 pvecm updatecerts 命令更新证书,但更新失败

1
2
3
4
5
Could not read private key from /etc/pve/priv/pve-root-ca.key

generating pve root certificate failed:

command 'faketime yesterday openssl req -batch -days 3650 -new -x509 -nodes -key /etc/pve/priv/pve-root-ca.key -out /etc/pve/pve-root-ca.pem -subj '/CN=Proxmox Virtual Environment/OU=f02937c1-6c62-490d-890b-47fb7699dae2/O=PVE Cluster Manager CA/'' failed: exit code 1

然后,我发现 /etc/pve/priv/pve-root-ca.key/etc/pve/pve-root-ca.pem 文件的内容是空的

1
2
systemctl stop pvedaemon
systemctl stop pveproxy

然后我执行了

1
2
3
4
5
ssh-keygen
rm -rf /etc/pve/priv/pve-root-ca.key
rm -rf /etc/pve/pve-root-ca.pem
rm -rf /etc/pve/pve-www.key
rm -rf /etc/pve/authkey.pub

再执行了这个 pvecm updatecerts --forse

附上所有安装命令

第一次连ssh

1
armbian-update -k 6.1.115

第二次连ssh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

# 这句可以不要,相当于运行该命令时,会安装一些必要软件。
# 打印同列表后,按 ctrl+c 退出
armbian-software

armbian-upgrade

curl -L https://mirrors.lierfang.com/pxcloud/lierfang.gpg -o /etc/apt/trusted.gpg.d/lierfang.gpg

# 准备做安装装的准备,设置网络网卡
# 改变一下下面两个变量的值,
# 即目前ip设为 192.168.1.2,网卡使用 eth0
tmp_ip=192.168.1.2
tmp_if_name=eth0

# 开始设置网络网卡
source /etc/os-release
echo "deb https://mirrors.lierfang.com/pxcloud/pxvirt $VERSION_CODENAME main">/etc/apt/sources.list.d/pxvirt-sources.list

echo "pxvirt" > /etc/hostname
cat <<eof > /etc/hosts
127.0.0.1 localhost
${tmp_ip} pxvirt.local pxvirt

::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
eof

systemctl disable NetworkManager
systemctl stop NetworkManager

apt install vim ifupdown2 -y
rm /etc/network/interfaces.new

tmp_gateway=`echo $tmp_ip | awk -F. '{print $1"."$2"."$3".1"}'`
cat <<eof >> /etc/network/interfaces
auto ${tmp_if_name}
iface ${tmp_if_name} inet static
address ${tmp_ip}/24
gateway ${tmp_gateway}
eof

echo
echo "show hosts '/etc/hosts' ................."
cat /etc/hosts

echo
echo "show interfaces '/etc/network/interfaces' ............."
cat /etc/network/interfaces

echo "检查,如果有问题,重启后,可能ssh连接不到系统"

reboot

第三次连ssh

注意,由于由dhcp改成了静态ip,可能要设置dns,否则可能同有网

可以用以下命令试试

1
2
3
ping 8.8.8.8

curl baidu.com

如果能ping 但不能curl 就是dns问题,使用以下命令设置

1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
1
2
apt update
apt install proxmox-ve pve-manager qemu-server pve-cluster
0%