自定义制作Windows2008R2 nova镜像
安装准备
- KVM虚拟化配套工具集合(含图形界面更好)
- Windows2008R2安装光盘
- 本文中出现的文件都放在mnt目录下
注意事项
硬盘接口类型使用virtio, 网卡接口类型使用virtio.
添加第二个cdrom设备用来连接驱动文件,即虚拟机拥有磁盘、cdrom1、cdrom2.
制作驱动程序iso文件
1 | [root@localhost]# wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo |
- 提取qemu-guest-agent
1 | [root@localhost]# cp /usr/share/virtio-win/guest-agent/qemu-ga-x64.msi /mnt/ |
- 下载cloud-init程序
1 | [root@localhost]# wget https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta_x64.msi /mnt/CloudbaseInitSetup_Beta_x64.msi |
##制作KVM镜像
创建一个20G大小镜像文件1
[root@localhost mnt]# qemu-img create -f qcow2 windows.img 20G
使用virt-manager安装虚拟机
在选择磁盘时会提示无法找到磁盘,选择加载驱动后进入挂在的virtiowin.iso中寻找磁盘驱动进行加载后正常安装系统
安装完成后进入系统安装其他驱动,打开设备管理器,文件仍然在virtiowin.iso里
- 安装网卡驱动
- 安装pci驱动
- 安装ballon内存管理驱动
- 打开远程桌面
- 保持网卡dhcp
- 关闭防火墙
上传qemu-ga-x64.msi
和CloudbaseInitSetup_Beta_x64.msi
到windows中
安装qemu-ga-x64.msi
安装CloudbaseInitSetup_Beta_x64.msi
用户名 Administrator
用户组 Administrators
串口勾选com1
勾选 sys prep(不要勾选关机)
修改cloudinit配置文件C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf
增加 first_logon_behaviour=no
增加cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin
关机
上传Windows镜像
对虚拟磁盘进行压缩处理,qemu-img的qcow2具有高效压缩功能1
qemu-img convert -c -O qcow2 /mnt/windows.img /mnt/windows.qcow2
等待压缩完毕,基本上容量可以压缩到一半
把windows.qcow2 复制到openstack controler节点上,创建glance镜像1
glance image-create --name “windows2k8” --disk-format qcow2 --container-format bare --is-public True --progress < windows.qcow2
在KVM中运行windows镜像,实例操作系统时间默认是UTC时间,必须设置系统类型,让镜像使用localtime设置1
2imageID=`glance image-list | awk '/windows2k8/{print $1}'`
glance image-update $imageID --property os_type='windows'
现在可以使用这个自定义的镜像来创建实例