菜鸟科技网

Ubuntu KVM命令有哪些常用操作?

在Ubuntu系统中,KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它利用Linux内核的虚拟化功能来创建和管理虚拟机,通过命令行工具,用户可以高效地完成虚拟机的安装、配置和管理,以下是关于Ubuntu中使用KVM命令的详细说明,包括环境准备、虚拟机管理、网络配置、快照操作等核心内容。

Ubuntu KVM命令有哪些常用操作?-图1
(图片来源网络,侵删)

环境准备与安装

在开始使用KVM之前,需要确保系统支持虚拟化并安装必要的软件包,首先检查CPU是否支持虚拟化扩展(Intel VT-x或AMD-V),执行命令egrep -c '(vmx|svm)' /proc/cpuinfo,若返回值大于0则支持,然后安装KVM及相关工具:

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

安装完成后,将当前用户添加到libvirt和kvm用户组以避免权限问题:

sudo usermod -aG libvirt,kvm $USER
newgrp libvirt

最后启动libvirtd服务并设置开机自启:

sudo systemctl enable --now libvirtd

虚拟机管理命令

创建虚拟机

使用virt-install命令可以快速创建虚拟机,以下是一个创建Ubuntu虚拟机的示例:

Ubuntu KVM命令有哪些常用操作?-图2
(图片来源网络,侵删)
sudo virt-install \
  --name ubuntu-vm \
  --ram 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
  --cdrom /path/to/ubuntu-22.04.3-live-server-amd64.iso \
  --network bridge=virbr0 \
  --graphics spice

参数说明:

  • --name:虚拟机名称
  • --ram:分配内存(MB)
  • --vcpus:虚拟CPU核心数
  • --disk:磁盘路径和大小(GB)
  • --cdrom:安装镜像路径
  • --network:网络模式(默认为NAT)
  • --graphics:显示协议(spice/vnc/none)

启动、关闭与重启虚拟机

# 启动虚拟机
sudo virsh start ubuntu-vm
# 关闭虚拟机(优雅关机)
sudo virsh shutdown ubuntu-vm
# 强制关闭
sudo virsh destroy ubuntu-vm
# 重启虚拟机
sudo virsh reboot ubuntu-vm
# 查看虚拟机状态
sudo virsh list --all

虚拟机控制台连接

# 图形化控制台
sudo virt-viewer ubuntu-vm
# 命令行控制台(需安装libguestfs-tools)
sudo virsh console ubuntu-vm

磁盘与存储管理

创建磁盘镜像

# 创建qcow2格式磁盘(动态分配)
qemu-img create -f qcow2 /var/lib/libvirt/images/disk-vm.qcow2 10G
# 创建raw格式磁盘(固定大小)
qemu-img create -f raw /var/lib/libvirt/images/disk-vm.raw 10G

扩展磁盘容量

# 扩展qcow2磁盘至20GB
qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G
# 在虚拟机内部扩展分区(以ext4为例)
sudo growpart /dev/vda 1
sudo resize2fs /dev/vda1

网络配置

KVM默认使用NAT网络模式,也可配置桥接模式实现与主机同一网段通信,以下是桥接网络配置步骤:

  1. 安装bridge-utils:

    sudo apt install bridge-utils
  2. 创建桥接接口:

    Ubuntu KVM命令有哪些常用操作?-图3
    (图片来源网络,侵删)
    sudo nm-connection-editor

    在图形界面中添加新桥接,将物理网卡(如ens33)桥接到virbr0。

  3. 验证桥接状态:

    brctl show

快照与克隆

创建快照

sudo virsh snapshot-create-as ubuntu-vm pre-install --description "Before software installation"

列出快照

sudo virsh snapshot-list ubuntu-vm

恢复快照

sudo virsh snapshot-revert ubuntu-vm pre-install

克隆虚拟机

sudo virt-clone --original ubuntu-vm --name ubuntu-vm-clone --file /var/lib/libvirt/images/ubuntu-vm-clone.qcow2

性能监控

查看虚拟机资源占用

# CPU使用率
sudo virsh cpu-stats ubuntu-vm
# 内存使用情况
sudo virsh memstat ubuntu-vm
# 磁盘I/O
sudo iostat -x /dev/vda

使用top监控虚拟机进程

top -p $(pgrep -f qemu-system)

常见故障排除

  1. 虚拟机无法启动:检查磁盘路径是否正确,使用sudo virsh edit ubuntu-vm修改XML配置。
  2. 网络不通:确认NAT或桥接配置,检查防火墙规则(如ufw)。
  3. 性能问题:调整CPU亲和性或内存参数,启用KVM加速。

相关命令速查表

功能 命令示例
列出虚拟机 sudo virsh list --all
编辑虚拟机配置 sudo virsh edit ubuntu-vm
删除虚拟机 sudo virsh undefine ubuntu-vm
挂载ISO镜像 sudo virsh attach-disk ubuntu-vm /path/to.iso hda --type cdrom --mode readonly
卸载磁盘 sudo virsh detach-disk ubuntu-vm hda

相关问答FAQs

Q1: 如何解决KVM虚拟机黑屏无法显示的问题?
A1: 首先检查虚拟机配置中的<graphics>标签是否正确设置(如spice/vnc),尝试使用sudo virt-viewer ubuntu-vm重新连接,若仍无法显示,可尝试关闭图形模式并使用命令行控制台:sudo virsh edit ubuntu-vm,将<graphics type='spice'/>改为<graphics type='none'/>,然后通过sudo virsh console ubuntu-vm访问。

Q2: 如何在KVM虚拟机与主机之间实现文件传输?
A2: 可通过以下方式实现:

  1. 共享文件夹:安装qemu-guest-agent后,在主机端使用sudo virsh attach-disk ubuntu-vm /path/to/host/dir vdb --type block --mode readonly挂载目录。
  2. SCP/SSH:在虚拟机中安装SSH服务,通过scp命令传输文件。
  3. virtio-win驱动:对于Windows虚拟机,安装virtio-win驱动后,通过virtio磁盘实现高效文件共享。
分享:
扫描分享到社交APP
上一篇
下一篇