1. 基础环境安装

yum groupinstall Virtualization "Virtualization Client"
yum install libvirt

2. 启动服务

systemctl enable libvirtd
systemctl start libvirtd
systemctl status libvirtd

3. 系统镜像准备

使用迅雷下载镜像并上传到服务器

mkdir /openstack-image
cd /openstack-image
ed2k://|file|cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso|5545705472|121EC13B53882E501C1438237E70810D|/

4. 创建磁盘文件

chown -R qemu:qemu /openstack-image
qemu-img create -f qcow2 ws2012r2-dc.qcow2 20G

5. 准备 windows 兼容驱动

wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.126-2/virtio-win-0.1.126.iso
wget https://cloudbase.it/downloads/CloudbaseInitSetup_0_9_11_x64.msi

6. 启动虚拟机

由于在windows下需要下载Cloudbase,网络较慢,我将提前下好的文件CloudbaseInitSetup_0_9_11_x64.msi 打包成 CloudbaseInitSetup_0.9.11_x64.iso, 并上传到服务器与windows镜像相同的目录,启动时添加如下参数,同时挂载3个光驱到系统,以便开机后能够一次性完成个性化配置、网卡驱动更新、cloudbase安装。

6.1 使用virt-install安装

这个工具的使用方法找了千百种,发现不能同时添加安装镜像和驱动镜像,直到找到这篇文章:

http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html

qemu-img create -f qcow2 ws2012r2-dc.qcow2 20G

virsh destroy ws2012r2 && virsh undefine ws2012r2
virt-install --name=ws2012r2 --ram=2048 --cpu=host --vcpus=2 \
--os-type=windows --os-variant=win2k12r2 \
--disk ws2012r2-dc.qcow2,bus=virtio \
--disk cn_windows_server_2012_r2_datacenter_with_update_x64_dvd_4048415.iso,device=cdrom,bus=ide \
--disk virtio-win-0.1.126.iso,device=cdrom,bus=ide \
--disk CloudbaseInitSetup_0.9.11_x64.iso,device=cdrom,bus=ide \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0 --noautoconsole

6.2 使用qemu-kvm安装

这里的-vnc 参数值为ip:数字, 即VNC端口默认从5900开始,加上指定的数字,我这里设置的 0.0.0.0:0, 因此能够直接连接5900VNC端口。

qemu-img create -f qcow2 ws2012r2.qcow2 20G

qemu-kvm -m 2048 -drive file=ws2012r2.qcow2,if=virtio,index=0,media=disk \
-drive file=cn_windows_server_2012_r2_datacenter_with_update_x64_dvd_4048415.iso,index=1,media=cdrom \
-drive file=virtio-win-0.1.126.iso,index=2,media=cdrom \
-drive file=CloudbaseInitSetup_0.9.11_x64.iso,index=3,media=cdrom \
-net nic,model=virtio -net user -boot d -nographic -vnc 0.0.0.0:0

7. 安装系统

netstat -ntlp | grep qemu-kvm 查找到虚拟机的vnc端口为5900,使用tigerVNC进行连接,并在控制台完成系统安装。
ip就是服务器的ip,端口默认第一个为5900以此类推,也可以通过命令virsh vncdisplay vmname查询端口,推荐使用tigervnc来打开。

8. 驱动添加

由于windows并不自带openstack的驱动,系统启动后无法识别到硬盘,需要手动加载virtio驱动;并且网卡驱动也需要使用virtio驱动。因为前面启动虚拟机时已经挂载了virtio镜像,这里可以直接到计算机里面全安装。

8.1 硬盘驱动添加(安装时完成)

点击 浏览--光驱vortio-win-0.1.1, 定位到viostor\sk12R2\amd64 :

 选择加载的驱动

点击下一步就可以识别到硬盘了:

 

安装完成,系统进入登录界面,使用F8快捷键召唤 TigerVNC菜单,选择Send Ctrl+Alt+Del:

 8.2 网卡驱动更新(进入系统后完成)

在设备管理的以太网控制器上右键,浏览到光驱下面的NetKVM,选择2k12R2:

 确认安装

 

9. 安装cloudbase-init

在打开光驱,双击msi文件安装cloudbase-init

 按照如下截图选择

 

 10. 压缩镜像
virt-sparsify --compress ./ws2012r2-dc.qcow2 Windows-Server-2012R2-DC.qcow2

11. 添加镜像到glance

openstack image create "Windows-Server-2012R2-DC" --file ./Windows-Server-2012R2-DC.qcow2 --disk-format qcow2 --container-format bare --public

12. 删除虚拟机

从virsh删除虚拟机,但磁盘会被保留。

virsh list --all
virsh undefine ws2012r2

13. 使用已有磁盘

如果需要再次使用这个磁盘创建虚拟机,使用如下命令创建

virt-install --name ws2012r2 --memory 2048 --vcpus 2 --disk ws2012r2-dc.qcow2,format=qcow2 \
--import --os-type=windows --os-variant=win2k12r2 \
--disk virtio-win-0.1.126.iso,device=cdrom,bus=ide \
--disk CloudbaseInitSetup_0.9.11_x64.iso,device=cdrom,bus=ide \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0 --noautoconsole

