Manually use KVM to run a Windows
手动使用KVM运行Windows虚拟机

我一开始以为所有KVM都可以这样玩,后来发现只有母鸡才有vmx指令集。没指令集没法用kvm加速,虚拟机会非常慢。

环境:KS4C Ubuntu 16.04

首先使用livecd启动archlinux,并DD Windows

执行

egrep -c '(svm|vmx)' /proc/cpuinfo

结果必须大于等于1,否则不支持开小鸡。

首先安装kvm,qemu和vnc

apt install qemu qemu-kvm vnc4server -y

切换到数据盘,创建一个大小为50G的磁盘文件

cd /home
qemu-img create -f qcow2 win.img 50G

下载DD所需的ArchLinux

wget http://archlinux.de-labrusse.fr/iso/2017.01.01/archlinux-2017.01.01-dual.iso

vm.sh

#!/bin/sh
export QEMU_AUDIO_DRV=alsa
DISKIMG=win.img
WIN7IMG=archlinux-2017.01.01-dual.iso
qemu-system-x86_64 --enable-kvm -drive file=${DISKIMG},if=virtio -m 2048 -realtime mlock=off \
-net nic,model=virtio -net user -cdrom ${WIN7IMG} \
-rtc base=localtime,clock=host -smp cores=2,threads=1 \
-usbdevice tablet -soundhw ac97 -cpu host -vga cirrus \
-redir tcp:3389::3389

将上面这段代码保存为vm.sh,chmod +x然后扔到服务器上,具体的镜像名称根据实际情况更改。

启动VNCServer

vncserver

会要求输入两次密码,然后使用VNC-Viewer等客户端连接至VNC

在vnc的shell里切换到数据目录,执行./vm.sh,稍等片刻,VNC会进入ArchLinux的安装界面。

选择第一项Boot Arch Linux(x86_64),即进入shell。

关键步骤:DD

wget -O- http://soft.91yun.org/ISO/Windows/online_dd/windows2008.R2.raw | dd of=/dev/vda

整段必须一字不差 不能先wget再dd,否则空间不够。

dd完毕后reboot重启即可进入Windows。

用户名:administrator

密码:Changeme!!!

记得改密码,然后就可以mstsc远程了。IP为服务器IP,端口3389。

参考资料:

  1. https://www.91yun.org/zh/archives/1415
  2. http://www.laozuo.org/9628.html
  3. https://www.freehao123.com/debian-6-qemu/
  4. https://www.ibm.com/developerworks/community/blogs/5144904d-5d75-45ed-9d2b-cf1754ee936a/
  5. http://www.howtogeek.com/117635/how-to-install-kvm-and-create-virtual-machines-on-ubuntu/

最后修改于 Fri, 20 Jan 2017