首页 > 代码库 > Openstack 部署总结之:通过qemu-kvm创建唯一SID的windows 2003 镜像
Openstack 部署总结之:通过qemu-kvm创建唯一SID的windows 2003 镜像
在Openstack中使用windows 2003镜像创建实例的时候,会出现SID相同的情况,SID相同会导致网络以及安全的问题,为了防止该情况的发生,创建镜像的时候需要对Windows 2003进行封装,本文对该过程做一个详细的描述
创建img文件
首先 创建一个img文件
qemu-img create -f qcow2 windows32.img 10G
制作镜像
安装系统
接下来的操作需要virtio-win-1.1.16.vfd和virtio-win-0.1-74.iso两个文件 文件(http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers),执行下面的命令
/usr/libexec/qemu-kvm -m 1024 -cdrom cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1.iso -drive file=windows32.img,if=virtio,boot=on -fda virtio-win-1.1.16.vfd -boot order=d,menu=on -usbdevice tablet -nographic -vnc 192.168.40.148:3
之后迅速用vncviewer 接入查看,按F12 ,跳到菜单选项,否则会自动进入硬盘启动模式,如果不慎进入,请kill掉kvm进程,再重启kvm尝试迅速按F12,选择 2 (光盘启动)
出现以下界面时 快速按下 F6
如果出现以下情况 请按F3重新启动
F3重启, 迅速按F12, 选择从光盘启动,提示下面提示按F6时 按F6
这回按 s ,接下来的页面中,由于是32位的系统,
选择第二个,回车后,页面效果如下
一路回车后可以看到以下界面
按 F8 (或是Shift+F8), 进入分区
格式化为fat32,不知道ntfs行不行,这里用的是fat ,不是ntfs!按c创建磁盘
按回车开始安装,
格式化后,系统安装完成后会重启,按F12, 选择Virtio disk PCI:0:4选项 ,从硬盘启动,安装2003,
如果安装过程中出现下面的界面,则可能是映像文件之前安装过系统,F3退出
安装成功后,登陆系统 打开远程桌面
关闭虚拟机
重启虚拟机镜像,加载virtio驱动,安装网卡驱动,执行以下命令
/usr/libexec/qemu-kvm -m 1024 -drive file=windows32.img -cdrom virtio-win-0.1-81.iso -netnic,model=virtio -net user -boot order=c -usbdevice tablet -nographic -vnc :1
从光盘安装驱动,可以装上。
安装完virtio 驱动之后,关机,第二块光盘上有一些应用工具,可以选择性的安装第二张光盘,
/usr/libexec/qemu-kvm -m 1024 -drive file=windows32.img -cdromcn_win_srv_2003_r2_enterprise_with_sp2_vl_cd2.iso -net nic,model=virtio -netuser -boot order=c -usbdevice tablet -nographic -vnc :3
进入系统界面后,先后选择光盘中的“安装 windows server 2003”以及“执行其他任务-》安装管理工具”
封装系统
在虚拟机的环境下克隆windows系统,会出现sid相同...sid相同的系统之间互相访问,比如加域这种..会有问题,所有需要把系统封装,生成新的sid,在windows server 2003中可以使用“whoami /user“可以查看系统的SID
(1)关闭系统,重新挂载系统安装盘cd1
/usr/libexec/qemu-kvm -m 1024 -drive file=windows32.img -cdromcn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1.iso -net nic,model=virtio -netuser -boot order=c -usbdevice tablet -nographic -vnc :3
(2)启动完系统后,到光盘中support/tools目录下的deploy.cab文件夹
(3)提取该文件夹下的所有文件到c:\sysgrep目录下
(4)创建应答文件
封装好的系统,首次启动会有对话框要求用户提供必要设定信息,如:主机名、区域语言设定等;对于批量部署虚拟机每台都手动输入肯定不方便,为此,微软提供自动应答文件,以便封装好的系统首次启动不需要用户手动输入信息,具体设定步骤如下:
执行setupmgr.exe,创建应答文件
接下来的配置包括一些系统配置,例如语言,时间,秘钥,自动生成计算机名等。
之后的步骤,根据实际需求输入即可.
结束向导,会在sysprep目录下生成一个叫sysprep.inf的应答文件,如下图:
(5) 到c:\sysgrep目录下,运行其中的sysprep.exe,在跳出的警示中点“确定”
(6)在弹出项的警示窗口中点“确定”开始封装,大概15秒封装准备完成后,系统自动关闭
上传镜像到openstack
创建完镜像后,可以将该镜像上传到openstack中
glance add name="win2003" is_public=truecontainer_format=ovf disk_format=qcow2< windows_2003.img
使用该镜像创建两个实例,第一次启动的时间可能有点长,通过“whoami/user”命令来查看SID
虚拟机1
虚拟机2
安装过程中出现的问题
简单解决VNC Viewer 连接闪退
到Option-->Advanced-->Expert找到ColourLevel,默认值是pal8,修改为rgb222或full。重新连接,没有问题了。
说明:rgb111--8 colours,rgb222--64 colours,pal8 -- 256colours,full -- full colours
Openstack 部署总结之:通过qemu-kvm创建唯一SID的windows 2003 镜像