1 前言
需要在window的系统上安装相应的软件,而当前的服务器都只安装了linux系统,由于服务器安装的linux都是server版本,因此只能在linux主机上通过KVM的方式安装window server 2008。本文记录一下在无桌面的ubuntu server下使用KVM安装windows server的过程。
环境说明:
linux主机:ubuntu server 16.04.4
windows:windows server 2008 R2
2 KVM安装windows
2.1 必要软件安装
本次安装的linux系统为ubuntu 16.04 server
版本,首先通过apt命令安装必要的软件,服务器都是命令行,没有安装 X 桌面,所以加入 --no-install-recommends
参数,否则会安装 virt-viewer
之类的包,在它们的依赖关系中有 X11 和很多图形图像库,而这些都用不上。如果开启了桌面系统,那么可以不加该参数[1]。
1 | louie@ubuntu:~$ sudo apt-get install -y --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker |
安装完成后验证一下
1 | louie@ubuntu:~$ kvm-ok |
KVM安装完成后会自动生成一个virbr0 的桥接网络,但是这个是一个 NAT 的网络,没有办法跟局域网内的其他主机直接进行通信,因为安装的windows需要跟其他机器通信,因此需要将KVM的网桥和物理网卡桥接在一起。
配置/etc/network/interfaces
文件,加入一下配置
1 | The bridged network interface |
重启网络服务,通过brctl命令查看网桥状态
1 | root@ubuntu:~# brctl show |
随后开始创建虚拟机
2.2 准备虚拟硬盘文件
创建一个虚拟磁盘,根据需要控制磁盘大小,理论上20G就够用,这里设置稍大一些。
1 | louie@ubuntu:~$ qemu-img create -f qcow2 WASU_AF.qcow2 50G |
在启动虚拟机之前需要下载virtio驱动,因为kvm安装windows采用的是virtio的形式,主要是磁盘和网卡驱动,下载地址:传送门
这里安装的是64位系统,选择virtio-win-0.1.126_amd64.vfd
的virtio驱动[2]
再准备一个windows server 的ISO镜像就齐活啦
一共需要的东西清单如下:
- 虚拟磁盘文件(WASU_AF.qcow2)
- virtio驱动(virtio-win-0.1.126_amd64.vfd)
- windows server镜像(windows server 2008R2)
2.3 安装虚拟机
使用如下命令创建虚拟机,创建完成后需要在VNC上完成后续操作才算完全安装好
1 | louie@ubuntu:~$ virt-install \ |
【Note】
1)分配给虚拟机的vCPU个数由sockets、cores、threads三个参数的乘积来控制,sockets指代CPU插槽数目,cores指代每个插槽芯片的核心数,threads指代那个核心的超线程,如上所示创建的虚拟机共有8个逻辑cpu。
2)listen
指代的是虚拟机的VNC监听接口,默认是localhost,0:0:0:0
指带所有的IPv4接口,::
指代所有接口,包括IPv4和IPv6。
随后需要通过VNC来继续完成系统的安装
1 | vnc://[2402:6100::5]:5910 |
输入密码后即可进入windows server安装界面,安装过程会出现看不见磁盘的情况,是因为没有加载virtio驱动的原因,这时候就轮到virtio-win-0.1.126_amd64.vfd
起作用啦,virtio驱动是以软盘的形式加载的,这样可以避免虚拟机启动时找不到系统盘镜像。
选择“加载驱动”,“浏览”,找到“软盘驱动器”,点开后选择 “server 2008R2”确定,会发现有两个驱动,一个是Ethernet网卡,一个SCSI磁盘,操作两次驱动加载完成后,磁盘就出现了,继续安装即可。
等待安装完成,创建新密码即安装完成。
在ubuntu上使用virsh命令即可查看虚拟机状态,进行虚拟机的关机、暂停操作等。
2.4 虚拟机开关机
在完成上述的安装过程后,即可通过lib-virt的virsh
来完成虚拟机生命周期管理了,包括:开机、关机、暂停、删除等操作。
在ubuntu server上查看虚拟机运行状态
1 | louie@ubuntu:~$ virsh list |
关机
1 | sudo virsh shutdown DELL_STORAGE |
开机
1 | sudo virsh start DELL_STORAGE |
暂停(挂起)
1 | sudo virsh suspend DELL_STORAGE |
删除
1 | sudo virsh destroy DELL_STORAGE |
要想彻底删除一个虚拟机需要将其xml文件一并删除,即删除/etc/libvirt/qemu/
下的同名xml文件,同时重启libvirt服务,sudo service libvirt-bin restart
。
需要修改虚拟机的硬件配置需要修改虚拟机的配置文件,位于/etc/libvirt/qemu/
目录下有一个同名的xml文件,但是不要直接修改它,使用如下命令进行编辑(编辑前先将虚拟机关机),首次编辑需要选择编辑器,这里选择vim
1 | louie@ubuntu:~$ sudo virsh shutdown DELL_STORAGE |
如我们需要将软盘和系统镜像卸载掉,删除以下内容
1 | <disk type='file' device='floppy'> |
关于文件的其他内容含义可以部分解释如下[3]
1 | <domain type='kvm'> //虚拟机类型,如果是Xen,则type=‘xen’ |
更多相关xml标签内容含义查看官方文档:传送门,或者man手册man virsh
。
2.5 虚拟机的迁移
当需要迁移虚拟机时,可以直接将虚拟机磁盘
将/etc/libvirt/qemu
目录下,虚拟磁盘放置在同样的路径或者修改
1 | sudo virsh define <VM>.xml |
通过virsh list
或virsh list --all
查看虚拟机,若虚拟机未启动在通过virsh start <VM>
启动虚拟机即可。
2.6 虚拟机磁盘添加
当虚拟机磁盘不够用时,需要为虚拟机新增磁盘,首先创建磁盘[4]
1 | root@ubuntu:~# qemu-img create -f raw /opt/cfiec/6dnskvm/data/WASU_AF_DAT.img 2T |
添加磁盘方式有两种,临时添加和永久添加
1)临时添加
1 | root@ubuntu:~# virsh attach-disk WASU_AF /opt/cfiec/6dnskvm/data/WASU_AF_DATA.qcow2 vdb --cache none |
这种方式添加后重启虚拟机就会丢失
2)永久添加
需要修改虚拟机的xml配置文件
1 | root@ubuntu:~# virsh edit WASU_AF |
在disk
字段后添加如下内容
1 | #找到硬盘配置(原来的系统硬盘) |
注意:两个磁盘的slot数值不能重复。
添加后即可在虚拟机里查看磁盘,进入到设备管理器
—>磁盘管理
,可以看到磁盘,本次分配的磁盘为2T,容量较大,在选择磁盘引导时选用GPT
引导,随后选中磁盘进行格式化
格式化之后磁盘就可以直接使用了
3 windows server 2008 设置
3.1 在桌面显示我的电脑
点击左下角的开始
,在搜索框中输入tubiao
,选择显示或隐藏桌面上的通用图标
,选择想要添加的图标即可
3.2 开启远程桌面
点击左下角的开始
,选择右边的控制面板
,选择系统和安全
,点击系统
中的允许远程访问
,选择允许允许....
点击确定,随后点击应用
即可通过windows的远程桌面来访问。
【参考资料】
1)kvm安装虚拟机