一、用virt-manager来安装
windows系统驱动:
virtio-win-0.1-59.iso and virtio-win-0.110.iso (备注:二选一)
用virt-manager安装windows镜像,需要加载virtio驱动,如果不装virtio-win驱动,上传到云平台开启实例后的结果是找不到启动设备,而制作Linux镜像不需要virtio驱动。
备注:安装windows2008时,因没有选对驱动,报下面错误。所以一定要注意驱动的版本。
error:
Your PC needs to restart.
Please hold down the power button.
Error Code: 0x0000005C
二、利用 virt-manager创建windows2008虚拟机
第一步,新建虚机,选定ISO or CDROM
第二步,选定系统镜像iso文件,并要么自动获取系统类型,不行的话你就自定选定
第三步,设定虚机的内存大小(默认1024M)和CPU个数(默认1)
第四步,选择系统存储盘,这里浏览进去新建一个卷就好
第五步,最后确认配置信息,勾选“安装前配置”,如果是安装CentOS系统等Linux系统的话,这里点击进入高级选项,最好把那个MAC地址的给取消
第六步,更改存储系统盘格式从默认的default为virtio,点击应用之后左边对应列表会更改显示
第七步,更改网卡类型从默认的default改为virtio
第八步,光盘挂载virtio-win驱动iso文件,记得设备类型要选择CDROM设备,不然安装过程中不会识别这个盘,当然总线类型可以选择floppy软盘(软盘就不用下面的第九步)
第九步,开启虚机,找不到启动设备(no bootable device,前面有图),正常的,因为上面挂载virtio驱动的光盘会取代默认的CDROM1位置作为启动盘,CDROM1本来加载的是系统镜像iso文件。直接关机(shut off)。更改启动顺序,把挂载了系统镜像的CDROM2作为启动盘
第十步,启动虚机,选择系统语言版本之类,系统安装大家都知道
第十一步,开始安装virtio驱动,这里最关键,注意细节。系统不认识我之前更改为virtio格式的硬盘,备选磁盘那里是空白,需要加载驱动来识别virtio硬盘。注意:如果在系统安装之前不更改硬盘类型为virtio而直接安装了系统,并在系统中安装virtio驱动,没用的,上传到云平台开启实例后将会同样出现上面PC needs to reboot的错误
选择加载驱动程序,具体指定某个文件夹,而不能简单的选择光盘盘符,那样是找不到的。下面看图实例1.7版本的驱动中的文件内容,虽然他不适用于我。最后我发现是驱动0.1-59.iso救了我,它的盘符名称不会显示出来。注意选择的具体文件夹WIN8。这里只需要装第一个硬盘的scsi的即可,先认得磁盘装了系统再说,进入系统后再安装其他的
安装这个驱动后进入选择安装系统的盘符的界面,如果还是看不到硬盘,那么刷新下就出来了,然后新建个分区来安装,走到这一步,就基本OK了。后面就是安装系统,设置管理员密码了,系统安装完成。
第十二步,安装三个virtio驱动,包括网卡和两个PCI设备,我的话,因为用的是0.1-59.iso装的硬盘驱动,所以单独挂载了1.7的重启后来装这三个驱动,挂载新的CDROM需要重启来生效。更新他们三个驱动,指定到挂载驱动的光碟即可;也可以像官网那样直接命令来装:
C:\pnputil -i -a E:\WIN8\AMD64\*.INF
第十三步,更改启动盘顺序,验证系统启动是否正常,因为当前启动盘还是系统镜像iso光碟,更改为刚刚的virtio disk,也就是我们刚装的系统;同时,也可以删除之前挂载的virtio-win驱动光碟和系统镜像iso光碟了,虚机系统起来应该是没问题的了。网络也OK
另外,在制作镜像的CentOS主机中查看,发现多了块virbr0虚拟网桥,这个虚拟网卡作用在于分享主机网络给虚机
[html] view plain copy
1. # ifconfig
2. virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
3. inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
4. ether 52:54:00:a4:aa:27 txqueuelen 0 (Ethernet)
5. RX packets 870 bytes 72753 (71.0 KiB)
6. RX errors 0 dropped 0 overruns 0 frame 0
7. TX packets 581 bytes 566491 (553.2 KiB)
8. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# sysctl -a | grep virbr0 # 能看到很多这个网卡的配置,其中的net.ipv4.conf.virbr0.forwarding = 1 表示启用IP转发功能
第十四步,到此Windows 2012 R2的OpenStack镜像制作完成,上传云平台开启实例,运行OK。这个镜像15G,上传上去需要点时间,从镜像建立实例孵化需要20分钟左右。