前言

前一篇讲述了 windows server 安装 i225/i226 网卡驱动,本篇来聊下 hyper-v 安装 openwrt。

开启 hyper-v

默认情况下 hyper-v 是未打开的,需要手动打开此功能。开启过程如下:

  1. 打开服务器管理器
  2. 点击右上角的添加角色和功能 1
  3. 选择基于角色的安装 1
  4. 选择自己的服务器 1
  5. 选中 hyper-v 1
  6. 然后一路下一步即可,重启后即可在 windows 管理工具中看到 hyper-v 管理器 1

安装 openwrt

  1. 下载镜像 下载 openwrt 镜像可以在恩山或者 github 中找。
  2. 处理镜像 这里需注意,通常下载下来的镜像都是 img 格式的,hyper-v 不支持,需要用一个转换软件StarWind V2V Image Converter来将 img 转为 hyper-v 支持的格式
  3. 安装 在 hyper-v 中创建一个 2 代虚拟机,命名为 openwrt,不创建磁盘,不添加网卡,创建完毕后不要启动.然后使用上面的转换软件转换 img 并将目标设置为刚刚建立的 openwrt.
  4. 配置 openwrt
    • 关闭安全启动
    • 自动停止操作设置为强行关闭虚拟机,否则无法直通网卡 1

网卡直通

找到待直通网卡的 id

打开设备管理器,右键网卡属性,详细信息,位置路径。复制第一行的值保存下来

重复此操作,获取所有直通网卡的位置路径

1

卸载网卡

需要先从 windows 中卸载此设备,然后才能直通给 openwrt。

首先在设备管理器中右键网卡,禁用设备

1

然后输入以下命令卸载网卡:

Dismount-VmHostAssignableDevice -locationpath "PCIROOT(0)#PCI(1C07)#PCI(0000)" -force

其中PCIROOT(0)#PCI(1C07)#PCI(0000)为上一步获取到的网卡路径

重复此操作直到所有需要直通的网卡都被卸载

直通给 openwrt

输入如下命令将网卡直通给虚拟机,命令如下:

Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(1C07)#PCI(0000)"  -VMName openwrt

其中PCIROOT(0)#PCI(1C07)#PCI(0000)为之前获取到的网卡路径,openwrt为虚拟机名

取消直通命令如下:

Remove-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(1C07)#PCI(0000)"  -VMName openwrt

查询虚拟机下直通的设备

Get-VMAssignableDevice -VMName openwrt

然后启动虚拟机即可

小技巧,直通全部网卡到 openwrt 中

windows 可通过创建内部虚拟交换机,并添加虚拟网卡到 openwrt 中,然后在 openwrt 中将此网卡添加到 lan 上。

然后 windows 宿主机可通过此虚拟网卡获取到 ip,后续局域网内通过此 ip 进行访问,就不在需要物理网卡了,可将全部网卡直通给 openwrt。

注意,需要打开虚拟网卡-高级设置中的 mac 欺骗,否则宿主机无法获取 ip

1

后期

之前一直瞧不上 hyper-v,现在试了下还挺香的,物理 windows 环境还可以做很多其他的事情,比如 htpc 之类的。