作者:NOZUONOHIGH
链接:https://www.jianshu.com/p/c92c3c9a2d6f#comment-13996075

制作openstack的windows server 2012r2镜像的更多相关文章

  1. 制作OpenStack用的RHEL7系统镜像

    制作OpenStack使用的RHEL7系统镜像,并进行相关设置,安装XRDP以进行远程访问. 1.在KVM中安装RHEL7.2客户机: 2.设置网卡为dhcp并onboot=yes,使得虚拟机能自动获 ...

  2. windows server 2012R2 网络慢的那些事

    前段时间公司新采购了一台ibm的服务器,装的是 windows server 2012R2, 在做完项目迁移后,发现项目访问数据库缓慢,于是逐项查找原因,最后终于找到解决办法 以Administrat ...

  3. Windows Server 2012R2 网络地址转换NAT

    一.NAT概述 网络地址转换NAT(Network Address Translation)可以动态改变通过路由器的IP报文的内容(修改报文的源IP地址和/或目的IP地址).离开路由器的报文的源地址或 ...

  4. 制作openstack用的centos6.5镜像

    目的: 在centos6.5操作系统环境下制作一个centos6.5的kvm镜像,安装cloud-init,能自己主动扩展根分区 一.制作环境: 操作环境是在openstack平台开一个实例.装的是c ...

  5. 记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布

    背景: 原因是因为没有购买新的数据库授权.由于之前服务器是windows 2003 由于后绪网站的版本可能会升到.net4.5 据说 2003上安装不起 所有由另一同事到客户安装一个window se ...

  6. windows server 2012R2 故障转移集群配置

    配置说明: AD:10.10.1.10/24  Node-2:10.10.1.20/24 Node-3:10.10.1.30/24 zhangsan-PC:10.10.1.50/24  VIP1:10 ...

  7. 在Windows Server 2012R2离线安装.net framework3.5

    最近新装了一台Windows Server 2012 R2的服务器,安装数据库时,出现了提示安装不上 .net framework3.5的情况,经过网络上多次的资料查找及反复试验终于找到了一个可以解决 ...

  8. 虚机抓取Hyper-V宿主的镜像流量(Windows Server 2012R2)

    1.将交换机流量镜像到Hyper-V宿主的一块网卡(eth4) 2.在Hyper-V宿主上新建虚拟交换机(Network_Mirror),选择外部网络,扩展属性中启用“Microsoft NDIS捕获 ...

  9. 制作OpenStack云平台centos6.5镜像

    创建虚拟镜像 # qemu-img create -f raw Cloud_Centos6.5_64bit.img 10G [root@localhost ~]# ll /opt/CentOS-6.5 ...

随机推荐

  1. 「BZOJ4173」数学

    题面 已知 \[\large{S(n,m)=\{k_{1},k_{2},\cdots k_{i}\}}\] 且每个 \(k\) 满足 \[\large{n \%k+m\%k\geq k}\] 求 \[ ...

  2. 洛谷P3645 [APIO2015]雅加达的摩天楼

    题目描述 印尼首都雅加达市有 N 座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为 0 到 N − 1.除了这 NN 座摩天楼外,雅加达市没有其他摩天楼. 有 M 只叫做 “doge” 的神 ...

  3. Treap基本用法总结

    Treap=Tree+Heap  起名的人非常有才 Treap是啥? 一棵二叉搜索树可能退化成链,那样各种操作的效率都比较低 于是可爱的Treap在每个节点原先值v的基础上加了一个随机数rnd,树的形 ...

  4. java面试| 线程面试题集合

    集合的面试题就不罗列了,基本上在深入理解集合系列已覆盖 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 这里搜罗网上常用线程面试题, ...

  5. python类型-序列

    注:本文档主要是学习<Python核心编程(第二版)>时做的资料整理. 1.序列 序列的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员,包括字符串(普通字符串和Unic ...

  6. 一文带你了解 HTTP 黑科技

    这是 HTTP 系列的第三篇文章,此篇文章为 HTTP 的进阶文章. 在前面两篇文章中我们讲述了 HTTP 的入门,HTTP 所有常用标头的概述,这篇文章我们来聊一下 HTTP 的一些 黑科技. HT ...

  7. copy and swap技巧与移动赋值操作符

    最近在实现一个Delegate类的时候碰到了一个问题,就是copy and swap技巧和移动赋值操作符有冲突. 比如有以下一个类: class Fun { public: Fun(const Fun ...

  8. Dynamics CRM Tips

    这里是作为开发中遇到的各式各样的问题的总结贴. 如果对Dynamics CRM 开发有兴趣, 请参考Step by Step 开发dynamics CRM 移除sitemap中的entity 从O36 ...

  9. CentOS7.0+Hadoop2.7.2+Hbase1.2.1搭建教程

    1.软件版本 CentOS-7.0-1406-x86_64-DVD.iso jdk-7u80-linux-x64.tar.gz hadoop-2.7.2.tar.gz hbase-1.2.1-bin. ...

  10. linux--->Linux centon6.9 安装mysql

    Linux centon6.9 安装mysql 查看系统自带的安装包 yum list installed | grep mysql 2.上边显示有mysql 有5.1和5.5两个版本,我安装5.5 ...