PVE虚拟机

二、命令参数
qm [COMMAND] [OPTIONS] [VMID]
1
COMMAND:你要执行的操作,比如 start、stop、create 等。
OPTIONS:与操作相关的选项,控制执行行为。
VMID:虚拟机的 ID,用来标识具体的虚拟机。
常用的 qm 命令和参数
创建虚拟机 (create):

qm create VMID --name NAME --memory MEMORY --net0 NETWORK --sata0 STORAGE
1
VMID:虚拟机的 ID。
--name:虚拟机名称。
--memory:分配的内存 (MB)。
--net0:网络接口配置(比如 virtio,bridge=vmbr0)。
--sata0:存储设备配置 (例如 local-lvm:vm-VMID-disk-1)。
启动虚拟机 (start):

qm start VMID
1
VMID:要启动的虚拟机 ID。
停止虚拟机 (stop):

qm stop VMID
1
VMID:要停止的虚拟机 ID。
重启虚拟机 (reset):

qm reset VMID
1
VMID:要重启的虚拟机 ID。
删除虚拟机 (destroy):

qm destroy VMID
1
VMID:要删除的虚拟机 ID。
克隆虚拟机 (clone):

qm clone VMID NEWID --name NEWNAME --full
1
VMID:要克隆的虚拟机 ID。
NEWID:新虚拟机的 ID。
--name:新虚拟机的名称。
--full:指定是否进行完整克隆。
查看虚拟机状态 (status):

qm status VMID
1
VMID:要查看状态的虚拟机 ID。
导出虚拟机配置 (config):

qm config VMID
1
VMID:要导出的虚拟机 ID。


三、命令示例
3.1 创建虚拟机
创建一个 虚拟机:

ID 为 111
名称为 ubuntu-vm
CPU 2 核心
内存 2 GB
网络 net0 通过 vmbr0 桥接
硬盘类型 scsihw,使用驱动 virtio-scsi-pci
qm create 111 --name ubuntu-vm --cores 2 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci
1
创建硬盘 scsi0,从存储池 mydata 划分空间,将系统镜像导入 scsi0

qm set 111 --scsi0 mydata:0,import-from=/mnt/pve/mydata/template/iso/jammy-server-cloudimg-amd64.img
1
设置硬盘容量 20G

qm resize 111 scsi0 20G
1
设置 boot 第一启动顺序为硬盘 scsi0

qm set 111 --boot order=scsi0
1
添加屏幕串行输出(便于从 PVE 终端进入虚拟机终端)

qm set 111 --serial0 socket --vga serial0
1
查看当前配置

qm config 111
1
3.2 配置虚拟机
3.2.1 硬件规格
要修改、配置虚拟机的硬件规格,可以使用 qm set 命令:

qm set <vmid> <options>
1
例如,重新分配内存的大小(只能增加)

qm resize 111 scsi0 22G
1
或者添加虚拟机新的硬盘:

qm set 111 --scsi1 mydata:10
1
3.2.2 系统初始化
想要修改虚拟机系统,比如用户名、密码,必须用到 qm set +cloud-init:

添加 cloud-init

qm set 111 --ide2 mydata:cloudinit
1
现在 qm set 可以初始化系统配置

设置主机名
qm set 111 --name ubuntu-vm

将PVE公钥添加到虚拟机
qm set 111 --sshkey ~/.ssh/id_rsa.pub

设置静态网络
qm set 111 --ipconfig0 ip=192.168.10.123/24,gw=192.168.10.1

设置动态ip(DHCP)
qm set 111 --ipconfig0 ip=dhcp

设置用户名、密码
qm set 111 --ciuser 用户名 --cipassword 密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
根据需求添加配置。设置网络时,动、静仅需二选一。动态网络请照抄,静态网络请修改ip地址为你的信息。

3.4 启动虚拟机
qm start <vmid>
1
例如,启动 VM ID 为 111 的虚拟机:

qm start 111
1
3.5 列出所有虚拟机
qm list
1
你可以看到刚才启动的虚拟机正在运行

VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 ubuntu running 1024 32.00 1051
...
111 ubuntu-vm running 2048 22.00 2150640
1
2
3
4
3.6 从 PVE 终端进入虚拟机终端
qm terminal <vmid>
1
例如进入 VM ID 为 111 的虚拟机终端

qm terminal 111
1
使用这个命令就不需要从 PVE 的管理网页进入终端,这也是创建虚拟机时为什么添加 屏幕串行输出。

退出虚拟机终端,只用快捷键:ctl+o

3.7 重启虚拟机
qm reboot <vmid>
1
例如,重启 VM ID 为 111 的虚拟机:

qm reboot 100
1
3.8 停止虚拟机
qm stop <vmid>
1
例如,停止 VM ID 为 111 的虚拟机:

qm stop 111
1
3.9 查看虚拟机配置信息
qm config <vmid>
1
例如,显示 VM ID 为 111 的虚拟机配置:

qm config 111
1
3.10 克隆虚拟机
qm clone <vmid> <newid> --name <name>
1
例如,将 VM ID 为 111 的虚拟机克隆为新的 VM ID 为 112 的虚拟机:

qm clone 111 112 --name newvm
1
3.11 迁移虚拟机
qm migrate <vmid> <target_node>
1
例如,将 VM ID 为 111 的虚拟机迁移到节点 pve2:

qm migrate 111 pve2
1
3.12 备份虚拟机
vzdump <vmid> --storage <storage_id> --mode <mode>
1
例如,将 VM ID 为 111 的虚拟机备份到 local 存储中:

vzdump 111 --storage local --mode snapshot
1
3.13 恢复虚拟机
qmrestore <backup_file> <vmid>
1
例如,将备份文件恢复为 VM ID 为 111 的虚拟机:

qmrestore /var/lib/vz/dump/vzdump-qemu-100-2023_06_01-00_00_00.vma.lzo 111
1
备份位置根据不同的存储,有所不同。

3.14 删除虚拟机
qm destroy <vmid>
1
例如,删除 VM ID 为 111 的虚拟机:

qm destroy 111
1

qm importdisk 105 /var/lib/vz/template/iso/openwrt-x86-64-generic-squashfs-combined-efi.img local