为OpenStack制作Windows 2008 R2镜像

前提条件:

支持硬件辅助虚拟化(Intel VT-x或AMD-V)的主机一台。

已安装好的CentOS7,默认的最小安装即可,配置网络使之可以访问外网。

准备Windows 2008 R2安装光盘镜像

配置过程:

注:以下配置中过程中,eno16777736为主机外部网络所对应的网卡,IP地址为192.168.1.9,配置过程中,请根据实际情况修改

  • 环境准备

安装相关软件包

yum install -y vim wget net-tools bash-completion qemu-kvm libvirt virt-install
systemctl start libvirtd.service

创建桥接网络

cat > /etc/libvirt/qemu/networks/bridge.xml << EOF
<network>
  <name>bridge</name>
  <bridge name="br-ex"/>
  <forward mode="route" dev="eno16777736"/>
  <ip address="192.168.1.9" netmask="255.255.255.0"/>
</network>
EOF

virsh net-define /etc/libvirt/qemu/networks/bridge.xml
virsh net-autostart bridge

配置网卡自动添加到桥接器

cp /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ifcfg-br-ex
sed -i -e ‘/^NAME=/d‘ -e ‘/^DEVICE=/d‘ -e ‘s/^TYPE=.*/TYPE=Bridge/‘ -e ‘/^UUID=/d‘ -e ‘/^HWADDR=/d‘ /etc/sysconfig/network-scripts/ifcfg-br-ex
echo "DEVICE=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-br-ex
sed -i -e ‘/^IPADDR/d‘ -e ‘/^NETMASK/d‘ -e ‘/^PREFIX/d‘ -e ‘/^GATEWAY/d‘ -e ‘/^DNS/d‘ /etc/sysconfig/network-scripts/ifcfg-eno16777736
echo "BRIDGE=br-ex" >> /etc/sysconfig/network-scripts/ifcfg-eno16777736

重启系统使配置生效

reboot

确认"bridge" 网络已启动

virsh net-list
brctl show

关闭防火墙或者开放5900+N端口(要从客户端连接虚拟机控制台,默认从5900端口开始,每个虚拟机实例占用一个端口号,也可以指定虚拟机实例所使用的端口)

systemctl disable firewalld.service ; systemctl stop firewalld.service

创建镜像制作目录

mkdir /opt/image ; cd /opt/image

下载virtio驱动软盘

wget -O virtio-win-drivers.vfd https://launchpad.net/kvm-guest-drivers-windows/20120712/20120712/+download/virtio-win-drivers-20120712-1.vfd
  • 安装Windows 2008 R2系统

创建qcow2格式的虚拟磁盘

qemu-img create -f qcow2 win2k8.qcow2 10G

将系统安装镜像文件上传至/opt/image(此过程不在本文描述范围,略过),并命名为 win2k8.iso。如果使用其他文件名,请在后续操作中自行修改镜像文件名。

如果只有光盘没有镜像,可以将光盘放入到光驱,通过以下命令将光盘制作为iso镜像。

dd if=/dev/sr0 of=/opt/image/win2k8.iso

创建虚拟机实例。以下命令创建一个Win2k8虚拟机实例,配备1G内存,单核CPU,使用virtio网卡和磁盘适配器,挂载win2k8.iso和virtio-win-dirvers.vfd,远程控制使用spice(自动分配端口号,默认从5900开始)

virt-install --connect qemu:///system --virt-type=kvm --name win2k8 --ram 1024 --vcpus 1 --arch=x86_64 --network network=bridge,model=virtio --disk win2k8.qcow2,format=qcow2,device=disk,bus=virtio --cdrom win2k8.iso --disk virtio-win-drivers.vfd,device=floppy --graphics spice,listen=0.0.0.0 --video qxl --channel spicevmc --os-type windows --os-variant win2k8

