今天分享下我的 Proxmox VE (PVE) 系统小版本升级过程。我的 N150 小主机自从 5 月 8 日安装了 PVE 8.4.1 版本后,一直稳定运行,默默奉献。不知不觉已经过去一段时间,本着“尝鲜”和“保持系统健康”的原则,今天决定检查一下是否有可用的更新,并进行一次系统升级。 ### 1. 检查当前 PVE 版本 首先,自然是 SSH 登录到 PVE 主机,查看一下当前的系统版本。通过 `pveversion -v` 命令(或者直接 `pveversion` 也能看到主要版本),我得到了以下信息: ```bash root@xiaoten:~# pveversion -v pve-manager/8.4.1/2a5fa54a8503f96d (running kernel: 6.8.12-10-pve) proxmox-kernel-6.8.12-10-pve: 6.8.12-10 proxmox-kernel-6.8: 6.8.12-10 proxmox-kernel-6.5: 6.5.13-5 proxmox-kernel-6.5.13-5-pve-signed: 6.5.13-5 ceph-fuse: 17.2.7-pve3 corosync: 3.1.7-pve3 criu: 3.17.1-2 glusterfs-client: 10.3-5 ifupdown2: 3.2.0-1+pmx8 ksm-control-daemon: 1.4-1 libjs-extjs: 7.0.0-4 libknet1: 1.28-pve1 libproxmox-acme-perl: 1.5.0 libproxmox-backup-qemu0: 1.4.1 libproxmox-rs-perl: 0.3.3 libpve-access-control: 8.1.3 libpve-apiclient-perl: 3.3.1 libpve-common-perl: 8.2.1 libpve-guest-common-perl: 5.1.1 libpve-http-server-perl: 5.1.0 libpve-network-perl: 0.9.9 libpve-rs-perl: 0.8.8 libpve-storage-perl: 8.2.1 libpve-user-cfg0: 1.0-1 libspice-server1: 0.15.1-1 lvm2: 2.03.16-2 lxc-pve: 5.0.2-4 lxcfs: 5.0.3-pve4 novnc-pve: 1.4.0-3 proxmox-backup-client: 3.2.2-1 proxmox-backup-file-restore: 3.2.2-1 proxmox-kernel-helper: 8.1.0 proxmox-mail-forward: 0.2.3 proxmox-mini-journalreader: 1.4.0 proxmox-offline-mirror-helper: 0.6.6 proxmox-widget-toolkit: 4.2.1 pve-cluster: 8.0.5 pve-container: 5.1.1 pve-docs: 8.2.2 pve-edk2-firmware: 4.2023.08-4 pve-firewall: 5.0.3 pve-firmware: 3.10-1 pve-ha-manager: 4.0.3 pve-i18n: 3.2.1 pve-qemu-kvm: 8.1.5-6 pve-xtermjs: 5.3.0-3 qemu-server: 8.2.1 smartmontools: 7.3-pve1 spiceterm: 3.3.0 swtpm: 0.8.0+pve1 vncterm: 1.8.0 zfsutils-linux: 2.2.4-pve1 root@xiaoten:~# ``` 可以看到,当前 PVE Manager 版本为 `8.4.1`,运行的内核是 `6.8.12-10-pve`。确认无误,准备开始更新。 ### 2. 检查可更新的软件包 确认了当前版本后,接下来就是标准的 Debian/Ubuntu 更新流程了: #### a. 更新软件包列表 首先,执行 `apt update` 命令,从配置的软件源中获取最新的软件包信息: ```bash root@xiaoten:~# apt update Hit:1 http://ftp.debian.org/debian bookworm InRelease Hit:2 http://ftp.debian.org/debian bookworm-updates InRelease Hit:3 http://security.debian.org/debian-security bookworm-security InRelease Hit:4 http://download.proxmox.com/debian/pve bookworm InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 10 packages can be upgraded. Run 'apt list --upgradable' to see them. root@xiaoten:~# ``` 提示有 10 个软件包可以升级,这给了我继续下去的动力! #### b. 查看可升级的软件包 (可选但推荐) 为了更清楚地了解哪些包会被升级,我执行了 `apt list --upgradable` 命令: ```bash root@xiaoten:~# apt list --upgradable Listing... Done # 这里会列出所有可升级的软件包及其版本信息 # 例如(具体内容会根据你的系统有所不同): # pve-kernel-6.8/pve-no-subscription ... # pve-manager/pve-no-subscription ... # ... 其他依赖包 ``` 这一步可以让你对即将进行的升级有个大概的了解。如果看到有重要的核心组件(如内核、PVE Manager 本身)更新,就需要更加小心,并确保做好备份(如果环境重要的话)。 ### 3. 执行升级操作 看到有不少软件包可以更新,那就开始执行升级吧!对于 PVE 这样的系统,**强烈推荐使用 `apt dist-upgrade`** 而不是 `apt upgrade`。 * `apt upgrade`:只会升级已安装的软件包,但如果升级需要卸载其他包,它就不会执行。 * `apt dist-upgrade`:除了升级软件包外,还会智能地处理依赖关系,可能会安装新的软件包或删除不再需要的旧软件包,以确保系统平稳过渡到新版本。这对于 PVE 这种依赖关系复杂的系统尤为重要。 ```bash root@xiaoten:~# apt dist-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done # ... (省略了将要升级的软件包列表) ... The following NEW packages will be installed: proxmox-kernel-6.8.13-1-pve-signed The following packages will be upgraded: libnvpair3linux libuutil3linux libzfs4linux libzpool5linux proxmox-kernel-6.8 proxmox-kernel-helper pve-firmware pve-kernel-6.8.12-10-pve pve-manager zfsutils-linux 10 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 177 MB of archives. After this operation, 167 MB of additional disk space will be used. Do you want to continue? [Y/n] Y ``` 在提示符后输入 `Y` 并回车,系统就开始下载并安装更新了。这个过程可能需要一些时间,具体取决于你的网络速度和需要更新的软件包数量。耐心等待命令执行完毕。 ```bash # ... (省略了大量的下载和安装日志) ... Setting up proxmox-kernel-6.8.13-1-pve-signed (6.8.13-1) ... Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve run-parts: executing /etc/kernel/postinst.d/proxmox-auto-removal 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve run-parts: executing /etc/kernel/postinst.d/initramfs-tools 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve update-initramfs: Generating /boot/initrd.img-6.8.13-1-pve # ... (更多日志) ... root@xiaoten:~# ``` 看到命令提示符再次出现,表示升级过程已经顺利完成。 ### 4. 升级后的检查与重启 升级完成后,有几个重要的后续步骤: #### a. 重启 PVE 主机 由于通常 PVE 的升级会包含内核或其他核心组件的更新,为了使新的内核和系统服务生效,**重启是必要的**。 可以通过 Web UI 操作重启,或者在命令行执行: ```bash root@xiaoten:~# reboot ``` #### b. 再次检查 PVE 版本 等待主机重启完成后,再次 SSH 登录,并运行 `pveversion -v` 来确认升级后的版本: ```bash root@xiaoten:~# pveversion -v pve-manager/8.4.2/824929f2f4310072 (running kernel: 6.8.13-1-pve) # ... 其他组件版本也会相应更新 ... root@xiaoten:~# ``` 可以看到,PVE Manager 版本已经升级,并且运行的内核也变成了新的版本。 #### c. 检查虚拟机/容器状态 最后,通过 PVE 的 Web UI 检查所有的虚拟机(VM)和容器(LXC)是否都正常运行。这是一个好习惯,确保升级没有对现有服务造成意外影响。 ### 总结与建议 至此,一次简单的 PVE 系统小版本升级就顺利完成了。整个过程非常流畅,没有遇到任何意外。 **一些小建议:** 1. **定期检查更新**:养成定期检查 PVE 更新的习惯,可以使用 `apt update` 和 `apt list --upgradable`。 2. **使用 `dist-upgrade`**:对于 PVE 系统,总是使用 `apt dist-upgrade` 进行升级。 3. **注意内核更新**:如果升级了内核,务必重启 PVE 主机以加载新内核。 4. **重要环境请先备份**:虽然小版本升级通常很安全,但对于生产环境或存有重要数据的 PVE,建议在升级前对虚拟机进行快照或备份,以防万一。 5. **关注官方论坛/邮件列表**:在进行大版本升级前,可以关注 Proxmox 官方论坛或邮件列表,了解是否有已知的升级问题。 保持 PVE 系统的更新不仅能获得最新的功能和性能优化,更重要的是能及时修复潜在的安全漏洞,保障虚拟化环境的稳定和安全。 Loading... 今天分享下我的 Proxmox VE (PVE) 系统小版本升级过程。我的 N150 小主机自从 5 月 8 日安装了 PVE 8.4.1 版本后,一直稳定运行,默默奉献。不知不觉已经过去一段时间,本着“尝鲜”和“保持系统健康”的原则,今天决定检查一下是否有可用的更新,并进行一次系统升级。 ### 1. 检查当前 PVE 版本 首先,自然是 SSH 登录到 PVE 主机,查看一下当前的系统版本。通过 `pveversion -v` 命令(或者直接 `pveversion` 也能看到主要版本),我得到了以下信息: ```bash root@xiaoten:~# pveversion -v pve-manager/8.4.1/2a5fa54a8503f96d (running kernel: 6.8.12-10-pve) proxmox-kernel-6.8.12-10-pve: 6.8.12-10 proxmox-kernel-6.8: 6.8.12-10 proxmox-kernel-6.5: 6.5.13-5 proxmox-kernel-6.5.13-5-pve-signed: 6.5.13-5 ceph-fuse: 17.2.7-pve3 corosync: 3.1.7-pve3 criu: 3.17.1-2 glusterfs-client: 10.3-5 ifupdown2: 3.2.0-1+pmx8 ksm-control-daemon: 1.4-1 libjs-extjs: 7.0.0-4 libknet1: 1.28-pve1 libproxmox-acme-perl: 1.5.0 libproxmox-backup-qemu0: 1.4.1 libproxmox-rs-perl: 0.3.3 libpve-access-control: 8.1.3 libpve-apiclient-perl: 3.3.1 libpve-common-perl: 8.2.1 libpve-guest-common-perl: 5.1.1 libpve-http-server-perl: 5.1.0 libpve-network-perl: 0.9.9 libpve-rs-perl: 0.8.8 libpve-storage-perl: 8.2.1 libpve-user-cfg0: 1.0-1 libspice-server1: 0.15.1-1 lvm2: 2.03.16-2 lxc-pve: 5.0.2-4 lxcfs: 5.0.3-pve4 novnc-pve: 1.4.0-3 proxmox-backup-client: 3.2.2-1 proxmox-backup-file-restore: 3.2.2-1 proxmox-kernel-helper: 8.1.0 proxmox-mail-forward: 0.2.3 proxmox-mini-journalreader: 1.4.0 proxmox-offline-mirror-helper: 0.6.6 proxmox-widget-toolkit: 4.2.1 pve-cluster: 8.0.5 pve-container: 5.1.1 pve-docs: 8.2.2 pve-edk2-firmware: 4.2023.08-4 pve-firewall: 5.0.3 pve-firmware: 3.10-1 pve-ha-manager: 4.0.3 pve-i18n: 3.2.1 pve-qemu-kvm: 8.1.5-6 pve-xtermjs: 5.3.0-3 qemu-server: 8.2.1 smartmontools: 7.3-pve1 spiceterm: 3.3.0 swtpm: 0.8.0+pve1 vncterm: 1.8.0 zfsutils-linux: 2.2.4-pve1 root@xiaoten:~# ``` 可以看到,当前 PVE Manager 版本为 `8.4.1`,运行的内核是 `6.8.12-10-pve`。确认无误,准备开始更新。 ### 2. 检查可更新的软件包 确认了当前版本后,接下来就是标准的 Debian/Ubuntu 更新流程了: #### a. 更新软件包列表 首先,执行 `apt update` 命令,从配置的软件源中获取最新的软件包信息: ```bash root@xiaoten:~# apt update Hit:1 http://ftp.debian.org/debian bookworm InRelease Hit:2 http://ftp.debian.org/debian bookworm-updates InRelease Hit:3 http://security.debian.org/debian-security bookworm-security InRelease Hit:4 http://download.proxmox.com/debian/pve bookworm InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 10 packages can be upgraded. Run 'apt list --upgradable' to see them. root@xiaoten:~# ``` 提示有 10 个软件包可以升级,这给了我继续下去的动力! #### b. 查看可升级的软件包 (可选但推荐) 为了更清楚地了解哪些包会被升级,我执行了 `apt list --upgradable` 命令: ```bash root@xiaoten:~# apt list --upgradable Listing... Done # 这里会列出所有可升级的软件包及其版本信息 # 例如(具体内容会根据你的系统有所不同): # pve-kernel-6.8/pve-no-subscription ... # pve-manager/pve-no-subscription ... # ... 其他依赖包 ``` 这一步可以让你对即将进行的升级有个大概的了解。如果看到有重要的核心组件(如内核、PVE Manager 本身)更新,就需要更加小心,并确保做好备份(如果环境重要的话)。 ### 3. 执行升级操作 看到有不少软件包可以更新,那就开始执行升级吧!对于 PVE 这样的系统,**强烈推荐使用 `apt dist-upgrade`** 而不是 `apt upgrade`。 * `apt upgrade`:只会升级已安装的软件包,但如果升级需要卸载其他包,它就不会执行。 * `apt dist-upgrade`:除了升级软件包外,还会智能地处理依赖关系,可能会安装新的软件包或删除不再需要的旧软件包,以确保系统平稳过渡到新版本。这对于 PVE 这种依赖关系复杂的系统尤为重要。 ```bash root@xiaoten:~# apt dist-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done # ... (省略了将要升级的软件包列表) ... The following NEW packages will be installed: proxmox-kernel-6.8.13-1-pve-signed The following packages will be upgraded: libnvpair3linux libuutil3linux libzfs4linux libzpool5linux proxmox-kernel-6.8 proxmox-kernel-helper pve-firmware pve-kernel-6.8.12-10-pve pve-manager zfsutils-linux 10 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 177 MB of archives. After this operation, 167 MB of additional disk space will be used. Do you want to continue? [Y/n] Y ``` 在提示符后输入 `Y` 并回车,系统就开始下载并安装更新了。这个过程可能需要一些时间,具体取决于你的网络速度和需要更新的软件包数量。耐心等待命令执行完毕。 ```bash # ... (省略了大量的下载和安装日志) ... Setting up proxmox-kernel-6.8.13-1-pve-signed (6.8.13-1) ... Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve run-parts: executing /etc/kernel/postinst.d/proxmox-auto-removal 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve run-parts: executing /etc/kernel/postinst.d/initramfs-tools 6.8.13-1-pve /boot/vmlinuz-6.8.13-1-pve update-initramfs: Generating /boot/initrd.img-6.8.13-1-pve # ... (更多日志) ... root@xiaoten:~# ``` 看到命令提示符再次出现,表示升级过程已经顺利完成。 ### 4. 升级后的检查与重启 升级完成后,有几个重要的后续步骤: #### a. 重启 PVE 主机 由于通常 PVE 的升级会包含内核或其他核心组件的更新,为了使新的内核和系统服务生效,**重启是必要的**。 可以通过 Web UI 操作重启,或者在命令行执行: ```bash root@xiaoten:~# reboot ``` #### b. 再次检查 PVE 版本 等待主机重启完成后,再次 SSH 登录,并运行 `pveversion -v` 来确认升级后的版本: ```bash root@xiaoten:~# pveversion -v pve-manager/8.4.2/824929f2f4310072 (running kernel: 6.8.13-1-pve) # ... 其他组件版本也会相应更新 ... root@xiaoten:~# ``` 可以看到,PVE Manager 版本已经升级,并且运行的内核也变成了新的版本。 #### c. 检查虚拟机/容器状态 最后,通过 PVE 的 Web UI 检查所有的虚拟机(VM)和容器(LXC)是否都正常运行。这是一个好习惯,确保升级没有对现有服务造成意外影响。 ### 总结与建议 至此,一次简单的 PVE 系统小版本升级就顺利完成了。整个过程非常流畅,没有遇到任何意外。 **一些小建议:** 1. **定期检查更新**:养成定期检查 PVE 更新的习惯,可以使用 `apt update` 和 `apt list --upgradable`。 2. **使用 `dist-upgrade`**:对于 PVE 系统,总是使用 `apt dist-upgrade` 进行升级。 3. **注意内核更新**:如果升级了内核,务必重启 PVE 主机以加载新内核。 4. **重要环境请先备份**:虽然小版本升级通常很安全,但对于生产环境或存有重要数据的 PVE,建议在升级前对虚拟机进行快照或备份,以防万一。 5. **关注官方论坛/邮件列表**:在进行大版本升级前,可以关注 Proxmox 官方论坛或邮件列表,了解是否有已知的升级问题。 保持 PVE 系统的更新不仅能获得最新的功能和性能优化,更重要的是能及时修复潜在的安全漏洞,保障虚拟化环境的稳定和安全。 © 允许规范转载 赞 2 如果觉得我的文章对你有用,请随意赞赏