Linux系统上安装基于KVM的WIN10虚拟机
本文档的安装环境是Ubuntu 16.04 LTS
开始之前先介绍一下什么是KVM:
- KVM是开源软件,全程为kernel-based virtual machine(基于内核的虚拟机器)。
- 是X86架构且硬件加速虚拟化技术(如intel VT或AMD-V)的Linux全虚拟化解决方案。
- 它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
- KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
- KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。
- 在主流的Linux内核,如2.6.20以上的内核均已集成了KVM核心。
然而由于各种各样的原因我们需要在Linux下安装windows的虚拟机又不想使用VMware之类的软件,或者在服务器下面无法使用这些软件。那么基于KVM的qemu管理的虚拟机就成了一个好选择。
#首先安装KVM相关包文件,如果没有安装图形桌面则使用--no-install-recommends参数,这样不会安装与图形相关的库。
sudo apt-get install -y \
--no-install-recommends \
qemu-kvm \
qemu-utils \
libvirt-bin \
virtinst \
cpu-checker /
#验证是否安装成功
sudo kvm-ok
#如果安装成功则应显示
INFO: /dev/kvm exists
KVM acceleration can be used
KVM自己会创建一个virbr0的桥接网络,但是这个网络是NAT在物理网卡上的,这样如果宿主机在远程服务器上,就无法在本地的电脑上远程访问虚拟机的VNC端口,也就无法进行下一步的安装工作。所以桥接网络属于可选配置。
#使用命令行创建桥接网络
#创建一个虚拟以太网桥接口br0
sudo brctl addbr br0
#网桥所在网络里只有一台路由器,则关闭生成树协议(STP)
sudo brctl stp br0 off
#将机器里可以连接外网的以太网接口附加到br0上
sudo brctl addif br0 eth0
#现在原来的以太网物理接口变成了网桥上的逻辑端口,变成了逻辑网桥的一部分,不需要IP地址,将IP地址释放掉(暂时未测试,请不要运行此步骤)
sudo ifconfig eth0 down
sudo ifconfig eth0 0.0.0.0 up
#启用网桥
sudo ifconfig br0 up
#给网桥接口分配一个IP地址(与eth0在同一网段且未被使用过)
sudo ifconfig br0 x.x.x.x
#查看已有网桥
sudo brctl show
在开始之前我们做一些准备:
- Windows10正版安装镜像
- Virtio ISO 和软盘镜像
- VNC客户端
使用virt-install命令安装虚拟机:
virt-install \
--name win10 \
--memory 4096 \
--vcpus sockets=1,cores=2,threads=2 \
--cdrom=/path/to/Windows_10_Multiple_Editions_X64_DVD_6848463.iso \
--os-variant=win8.1 \
--disk /path/to/win10.img,bus=virtio,size=64 \
--disk /path/to/virtio-win-0.1.126_amd64.vfd,device=floppy \
--network bridge=br0,model=virtio \
--graphics vnc,password=945778430,port=5910 \
--hvm \
--virt-type kvm
由上面的命令可以看出虚拟机的配置信息如下:
- 名称:win10
- 内存:4G
- 1个CPU,1个核心,两个线程
- 1个CDROM(windows10安装镜像)
- 64G硬盘(系统硬盘)
- 1个软驱(Virtio驱动)
- VNC远程桌面密码:945778430,端口:5910
如果命令正确应该会有下面信息输出:
Starting install...
Creating domain...
Domain installation still in progress. Waiting for installation to complete.
但是此时如果没有连接VNC服务则无法看到windows安装的图形界面
接下来就是正常的安装系统了。