Archlinxu安装KVM和noVNC, 虚拟机安装win10

前提条件,cpu要支持xvm或者svm,可以用lscpu查看。

更新系统

$sudo pacman -Syy
$sudo pacman -Suy

安装kvm+noVNC

$sudo pacman -Sy libvirt virt-install qemu python python-numpy libvirt-python git tigervnc wget net-tools bridge-utils ovmf
$cd ~
$git clone https://github.com/novnc/noVNC.git

设置vnc

$vncpasswd
$vncserver
$vncserver -kill :1

建立放ISO的文件夹,比如驱动,系统等都可以放在里面

$mkdir -p ~/ISO
$cd ~/ISO
$wget -c -t5 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
$wget -c -t5 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_x86.vfd
$wget -c -t5 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_amd64.vfd

然后把windows系统放到里面,建议用安装版,因为需要f6加载软盘驱动,来驱动硬盘。

把你当前用户加到kvm和libvirt组

$sudo usermod -a -G kvm,libvirt xxxxx   #注意:xxxxx是指你当前使用的用户名

若不加组,你只能使用root用户启动虚拟机,不建议这样做。
编辑qemu,让当前用户能正常创建启动虚拟机。

$sudo nano /etc/libvirt/qemu.conf
去掉#号并更改为你当前用户和用户组
user = "xxxxx"
group="libvirt"

创建一个桥接网卡

$sudo cp /etc/netctl/examples/bridge /etc/netctl/kvm-bridge
$sudo nano /etc/netctl/kvm-bridge

更改和添加内容

Description="Kvm Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(enp2s0)
# 我的网卡名是enp2s0,用ip addr查看你的网卡名并更改。
IP=static
# 我使用的是静态IP,如果你使用动态IP,你改成dhcp,并删除下面的内容。
Address=('192.168.1.6/24')
Gateway='192.168.1.1'
DNS=('211.98.4.1' '211.98.2.4')
MACAddressOf=enp2s0

## Ignore (R)STP and immediately activate the bridge
#SkipForwardingDelay=yes

激活并使用些桥接网卡

$sudo netctl enable kvm-bridge
$sudo netctl start kvm-bridge

创建虚拟机

先创建一个事半功倍的运行脚本

$cd ~
$nano winkvm.sh

添加内容

#!/bin/bash
exec virt-install \
--connect qemu:///system \
--virt-type=kvm \
--name=win10 \
--ram=2048 \
--vcpus=2 \
--hvm \
--arch x86_64 \
--boot loader=/usr/share/ovmf/ovmf_code_x64.bin,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/ovmf/ovmf_vars_x64.bin,loader_secure=no \
--machine q35 \
--os-variant=win10 \
--cdrom=/home/xxxxx/ISO/win10.iso \
--network bridge=br0,model=virtio \
--graphics vnc,listen=0.0.0.0,password=passwd123,port=5910 \
--disk path=/home/xxxxx/kvm/images/win10.img,size=30,bus=virtio,format=qcow2 \
--disk /home/xxxxx/ISO/virtio-win-0.1.141_amd64.vfd,device=floppy \
--boot=uefi \
--video qxl

解析上面的内容:
--virt-type=kvm: 使用KVM作为虚拟机监视器。
--name=win10: 虚拟机实例的名字,每个虚拟机的名字都不能一样,不能有空格。
--ram=2048: 指定虚拟机内存大小,单位是Mb。
--vcpus=2: 为虚拟机指定分配的虚拟CPU核数。
--os-variant=win10: 指定虚拟机系统所属系列以优化虚拟机参数,可以通过命令osinfo-query os 来显示所有支持的系统列表。
--hvm: 启用全虚拟化,KVM虚拟机支持全虚拟化,属于优化性参数。
--cdrom=/home/xxxxx/ISO/win10.iso: 指定作为虚拟机光驱内容的设备或文件,可以是主机的CDROM或者iso文件。
--network network=br0,model=virtio: 将虚拟机连接到主机网络,使用桥接模式,网卡模式设置为virtio。
--graphics vnc: 设置虚拟机的console并将其输出到VNC,这样就可以通过VNC来连接虚拟机了。同时可以指定vnc的端口和监听范围以及密码: port=5910,listen=0.0.0.0,password=passwd123连接密码自行更改。默认情况下端口为从5900开始的第一个空闲端口,监听范围为本机127.0.0.1,修改为0.0.0.0以使外网主机可以连接。后面会讲对于只支持SSH协议的情况下,如何通过SSH隧道连接,所以是否设置为0.0.0.0没有影响,但能设置为0.0.0.0的话,还是设置为0.0.0.0,毕竟直接通过VNC连接更加方便。这些参数也可以在/etc/libvirt/qemu.conf中修改,以使其对所有虚拟机生效,VNC默认连接没有密码。VNC可以理解为linux下的远程桌面。
--disk path=/home/xxxxx/kvm/images/win7.img,size=30,bus=virtio,format=qcow2: 指定虚拟机所使用的存储路径,大小为30G,bus类型为virtio(当然也可以为ide),磁盘格式为qcow2,如果不指定fortmat,则默认格式即为raw。网络和磁盘建议都设置为virtio,virtio即启动优化的虚拟机专用IO驱动,性能更好。磁盘格式使用qcow2更好,因为qcow2格式即QEMU支持的QEMU Copy On Write磁盘格式,是优化后的磁盘格式,支持快照,并且是使用多少占用多少空间。例如你分配了20G大小,如果是raw格式,则立即占用20G,而qcow2则是从很小开始,用多少,占用多少。之前有些人说qcow2性能不如raw,这两种格式可以使用qemu-img进行转换。
--disk /home/xxxxx/ISO/virtio-win-0.1.141_amd64.vfd:指定软盘,添加驱动用,类型device=floppy软驱。
--boot cdrom,hd --video qxl:--boot是指定boot启动顺序,不指定的话,只显示硬盘。--video是指定显卡为qxl,你也可以选择vga,cirrus,vmware,virtio等。

启动虚拟机

$chmod +x winkvm.sh
$./winkvm.sh     //这一步可能不动的时候按Ctr + C,继续下面
$virsh --connect qemu:///system list --all

VNC远程连接虚拟机

$~/noVNC/utils/launch.sh --vnc localhost:5910

在其它电脑上打开http://IP:6080/vnc.html,输入password中设置的passwd123就可以连接上了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容