当前位置:首页 > Linux > 正文

Linux KVM虚拟机快速安装指南

在Linux上安装KVM虚拟机需三步:1. 验证CPU支持虚拟化( egrep -c '(vmx|svm)' /proc/cpuinfo),2. 安装核心软件包: sudo apt install qemu-kvm libvirt-daemon-system virtinst bridge-utils,3. 启动并启用libvirtd服务: sudo systemctl start libvirtd && sudo systemctl enable libvirtd,最后使用 virt-manager图形工具创建虚拟机。

在Linux系统上安装KVM虚拟机的完整指南

KVM(Kernel-based Virtual Machine)是Linux内核内置的全虚拟化解决方案,允许在物理主机上运行多个隔离的虚拟机,它性能高效、兼容性强,且完全开源,以下是详细的安装和配置步骤:


安装前的准备工作

  1. 检查CPU虚拟化支持
    运行命令验证CPU是否支持硬件虚拟化(输出结果需包含vmx(Intel)或svm(AMD)):

    egrep -c '(vmx|svm)' /proc/cpuinfo  # 返回值≥1表示支持

    或使用:

    lscpu | grep Virtualization
  2. 确认系统架构
    KVM仅支持64位主机:

    uname -m  # 需输出 x86_64
  3. 更新系统
    确保系统为最新状态:

    sudo apt update && sudo apt upgrade -y      # Ubuntu/Debian
    sudo dnf update -y                          # Fedora/CentOS/RHEL

安装KVM及相关组件

根据发行版选择命令:

  • Ubuntu/Debian:

    sudo apt install -y qemu-kvm libvirt-daemon-system virtinst bridge-utils virt-manager
  • Fedora/CentOS/RHEL:

    Linux KVM虚拟机快速安装指南  第1张

    sudo dnf install -y qemu-kvm libvirt virt-install virt-viewer virt-manager
  • Arch Linux:

    sudo pacman -S qemu virt-manager virt-viewer ebtables dnsmasq

启动服务并配置权限

  1. 启动Libvirt服务

    sudo systemctl enable --now libvirtd
  2. 将用户加入kvm和libvirt组

    sudo usermod -aG kvm,libvirt $(whoami)
    newgrp libvirt  # 立即生效组权限
  3. 验证安装

    virsh list --all       # 查看虚拟机列表(无报错即成功)
    kvm-ok                 # 检查KVM可用性(Ubuntu需安装cpu-checker)

创建虚拟机(两种方法)

方法1:使用图形界面(推荐新手)

  1. 打开虚拟系统管理器:
    virt-manager
  2. 点击”创建新虚拟机”,按向导选择ISO镜像、分配CPU/内存、设置磁盘大小(默认20GB)。

方法2:命令行创建(高效批量部署)

sudo virt-install 
  --name Ubuntu-Server 
  --ram 2048 
  --vcpus 2 
  --disk path=/var/lib/libvirt/images/ubuntu.qcow2,size=20 
  --os-variant ubuntu22.04 
  --network bridge=virbr0 
  --graphics spice 
  --console pty,target_type=serial 
  --cdrom /path/to/ubuntu-22.04.iso

网络配置(关键步骤)

默认NAT网络
虚拟机可通过主机上网,但外部无法直接访问虚拟机。

配置桥接网络(使虚拟机获得独立IP)

  1. 创建网桥br0

    sudo nmcli con add ifname br0 type bridge con-name br0
    sudo nmcli con add type bridge-slave ifname eth0 master br0  # eth0替换为实际网卡名
    sudo nmcli con up br0
  2. virt-manager中编辑虚拟机设置:

    • 选择网络源: Bridge br0
    • 设备模型: virtio

存储池管理

  1. 查看默认存储池

    virsh pool-list
  2. 添加新存储池(例如添加/data目录)

    sudo virsh pool-define-as data dir - - - - "/data"
    sudo virsh pool-build data
    sudo virsh pool-start data
    sudo virsh pool-autostart data

虚拟机日常管理命令

功能 命令示例
启动虚拟机 virsh start vm-name
关闭虚拟机 virsh shutdown vm-name
强制停止 virsh destroy vm-name
删除虚拟机 virsh undefine vm-name
查看配置 virsh dumpxml vm-name
控制台连接 virsh console vm-name

常见问题解决

  • 错误: “权限被拒绝”
    运行sudo setenforce 0临时禁用SELinux,或调整策略规则。

  • 虚拟机无法上网
    检查防火墙规则:

    sudo firewall-cmd --add-service=dhcp --permanent  # Fedora/CentOS
    sudo ufw allow out on virbr0                      # Ubuntu
  • 性能优化建议

    • 启用CPU模式host-passthrough:在虚拟机XML中添加:
      <cpu mode='host-passthrough'/>
    • 使用virtio磁盘驱动提升I/O性能。

KVM是Linux平台高效稳定的虚拟化方案,通过本指南您已完成从安装到创建虚拟机的全过程,结合virt-manager图形工具和命令行管理,可灵活应对开发测试、生产部署等场景,定期备份虚拟机配置文件(位于/etc/libvirt/qemu/)可防止意外丢失。

引用说明: 参考Linux内核官方文档(kernel.org)、Libvirt项目文档(libvirt.org)及QEMU社区最佳实践,配置命令已通过Ubuntu 22.04 LTS、CentOS 9和Fedora 38验证。

0