从命令行创建 Windows KVM VM

男娘i 2023-10-01 10:55 155阅读 0赞

安装 KVM

安装软件包

  1. 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 提供了从您的网络到虚拟机的桥梁

将用户添加到组

  1. adduser `id -un` libvirt
  2. adduser `id -un` kvm

验证安装

  1. virsh list --all

联网

配置网桥

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

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

  1. # Example netplan config defining bridge
  2. network:
  3. version: 2
  4. renderer: networkd
  5. ethernets:
  6. eno1:
  7. dhcp4: no
  8. eno2:
  9. dhcp4: no
  10. bridges:
  11. br0:
  12. interfaces: [eno2]
  13. addresses: ["10.1.0.14/24"]
  14. gateway4: 10.1.0.1
  15. mtu: 1500
  16. nameservers:
  17. addresses: ["10.1.0.154"]
  18. parameters:
  19. stp: true
  20. forward-delay: 4
  21. dhcp4: no
  22. dhcp6: no

使用 virt-install 定义 VM

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

  1. apt-get install -y virtinst

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

  1. apt-get install -y libosinfo-bin
  2. osinfo-query os

创建虚拟机

  • —disk bus=: ‘ide’, ‘scsi’, ‘usb’, ‘virtio’ or ‘xen’.

从现有的 qcow2 映像启动

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

构建新的 Windows 虚拟机

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

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

  1. virt-install \
  2. --name Server2019 \
  3. --description "Windows Server 2019 Template" \
  4. --os-type=windows \
  5. --memory 8192 \
  6. --vcpus=4 \
  7. --disk path=/var/lib/libvirt/images/windows2019.qcow2,bus=virtio,size=30 \
  8. --disk /var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso,device=cdrom,bus=ide \
  9. --disk /var/lib/libvirt/isos/virtio-win.iso,device=cdrom,bus=ide \
  10. --graphics vnc,listen=0.0.0.0 \
  11. --noautoconsole \
  12. --network bridge=br0,model=virtio
  • 通过 VNC 查看器安装操作系统时,不会显示任何驱动器。
  • 单击“加载驱动程序”按钮,然后浏览到已安装的 virtio iso。
  • 展开viostor文件夹并选择您的操作系统。单击amd64子目录。单击确定。
  • RedHat VirtIO SCSI Controller 应该会出现,点击 Next
  • 完成安装

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

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

  1. virsh edit Server2019

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

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

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

  1. virsh start Server2019

修复其他驱动

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读