Windows 虚拟机配置与驱动安装记录

问题概述:

  • 问题:Windows 虚拟机未能通过 DHCP 获取 IP 地址,网络无法连接。
  • 环境:KubeVirt 与 Kube-OVN 环境下的 Windows 虚拟机,网络配置为桥接模式(Underlay)。

解决方案:

步骤 1:下载完整 virtio-win ISO

由于 KubeVirt 需要使用 virtio 驱动来使 Windows 虚拟机 正常连接网络,首先需要下载并使用完整的 virtio-win ISO,其中包含所有必须的驱动文件。

在一台可以访问外网的机器上执行以下命令:

bash 复制代码
mkdir -p /opt/virtio-win
cd /opt/virtio-win

# 使用 virtio-win 的 0.1.240 版本,版本可以修改为需要的版本
curl -L -o virtio-win.iso \
  https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240.iso

或者可以手动下载 ISO 文件,并将其上传到你的服务器,只要确保文件在某个目录下即可。

步骤 2:容器化 virtio-win ISO

为了让 KubeVirt 使用 virtio-win ISO ,我们将其容器化,放入一个 Docker 镜像中,并命名为 virtio-win 镜像。步骤如下:

  1. /opt/virtio-win 目录下创建一个 Dockerfile
Dockerfile 复制代码
# 使用一个极简的基础镜像
FROM scratch

# KubeVirt 要求镜像里有 /disk/disk.img
# 我们把 virtio-win ISO 直接当作 disk.img
ADD virtio-win.iso /disk/disk.img
  1. 然后,在 /opt/virtio-win 目录中构建镜像:
bash 复制代码
cd /opt/virtio-win

# 构建 Docker 镜像
docker build -t registry.cn-shanghai.aliyuncs.com/akops/virtio-win-0.1.240:latest .

# 登录到你的 Docker 仓库(如阿里云仓库)
docker login registry.cn-shanghai.aliyuncs.com

# 推送镜像到仓库
docker push registry.cn-shanghai.aliyuncs.com/akops/virtio-win-0.1.240:latest

这将会把 virtio-win ISO 转换为镜像,推送到你的镜像仓库。KubeVirt 通过这个镜像挂载虚拟光盘来进行驱动安装。

步骤 3:网卡配置

双击 virtio-win-gt-x64 文件,按提示完成驱动安装。

安装完成后,Windows 虚拟机能够识别并使用 virtio 驱动,并成功获得网络 IP。

  • 驱动安装后,Windows 会重新识别网络接口,并显示 Red Hat VirtIO Ethernet Adapter
  • ipconfig /all 中,确认 Windows 虚拟机获得了 10.47.13.13 的 IP 地址,并且可以访问网络。

步骤 4:验证与测试

  • 通过 ping 命令,确认 Windows 虚拟机与宿主机及其它设备之间的网络连接正常。
  • 确认 Windows 虚拟机 已经可以通过 10.47.13.13 地址访问外部网络。

总结:

通过安装 virtio-win-gt-x64 驱动,Windows 虚拟机成功识别并配置了网络接口,解决了获取 IP 的问题。现在,Windows 虚拟机可以正常通过 DHCP 获取 IP,并通过该 IP 访问内外网。


附:KubeVirt Windows VM 网络配置 (YAML)

以下是 Windows 虚拟机 YAML 配置示例,包含 virtio 驱动安装挂载配置:

yaml 复制代码
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: windows-vm
  namespace: vm
  annotations:
    ovn.kubernetes.io/logical_switch: vm-sub-201
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/vm: windows-vm
      annotations:
        ovn.kubernetes.io/logical_switch: vm-sub-201
      
    spec:
      domain:
        devices:
          interfaces:
            - name: default
              bridge: {}      # 使用桥接模式
          disks:
            - name: windows-iso
              bootOrder: 1
              cdrom:
                bus: sata
                readonly: true
            - name: windows-disk
              bootOrder: 2
              disk:
                bus: virtio
            - name: virtio-drivers
              cdrom:          # 挂载 virtio 驱动 ISO
                bus: sata
                readonly: true
      networks:
        - name: default
          pod: {}
      volumes:
        - name: windows-iso
          persistentVolumeClaim:
            claimName: windows-iso
        - name: windows-disk
          persistentVolumeClaim:
            claimName: windows-disk
        - name: virtio-drivers
          containerDisk:
            image: registry.cn-shanghai.aliyuncs.com/yourrepo/virtio-win-0.1.240:latest

记得根据使用的 virtio 驱动版本以及你的镜像仓库修改相应字段。

相关推荐
包饭厅咸鱼5 分钟前
小龙虾openclaw----Windows+Wsl+Docker 安装openclaw 并接入飞书
windows·docker·openclaw·小龙虾
※※冰馨※※10 分钟前
【QT】TortoiseGit配 SSH 克隆 Codeup
开发语言·c++·windows
今夕资源网1 小时前
坚果手机直连Windows,打开软件实现键鼠操作TNT系统 视频教程+所需软件(今夕存档)
windows·智能手机·tnt·smartisan·smartisan tnt·锤子系统·坚果手机
alphaTao2 小时前
LeetCode 每日一题 2026/3/16-2026/3/22
linux·windows·leetcode
阿昭L2 小时前
说说VirtualAlloc的第三个参数
windows
翱翔的苍鹰3 小时前
什么是 Deep Agents?
人工智能·windows·语言模型·自然语言处理·langchain·开源
今夕资源网6 小时前
windows11无法启用投屏功能 无线显示器无法添加可选功能 解决办法 Miracast修复脚本
windows·计算机外设·miracast·系统修复·无线显示器·投屏功能·投屏功能无法添加
内卷焦虑人士15 小时前
Windows安装WSL2+Ubuntu 22.04
linux·windows·ubuntu
NGBQ1213816 小时前
4DDiG Partition Manager.exe 全解析:Windows 端专业磁盘分区管理工具深度指南
windows
董林夕18 小时前
用户管理系统 - 完整接口文档
windows