出现以下两条告警可以忽略,后续将从Windows客户端进行连接,无需使用 virt-viewer

  • 如果没有安装 virt-viewer,会出现警告信息 WARNING Unable to connect to graphical console: virt-viewer not installed.
  • 如果在命令行模式下运行此命令,会出现警告信息 WARNING **: Could not open X display

在本地Windows上安装SPICE客户端(下载链接 https://fedorahosted.org/released/virt-viewer/),Linux系统可在GUI界面下安装virt-viewer

安装完成后,运行 Remote viewer

在连接地址栏中填入 spice://host地址:5900

如果还运行了其他虚拟机实例,可以通过 ps axu | grep win2k8 | grep port= 来查看具体端口号(暂未找到通过virsh之类管理命令查询的方式)

点击 Connect,即可打开远程虚拟机的安装界面

因为使用了virtio半虚拟化驱动器,2008 R2和Win7 中默认没有该驱动,所以需要手动加载其驱动

从软驱中加载storage驱动(这里显示2003R2,同样可用于2008R2。可能是软驱容量有限,制作者没有加入太多内容)

然后点击下一步,稍等片刻后即可看到前面分配的磁盘空间了。

接下来的系统安装步骤省略。安装完成之前重启会导致spice连接断开,重新连接即可,安装完成之后重启就不会再断开了

系统安装完成后,安装网卡驱动(软驱中的驱动)。配置虚拟机网络,使其与外部网络连通。

下载virtio驱动和qxl显示驱动。(网络已经配置好,也可以使用RDP连接虚拟机实例,方便复制链接和文件)

(备用链接 http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-81.iso)

http://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.74.exe

http://www.spice-space.org/download/windows/qxl/qxl-0.1-21/qxl_8k2R2_x64.zip

安装spice-guest-tools-0.74.exe,安装qxl显卡驱动

安装完成之后,设备驱动如下图

这时就虚拟机实例和主机之间就可以共享剪切板了(基于Spice Agent),能够复制网址、截屏等文本和图像信息,但不能复制文件。

安装更新,删除临时文件。

  • 配置系统与OpenStack整合

下载cloudbase-init工具并安装 https://github.com/cloudbase/cloudbase-init

选择执行Sysprep封装

将网卡配置修改为DHCP,删除临时文件(包括前面下载的驱动和安装文件),关机。

此程序安装完毕后生成一个“Cloud Initialization Service”服务,下次启动时,此服务会自动启动。

它会从OpenStack接收元数据(http://169.254.169.254),然后执行一系列初始化操作,

  • 设置主机名;
  • 创建或更新本地用户(安装过程中所指定的用户名,默认为Admin),添加他的本地组(多个组之间用半角逗号分隔),并注入密码;
  • 配置网络(前面安装过程中所指定的的网卡);
  • 在用户目录下创建包含SSH密钥的authorized_keys文件(由元数据提供,也就是创建实例时所选择的密钥对);
  • 执行创建实例时所指定的脚本(输入脚本时,第一行写入 rem cmd 为批处理命令,第一行写入 #ps1 为PowerShell脚本)

详细信息可参考此链接 http://www.cloudbase.it/cloud-init-for-windows-instances/

  • 压缩虚拟机磁盘
qemu-img convert -c -p -O qcow2 /opt/image/win2k8.qcow2 /opt/image/win2k8r2.qcow2

其中,-c表示使用压缩,-p表示执行过程中显示进度,-O指定输出格式为qcow2

对比前后文件大小

  • 上传到glance

将虚拟机磁盘文件拷贝到控制节点,执行以下命令完成镜像上传

glance image-create --name "Windows_2008_R2" --is-public true --disk-format qcow2 --container-format bare --file /opt/image/win2k8r2.qcow2

排错:

故障现象:

执行virsh net-list时,出现以下错误提示

error: failed to connect to the hypervisor

error: no valid connection

error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock‘: No such file or directory

问题原因:

libvirtd服务未启动

解决方法:

执行 systemctl start libvirtd.service 启动该服务即可。

可通过 systemctl status libvirtd.service 检查该服务运行状态,确保服务处于active (running) 状态

systemctl start libvirtd.service
systemctl status libvirtd.service

时间: 2024-12-25 17:40:20

为OpenStack制作Windows 2008 R2镜像的相关文章

OpenStack制作Windows 2008 KVM镜像

1.下载驱动程序 [[email protected] ~]# cd /usr/local/src [[email protected] src]# wget https://launchpad.net/kvm-gues ... ar.gz [[email protected] src]# tar zxf virtio-win-full-20120712.tar.gz [[email protected] src]# cd virtio-win-full-20120712 2.创建虚拟磁盘. [

Openstack window 2008 R2 镜像制作说明

制作说明: 母系统:centos 6.5 x86_64 1.安装软件 #在镜像制作服务器 安装qemu libvirtd 及window virt驱动 yum install libvirt libguestfs-tools qemu-kvm qemu-img yum groupinstall Virtualization "Virtualization Client" -y yum -y install libvirt libguestfs-tools -y #window默认不支持

Windows 2008 R2 密码恢复

主题: Windows 2008 R2 密码恢复 准备工具: Windows2008 R2 安装光盘 ERDCommander Boot Media Wizard Tool (MsDaRT6.5)       http://www.xdowns.com/soft/6/65/2012/Soft_92944.html 操作步骤: 安装:MsDaRT6.5,生成工具ERD 使用ERD,制作启动光盘或U盘 使用制作的光盘或U盘来破解密码 详细参考下文: http://os.51cto.com/art/2

Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step

环境规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1.5G 操作系统:Windows 2008 R2 Enterprise ************ RAC部分 ************ 一.准备工作 1.改动提升权限提示方式为"不提示,直接提升"(默觉得"非Windows二进制文件的允许提示") cmd> secpol.msc

在Windows 2008 R2上搭建RAC+DG

前期规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1G 操作系统:Windows 2008 R2 Enterprise ******* RAC部分 ******* 一.准备工作 1.修改提升权限提示方式为"不提示,直接提升"(默认为"非Windows二进制文件的同意提示") cmd> secpol.msc->本地策略-&g

Windows 2008 R2安装wamp server

一.平台windows 2008 R2,安装驱动,office 2010: 二.安装SP1补丁包,下载地址https://www.microsoft.com/zh-cn/download/details.aspx?id=5842 具体见附件1: 三.安装Microsoft Visual C++ 2015运行库 14.0.23026.0: 四.安装wamp server 3.0.6.即可

windows 2008 R2 当前已禁用远程登录

问题现象:windows 2008 R2 当前已禁用远程登录域用户及普通管理员adminstrator远程桌面登录服务器报错"当前已禁用远程登录" 查看日志信息"已拒绝登录请求,因为终端服务器当前处于漏模式,因此不接收新的用户登录..........." 解决办法: 开始--管理工具--远程桌面服务--远程桌面会话主机配置--用户登录模式--修改为"允许所有连接"

windows 2008 R2通过NFS共享磁盘给HP-UX或Linux挂载使用

此次任务是把windows 2008 R2的本地硬盘通过NFS的方式共享给HP-UX做DB的备份使用: 本次模拟环境是在VMware workstation 10上安装了一台windows 2008 R2 Server和一台Centos 5.4,接下来开始实验: 这里虽然使用的是centos 5.4,但是linux和HP-UX下命令都一样,经过本人实践. 首先要给windows 2008安装NFS特性,才能通过NFS将本地文件共享给centos,接下来添加"文件服务"角色和"

在windows 2008 R2中SQl Server 2008中代理启动失败的一个原因总结

启动SQL代理的时候报错如下: 关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾. ************** 异常文本 **************System.NullReferenceException: 未将对象引用设置到对象的实例. Server stack trace: 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.FindObjectExplore