虚拟机镜像之window 镜像
启动windows 虚拟机
前提条件
- 已安装KVM
- 已获取ISO的镜像文件
操作步骤
- 创建一个空镜像文件
在当前路径创建一个大小为40G,名字为windows2012.qcow2,格式为qcow2的空镜像文件
qemu-img create -f qcow2 windows2012.qcow2 40G
建议使用vi编辑器将启动虚拟机命令保存。便于后续操作。
2. 启动windows虚拟机机
virt-install --connect qemu:///system \
--virt-type=kvm \
--name windows2012 \
--ram 8192 \
--vcpus 4 \
--arch=x86_64 \
--network network=default,model=virtio \
--cdrom en_windows_server_2012_r2_x64_dvd_2707946.iso \
--disk path=windows2012.qcow2,format=qcow2,device=disk,bus=virtio \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--video cirrus
- –name: 设置虚拟机的名称
- –ram: 设置虚拟机的内存大小,单位MB
- –vcpus: 设置虚拟机的CPU核数
- –arch: 设置虚拟机的运行架构
- –network: 设置虚拟机的桥接网络
- –cdrom: 填写ISO镜像路径
- –disk: 填写空镜像路径
- –graphics: 设置vnc监听地址0.0.0.0代表监听所有地址
- –video: cirrus: 配置客户显示硬件
- –noautoconsole: 不尝试自动连接到客户端
- 查看虚拟机状态
执行启动虚拟机后,可以执行以下命令查看虚拟机的运行状态
virsh list | grep windows2012 #注“windows2012”是虚拟机名称
- 连接至windows虚拟机
按照以下示例,打开本地windows安装好的vnc客户端软件,选择File -> New connection新建一个连接
新弹出窗口,填写VNC Server及Name
VNC Server: 启动windows虚拟机的Linux服务器IP以及windows VNC连接端口,IP和端口以:分割
Name: 新建会话的名称
填写必要项(VNC Server,Name)后,点击OK即可保存会话。
右键新创建好的 VNC会话,点击Connect即可连接至windows服务器。若提示unencrypted,选择continue继续连接即可
5.安装windows操作系统
进入操作系统安装界面后,您可以根据具体的需求进行安装,本文不再赘述安装过程。
由于VNC连接无法直接复制文件至windows虚拟机中。因此,在完成windows系统安装后,可选择在windows内开启远程服务(windows remote service)。
通过开启远程服务,本地windows电脑可以远程连接至windows虚拟机,本地文件可轻松传输至远程windows虚拟机,方便后续的镜像配置操作。
开启远程桌面
本节以windows server 2008 系统为例,演示开启远程桌面操作:
操作步骤:
操作前置条件,已通过VNC连接至windows虚拟机,并可以执行操作
- 选择 “开始” – “计算机” – 右键选择“属性”,然后按下图操作:
- 选择“远程设置“
- 选择允许运行任意版本远程桌面的计算机连接
配置windows虚拟机的防火墙
虚拟机开启远程桌面服务后,需要配置防火墙放行远程连接请求后才可远程连接,默认情况下windows防火墙会隔绝外部的远程连接请求。解决此问题有2种方案如下:
方案1:
打开windows虚拟机的”运行窗口”,输入以下命令即可放行远程连接规则
netsh advfirewall firewall set rule name="远程桌面(TCP-In)" new enable=yes
netsh advfirewall firewall set rule name="远程桌面 - RemoteFX (TCP-In)" new enable=yes
方案2:
临时关闭防火墙,如下所示
- 右下角打开网络和共享中心
- 选择 windows防火墙
- 打开或关闭windows防火墙
- 选择关闭 防火墙配置,点击确定即可关闭防火墙
配置KVM宿主机到windows虚拟机的端口映射
由于KVM内运行的windows虚拟机默认网络和外部隔离,外部的windows电脑不能直接连接至windows虚拟机,因此需要在KVM宿主机上配置端口映射规则。
操作步骤:
1.获取windows虚拟机的IP地址
打开 控制面板–>网络和Internet–>网络连接。点击windows虚拟机的网卡,点击详细信息
如下图示例,windows虚拟机的IP地址192.168.13.71
- 配置KVM宿主机的iptables映射规则
Linux防火墙管理工具iptables可以设置DNAT(目标地址转换)规则,完成宿主机端口至windows虚拟机的映射。因为上述network=default,是使用的NAT模式,如果是nework=bridge 桥模式时,可以不需要NAT,各种网络模式,我们将在下面章节做详细的介绍。
操作步骤:
在KVM宿主机执行以下命令
echo 1 > /proc/sys/net/ipv4/ip_forward #开启内核转发
iptables -t nat -A PREROUTING -d 172.28.8.132/32 -p tcp -m tcp --dport 63389 -j DNAT --to-destination 192.168.13.71:3389 #配置映射规则
iptables -I FORWARD -d 192.168.13.71 -j ACCEPT #放行指定IP
命令释义:
以上命令开启Linux内核的转发功能。并添加了iptables DNAT映射规则,将对来自外部访问KVM宿主机63389端口的流量转发至 windows虚拟机(192.168.13.71)的3389端口
注意:
-d 172.28.8.132/32 : 这里需要替换为实际情况中KVM宿主机的IP地址/32
–to-destination 192.168.13.71:3389 : 这里替换为实际情况中windows虚拟机的IP地址
测试远程连接服务
1.Windows本地电脑右键点击 左下角开始,“运行“
2.输入mstsc后确定
3.输入KVM宿主机的IP地址,以及DNAT规则映射的端口号。选择连接即可