在 Proxmox VE (PVE) 中,虚拟机(VM)和容器(LXC)的“自启动”状态分别由 qm 和 pct 命令管理。
如果你想一次性将所有已有的虚拟机和容器都设置为不随系统启动,可以在 PVE 的 Shell(终端)中分别执行以下两条循环命令:
1. 处理所有虚拟机 (VM)
此命令会遍历所有虚拟机并将 onboot 参数设为 0(禁用)。
Bash
for vmid in $(qm list | awk 'NR>1 {print $1}'); do qm set $vmid --onboot 0; done2. 处理所有容器 (LXC)
此命令会遍历所有容器并将 onboot 参数设为 0(禁用)。
Bash
for vmid in $(pct list | awk 'NR>1 {print $1}'); do pct set $vmid --onboot 0; done合并为一条命令
如果你想一键搞定,可以直接复制下面这一整行:
Bash
for vmid in $(qm list | awk 'NR>1 {print $1}'); do qm set $vmid --onboot 0; done; for vmid in $(pct list | awk 'NR>1 {print $1}'); do pct set $vmid --onboot 0; done命令解析:
qm list/pct list: 列出当前所有的虚拟机或容器。awk 'NR>1 {print $1}': 过滤掉表头,只提取第一列(即 ID 号)。for vmid in ...; do ...; done: 标准的 Bash 循环,对每个 ID 执行操作。--onboot 0: 将自启动选项关闭。如果以后想开启,把0改成1即可。
如何验证?
执行完后,你可以查看各节点的配置,确认 onboot 这一行是否消失或变为 0:
- VM:
grep "onboot" /etc/pve/qemu-server/*.conf - LXC:
grep "onboot" /etc/pve/lxc/*.conf
提示:该操作是即时生效的,不需要重启 PVE 宿主机。下次宿主机重启时,这些节点将保持关机状态,除非你手动启动它们。