本文讲如何制作openstack可用的windows server 2008r2镜像,在前面讲过windows2012的制作方法,参考我的博文《使用virt-manager制作Openstack Windows server 2012R2镜像》,但win2012没有讲C盘自动扩容和attach a volume做D盘的方法,在本文对这两个操作的方法进行补充。
准备
- windows_server_2008_r2_standard_enterprise
- cloudbase-init
- virtio-win
简单介绍下cloudbase-init这个工具,是windows系统云初始化工具,对应linux中使用的是cloud-init,可以用来初始化ip,hostname,自动扩盘等等。
安装镜像
1、安装前,挂载windows iso和virtio驱动:
网卡设置成virtio模式:
2、开始安装,注意以下几点:
没有讲到的地方默认next,分区默认分一个区,后面详细讲原因
(1)选择自定义安装
(2)手动加载驱动,选择virtio-win磁盘中violator/w7/amd64
3、首次登陆设置密码:
4、更新网卡驱动:
进入系统后,设备管理器->其它设备->以太网控制器,右键属性
自定义安装,选择virtio-win盘NetKVM/w7/amd64
5、开启远程桌面:
6、打开防火墙可ping:
安装配置cloudbase-init
在系统外,virt-manager配置页面中重新挂载cloudbase-init磁盘,进入到系统读盘,安装前,首先运行:
C:\powershell
C:\Set-ExecutionPolicy Unrestricted
windows默认不允许任何脚本运行,所以在安装cloudbase-init前打开权限,这样cloudbase-init在系统启动时可以运行脚本。
安装成功后,会自动关机,然后修改启动方式为VirtIO Disk,开机,修改配置
C:\ProgramFiles\CloudbaseSolutions\Cloudbase-Init\conf\cloudbase-init
文件,使镜像支持自动扩展分区。在安装时,我只分了一个区(即C盘),原因是如果分两个区,cloudbase-init在系统启动时会将C盘和D盘合为一个C盘,解决这个问题的办法就是分区时只分一个区,如果想增加分区,attach volume即可。
由于cloudbase-init会自动注入随机数密码,在这里也需要取消,以便使用最开始设置的密码:
重启生效,即可上传qcow2文件到openstack来使用。
attach volume to windows vm方法
1、首先创建空的volume,然后attach到windows vm上
2、进入vm,打开磁盘管理器,可以看到分好的volume,右键联机初始化磁盘:
再次右键新建卷,然后一路next即可:
这样一个完整的windows2008r2的vm就创建完毕了。win2012可以用同样的方法进行自动扩盘。