目录
OpenStack中利用IOS镜像,创建Windows实例的方法分为两种。一种是将virtio-win驱动和Windows镜像文件利用工具结合成一个IOS文件;另一种是利用Ustack中的卷挂载,预先将virtio-win创建成镜像,然后再利用镜像创建卷,最后将卷挂载到创建好的Windows实例上。
单一ISO文件方式
创建独立的ISO文件
首先下载好Windows 10的ISO镜像【地址】;再下载virtio-win的ISO镜像【地址】。利用解压软件将virtio-win驱动和Windows镜像解压到当前目录,如下图所示。
将virtio-win的文件夹复制到Windows镜像的文件夹中,并改名Drivers。
利用软件将Windows镜像文件夹刻录成ISO文件,这里用的是WinCDEmu【地址】。选中文件夹右键->Build an ISO Image,输入文件名,这样就得到了将Windows和virio-win驱动集成起来的Windows镜像。将此镜像上传,制作成Ustack中的镜像。
创建Windows实例
通过界面也好利用命令行工具也可以,新建一个Windows实例。这里我使用界面,进行演示。
选择镜像时,不要创建新的卷。
为实例选择一个合适的规格,这里的Root磁盘选择为0GB,原因是下面将另外挂载卷将系统安装到新的卷上。
选择合适的网络,注意如果有访问外网的需求,子网的DNS需要设置成8.8.8.8或者114.114.114.114。
选择安全组,默认的安全组中ICMP未被启用,所以新建一个安全组里面加入ICMP协议,也更好为了之后的网络测试。
点击创建。等待创建完成,打开VNC界面可以看到如下图。
创建卷
这时先将实例关机(避免安装virtio-win驱动后找不到卷的情况),然后创建一个卷。
编辑卷,使其可以作为启动盘。
然后将卷挂载到之前创建好的实例上。
安装系统
将实例开机,期间过程可能比较长。打开VNC后又进入下图的画面。
点击下一步,进行安装工作。
选择Windows版本,选择Windows 10专业版安装。点击下一步。
选择自定义。
这时因为未加载好驱动程序,会出现下图情况。
选择加载驱动程序。
选择Drivers\NetKVM\w10\amd64,点击确定。
加载驱动程序。
再选择Drivers\viostor\w10\amd64,点击确定。
加载好两个驱动后就如下图所示。如果还是看不到磁盘的话,可以将实例重启。
直接点击下一步,进行Windows的安装。
最后等待系统安装完成。
卷挂载方式
卷挂载的方式和上面的类似,只是需要多创建一个virtio-win镜像。由于缺少界面的支持,所以创建实例的部分要用命令行操作。
1 | nova boot --flavor 8-8-0 \ |
实例创建成功后,关机。接下来和第一种方式一样,新建一块磁盘,编辑使其可以启动。
然后将新建的卷挂载在实例上。启动实例。进行Windows的安装。
接下来和上面的步骤一致,分别加载两个驱动,然后就可以看到磁盘进行安装。
制作Windows镜像
最后安装完Windows系统的卷,可以将其制作成镜像,这样可以免于下一次的安装。
问题
Windows安装完成后,如果出现下面的情况。
首先在终端中查看是否有IP,如果有IP可以去修改网络连接的DNS,如果没有IP,需要打开设备管理器查看网卡驱动是否正常。
修改DNS。
查看设备管理器中网卡驱动是否正常。
异常的话就手动更新一下。
选择Drivers\NetKVM\w10\amd64文件下,更新驱动。
其他
Windows11的安装
Windows11的安装和Windows10基本一致,可以按照上面的两种方法任意一种进行安装。会出现下图的情况,这是由于Windows 11需要机器支持TPM2.0以及UEFI启动。我们可以通过修改注册表的方式跳过检查。
1.在VNC中按住快捷键Shift+F10打开终端界面。
2.输入regedit打开注册表。
3.找到目录HKEY_LOCAL_MACHINE\SYSTEM\Setup。
4.右击新建一个项,命名为LabConfig。
5.右击新建三个DWORD (32位) 值,分别命名:BypassTPMCheck、BypassRAMCheck、BypassSecureBootCheck,并将这三个值都设置为1。
6.关闭注册表和终端,返回上一级后,重新选择安装版,后续就和上面Windows 10的安装一样,加载上virtio-win的驱动后,就可以安装Windows 11了。注意:选择virtio-win的驱动时,要选择w11目录下的和Windows 11相对应。