首页 > 代码库 > 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,修改为rgb222full重新连接,没有问题了。

说明:rgb111--8 coloursrgb222--64 colourspal8 -- 256coloursfull -- full colours


Openstack 部署总结之:通过qemu-kvm创建唯一SID的windows 2003 镜像