从命令行创建 Windows KVM VM

本文详细介绍了如何在Ubuntu系统上安装KVM、libvirt及相关工具,包括设置网桥和使用virt-install创建虚拟机。内容涵盖了从安装软件包到添加用户到相关组,再到验证安装和配置网络接口。此外,还提供了创建Linux和Windows虚拟机的步骤,特别强调了Windows虚拟机中安装VirtIO驱动的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 KVM

安装软件包

apt-get install -y qemu-kvm libvirt-bin bridge-utils

来自ubuntu.com 的包装说明:

  • libvirt-bin 提供了 libvirtd,您需要使用 libvirt 管理 qemu 和 kvm 实例
  • qemu-kvm(Karmic 及更早版本中的 kvm)是后端
  • ubuntu-vm-builder 强大的命令行工具,用于构建虚拟机
  • bridge-utils 提供了从您的网络到虚拟机的桥梁

将用户添加到组

adduser `id -un` libvirt
adduser `id -un` kvm

验证安装

virsh list --all


联网

配置网桥

您的网络接口应该立即使用 NetPlan 进行配置。由于安装了bridge-utils,您可以使用NetPlan 来完成剩下的工作。

在执行此操作之前,最好仔细检查您的 IPMI/IDRAC/ILO 是否正常工作。

# Example netplan config defining bridge
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
    eno2:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eno2]
      addresses: ["10.1.0.14/24"]
      gateway4: 10.1.0.1
      mtu: 1500
      nameservers:
        addresses: ["10.1.0.154"]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no


使用 virt-install 定义 VM

安装 virt-install - 它有点大,大约 160MB

apt-get install -y virtinst

可选 - 列出操作系统变量选项

apt-get install -y libosinfo-bin

osinfo-query os

创建虚拟机

  • --disk bus=: 'ide', 'scsi', 'usb', 'virtio' or 'xen'.

从现有的 qcow2 映像启动

virt-install \
  --name MyImportedVM \
  --description "Imported virtual machine" \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \  
  --os-type=linux \
  --memory 8192 \
  --vcpus=4 \
  --disk path=/var/lib/libvirt/images/importedVM.qcow2,bus=virtio\
  --boot hd \
  --network bridge:br0,model=virtio

构建新的 Windows 虚拟机

Windows 在 KVM 上可能很困难,因为它不附带 Virtio 驱动程序。使用非 virtio 磁盘和网络仿真比较慢。事情变得更难了,因为virt-install 不允许您使用 --cdrom 两次。要一次挂载两个 iso 文件(以便可以安装 virtio 驱动程序),请使用 --disk 参数和 device=cdrom。还要确保使用 bus=ide 以便 Windows 在安装 virtio 驱动程序之前可以读取它。

可以在此处下载 virtio 驱动程序

virt-install \
  --name Server2019 \
  --description "Windows Server 2019 Template" \
  --os-type=windows \
  --memory 8192 \
  --vcpus=4 \
  --disk path=/var/lib/libvirt/images/windows2019.qcow2,bus=virtio,size=30 \
  --disk /var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso,device=cdrom,bus=ide \
  --disk /var/lib/libvirt/isos/virtio-win.iso,device=cdrom,bus=ide \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \
  --network bridge=br0,model=virtio

  • 通过 VNC 查看器安装操作系统时,不会显示任何驱动器。
  • 单击“加载驱动程序”按钮,然后浏览到已安装的 virtio iso。
  • 展开viostor文件夹并选择您的操作系统。单击amd64子目录。单击确定。
  • RedHat VirtIO SCSI Controller 应该会出现,点击 Next
  • 完成安装

安装完成后,服务器将关闭。

使用virsh edit删除磁盘编辑服务器:

virsh edit Server2019

选择您选择的编辑器(显然是 vim),然后移除引导cdrom盘。离开 virtio 一个,你仍然需要它。它看起来像这样:

    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

使用virsh start以下方法重新打开它:

virsh start Server2019

修复其他驱动

现在已安装存储驱动程序,但网络驱动程序不存在。由于 VM 是通过 启动的--network bridge=br0,model=virtio,因此需要 VirtIO 驱动程序。不使用 virtio 网卡会导致一些非常糟糕的性能。

登录服务器并打开设备管理器。导航到“其他设备”。右键单击标记为网络驱动程序的问题并更新驱动程序。选择您的 virtio 磁盘并允许搜索子目录,它应该会找到驱动程序并为您安装。

对未识别的 PCI 设备执行相同操作,这将安装 VirtIO Baloon 驱动程序。

服务器现在可以使用了,或者可以制作成模板。如果您打算稍后将此服务器与 OpenStack 一起使用,请考虑从cloudbase-init安装 cloud -init

### 创建 Windows 虚拟机的 KVM 命令 为了通过命令行创建一个运行 Windows 的虚拟机,可以使用 `qemu-kvm` 和其他辅助工具来完成这一过程。下面是一个详细的指南: #### 准备工作 确保主机支持硬件虚拟化技术并已启用此功能[^2]。 安装必要的软件包: ```bash sudo apt-get update && sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst ``` 启动并设置 Libvirt 服务自动开机自启: ```bash sudo systemctl start libvirtd sudo systemctl enable libvirtd ``` #### 下载 ISO 镜像文件 获取官方发布的 Windows 安装镜像(ISO 文件),将其放置在一个容易访问的位置,比如 `/var/lib/libvirt/images/`. #### 使用 Virt-Install 工具部署新 VM 实例 这里提供了一个典型的例子,用于定义一个新的基于 Windows 的客户操作系统实例: ```bash sudo virt-install \ --name win10 \ --memory 4096 \ --vcpus=2 \ --os-type=windows \ --os-variant=win10 \ --cdrom=/path/to/windows.iso \ --disk path=/var/lib/libvirt/images/win10.qcow2,size=50,bus=virtio,format=qcow2 \ --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --video qxl \ --noautoconsole ``` 上述命令会创建名为 "win10" 的虚拟机,分配给它 4 GB RAM 及两个 CPU 核心;指定 ISO 映像作为引导介质,并配置一块大小为 50G 的动态扩展磁盘;网络接口采用默认 NAT 方式的桥接模式连接到外部互联网;图形界面则监听所有 IP 地址上的 VNC 连接请求以便远程管理控制台接入[^1]。 #### 启动与管理新建的 Windows VM 一旦成功创建好新的 Windows 虚拟机之后就可以利用 virsh 或者其他的管理工具对其进行进一步的操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值