sudo apt-get install kvm qemu
之所以要把qemu也装上,是因为KVM没有包含建立虚拟磁盘的工具….无语.
接下来,要使用KVM,你肯定要有运行它的权限啦.
将你加入KVM组吧.
sudo adduser yourusername kvm
另外,如果要让虚拟机能访问你的物理磁盘,你得将你加入多一个组:
sudo adduser yourusername disk
接下来..ctrl+alt+backspace吧~
重新登录之后呢,就可以创建磁盘啦.

便于管理,我们要先在用户目录下建一个kvm目录,进入之.

第一步:创建一个虚拟机的硬盘,将来来存放虚拟操作系统的.这个虚拟硬盘是利用文件系统来进行模拟的

qemu-img create -f qcow2 WindowsXP.img 8G
参数说明:
    * -f qcow2 :磁盘的格式
    * WindowsXP.img :磁盘名字..
    * 8G :摆明是大小设定..
这样就可以了.其他参数可以自己敲”qemu-img”+enter,慢慢看啦.“
安装XP登场!
第二步:安装是很快的..准备好iso之后..

kvm -M pc -m 256 -soundhw es1370 -hda /home/leewings/kvm/WindowsXP.img -localtime -net nic,vlan=0 -net user,vlan=0 -cdrom /media/ACER/MY\ SKY/Download/ISO/Windows/DeepinXP-V5.9f.iso -boot d -no-acpi

举例:

qemu-system-x86_64 -enable-kvm -m 512 -smp 1 -boot order=dc -hda /opt/vdisk.img -cdrom /home/d/Downloads/CentOS-6.4-x86_64-minimal.iso

-enable-kvm 是使用kvm内核,不用qemu的内核,开启虚拟机加速, 

-m 2048 是给客户机分配512MB内存,

-smp 1 是给客户机分配1个CPU,

-boot order=dc 是指定系统的启动顺序为光驱(d: CD-ROM)、硬盘(c: hard Disk),-hda ** 是分配给客户机的IDE硬盘(即前面准备的镜像文件),-cdrom ** 是分配客户机的光驱。默认情况下,QEMU会启动一个VNC server端口(如上面的::1:5900),可以用vncviwer工具来连接到QEMU的VNC端口查看客户机

windows xp的安装界面.~~
可以看出,KVM的”界面”真简洁啊..
安装是快速流畅的….真强悍.
先说几个关于安装的关键参数,还有一些常用的,下面会说滴~
    * -m 256 虚拟机内存大小
    * -soundhw es1370 声卡支持
    * -hda /home/leewings/kvm/WindowsXP.img 刚刚建立的虚拟磁盘C盘
    * -cdrom /media/ACER/MY\ SKY/Download/ISO/Windows/DeepinXP-V5.9f.iso 安装光盘的位置D盘(好吧,我的路径很深..)
    * -boot d 从光驱启动
    * -no-adpi 官方推荐使用这个参数,原因是qemu/kvm不太兼容,可能造成cpu的占用偏高.不过,有的人用不了这个参数….那就不用吧…..我成功使用,嘿嘿
安装好之后,可以先随便乱用一下..那速度..VBOX和VMware根本无法比拟….真棒!!
有点不爽诶..USB不能用?!鼠标很卡??!好吧..
先说关于鼠标卡,我们换种方式来使用吧~~
记得很久以前我说过的rdesktop么?我们又要用它啦~
首先要在XP里作如下设定:
    * 给你的用户加个密码..我的是123456.嘿嘿….多好
    * 打开你的远程桌面支持..
    * 控制面版->用户帐户->更改用户登录或注销的方式,“使用欢迎屏幕”和“使用快速用户切换”都勾上
    * 关机然后你会看到一个神奇的画面….这个,是N年前的电脑才出现过的..
      呃..我的截图没有窗口的….其实,它是有窗口的~
      不如..我们直接按叉叉呀.~
      其实,可以在终端->”CTRL+C”
      然后别急..我们来解决USB的问题.
   1. 「系统」→「系统管理」→「用户和组」→「管理组」新增群组「usbusers」,并将允许使用KVM的使用者都勾选起来。
   2. 打开终端,
      sudo gedit /etc/udev/rules.d/40-permissions.rules
   3. 在打开的文件中寻找:
      SUBSYSTEM=="usb_device"
      将其补充成:
      SUBSYSTEM=="usb_device", GROUP="usbusers", MODE="0664"
   4. 由于 ubuntu中预设关闭usbfs的支援,so..
      sudo gedit /etc/init.d/mountdevsubfs.sh
   5. 开启后,寻找:
            
      # Magic to make /proc/bus/usb work
      #
      #mkdir -p /dev/bus/usb/.usbfs
      #domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,
      devmode=0600,listmode=0644
      #ln -s .usbfs/devices /dev/bus/usb/devices
      #mount --rbind /dev/bus/usb /proc/bus/usb
      将最后四行的#去掉,如下所示:
             
      # Magic to make /proc/bus/usb work
      #
      mkdir -p /dev/bus/usb/.usbfs
      domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,
      devmode=0600,listmode=0644
      ln -s .usbfs/devices /dev/bus/usb/devices
      mount --rbind /dev/bus/usb /proc/bus/usb
      搞定!!!!!!!
还是别急..我们再来解决网卡桥接的问题..
      下面是我在Ubuntu8.04下设定kvm(适用于所有虚拟机)中桥接模式的过程,桥接模式可以使Host OS 和Guest OS在区域网路中处于平行地位。
      安装所需工具 uml-utilities,bridge-utils (已有)
      sudo apt-get install uml-utilities
   1. 为Host OS建立桥接界面(Bridge)和虚拟网卡设备(tap device)这样作的原故,是使将来取得IP是由桥接界面(bridge),而不是由ethx(真实的有线网卡)或tapx(虚拟网卡)来取得IP将下面的文本保存成文件,有需要按自己的情况修改一两个地方。
      另存为在/etc/init.d/virtualbridgedrun
      sudo gedit /etc/init.d/virtualbridgedrun
             
     # Virtual Bridging
       
      # Create a tap device with permission for the user running kvm
      # 建立一个使用者(user)有权限的设备tap0,user为自己用户名
      tunctl -t tap0 -u user
      chmod 0666 /dev/net/tun
       
      # Bring up ethX and tapX in promiscuous mode
      # 将ethx和tapx网卡界面设为混杂模式(Promiscuous)
      ifconfig eth0 0.0.0.0 promisc
      ifconfig tap0 0.0.0.0 promisc
       
      # Create a new bridge and add the interfaces to the bridge.
      # 建立新的桥接界面(bridge),並把 eth0, tap0加入bridge
      brctl addbr br0
      brctl addif br0 eth0
      brctl addif br0 tap0
       
      # 下面是两种获取IP的方式,可以自由选择,把不需要的注释掉就好了。
      # 将bridge设成静态IP。XXX都分别对应IP、子网掩码、网关。
      # 注意,以下设定不能与eth0的相同,不然都不能上网....
      # 唠叨多一句,自动获取IP的方式我从来没成功过..都会和eth0冲突,两边都不能上网了....
      #ifconfig br0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX up
      #route add default gw XXX.XXX.XXX.XXX
      # 将bridge设成动态DHCP分配IP。
      # dhclient br0
   2. 给上面的文件加上可执行权限
      sudo chmod +x /etc/init.d/virtualbridgedrun
   3. 再建立一个可执行文件
      sudo gedit /etc/init.d/virtualbridge
      添加如下内容:
      /etc/init.d/virtualbridgedrun &
      给它加上可执行权限
      sudo chmod +x /etc/init.d/virtualbridge
   4. 在/etc/rc2.d目录下做一个指向/etc/init.d/virtualbridge的链接
      cd /etc/rc2.d/
      sudo ln -sf ../init.d/virtualbridge S999virtualbridge
       #取名S999开头是为了让它最后启动
      重新启动电脑之后,就完成KVM桥接网路模式的设定了.
      输入ifconfig看看吧,多了个tap0噢~
      马上启动Guest吧 !Guest的网路设定和Host是独立平行的。 
好吧,搞定所有前奏了.
终于需要启动你的虚拟机了,..
kvm -M pc -m 256 -hda /home/leewings/kvm/WindowsXP.img -hdb /dev/sda -net nic -net tap,ifname=tap0,script=no -usb -localtime -redir tcp:3389::3389
P.S.:普通联网方式:
kvm -M pc -m 256 -hda /home/leewings/kvm/WindowsXP.img -hdb /dev/sda -net nic -net user -usb -localtime -redir tcp:3389::3389
稍等..其实就是等到登录界面………
然后,再起一个终端
rdesktop localhost:3389 -u administrator -p 123456 -g 1280x800 -D -r sound:local
windows..它出现啦!鼠标很平滑..~嘿嘿
好了,现在解释一下参数吧.
下面是KVM的参数.
    * -hda /home/leewings/kvm/WindowsXP.img 之前创建并安装了XP的虚拟磁盘
    * -hdb /dev/sda 让kvm加载我的系统分区.这个命令加载的是全部的分区..可以根据自己的情况调节的.
    * -net nic -net user 使用简单网络访问,可以让虚拟机上网.
    * -usb 使能 USB 支持.
    * -localtime 时间同步,你该不会希望你的虚拟机是另外的时间吧?!
    * -redir tcp:3389::3389 把虚拟机的远程桌面服务器端口映射到宿主机的端口,这个等同windows的远程桌面.
下面是rdesktop的参数
    * localhost:3389 虚拟机的网络IP(如果是普通方式,直接就是”localhost”;如果是桥接,第一次要到guest里面查看IP地址..):端口
    * -u administrator 用户名,像我这种直接安装精简版ISO的,一般都是administrator啦..
    * -p 123456 密码..我刚设定的123456
    * -g 1280×800 显示分辨率,根据需要来调整咯
    * -D 消除远程终端窗口的边框
    * -r sound:local 启用声音.注意:不能与KVM参数中的”-soundhw es1370″共用!
这种方式,可以享受KVM的所有效率,它真的快到不行啊..,
同时,鼠标是不是很快了?另外,几乎可以避免所有的键盘冲突.多好,嘿嘿~
不过,我们知道,用rdesktop连接,只能断开不能关机..
那如果加入了”-nographic(不启动图形界面)”参数,我要关机怎么办?那我们要去查看虚拟机的界面.
方法有2:
    * 使用远程桌面工具,地址 localhost 端口 5900.
    * 使用远程终端,地址 localhost 端口 3389.
使用上了,肯定就把我常用的软件给弄上啦~
对于VBOX和VMware的无缝模式,我还是恋恋不舍….怎么办?!
      只需要一个小改动^^看我的~
   1. 在XP,下载SeamlessRDP,并解压到C盘根目录下,C:\seamlessrdp,然后就登出吧
   2. ubuntu,通过rdesktop,用seamlessrdpshell.exe这个东西调用虚拟机上的软件,只把软件界面搞到本地来用.在我这里打开IE的命令如下:
      rdesktop -A -s "C:\seamlessrdp\seamlessrdpshell.exe C:\Program Files\Internet Explorer\IEPLORER.EXE" guestip:3389 -u administrator -p 123456  -r sound:local
            创建了4个启动器
          * 桥接模式的windows xp
            kvm -M pc -m 256 -hda /home/leewings/kvm/WindowsXP.img -hdb /dev/sda -net nic -net tap,ifname=tap0,script=no -usb -localtime -redir tcp:3389::3389
          * 使用SeamlessRDP的rdesktop
            kvm -M pc -m 256 -hda /home/leewings/kvm/WindowsXP.img -hdb /dev/sda -net nic -net user -usb -localtime -redir tcp:3389::3389
          * 普通联网模式的windows xp
            rdesktop guestip:3389 -A -s "C:\seamlessrdp\seamlessrdpshell.exe C:\Program Files\Internet Explorer\IEPLORER.EXE" -u administrator -p 123456  -r sound:local
          * 普通的rdesktop
            rdesktop localhost:3389 -u administrator -p 123456 -g 1280x800 -D -r sound:local
tips:不知道为什么,KVM使用SeamlessRDP的rdesktop不是很稳定..很容易就退出………..以前在vbox中是不会出现的..囧
这样一来,我的虚拟机就配置好了..花了一个星期时间….主要是因为上课/写作业等事情,要断断续续的来做..
…累..
呼..搞定了!
真爽!!这速度,以后使用就好舒坦了..
本来想附上自己翻译的KVM和rdesktop参数表..
但是,目前对于我来说..水平有限….只能当草稿存起来了..
同志们就自己敲KVM或rdesktop自己看E文的参数表吧..~
就这样吧,我要休息了..
PS.来自xjx的补充:
如果出现 open /dev/kvm: No such file or directory, 可能有人的内核还没有加入kvm支持, 增加一个加入 kvm 到内核的命令, 这个是在  http://forum.ubuntu.org.cn/vie …..0ee2315c7a 看到的.
命令:
modprobe kvm_intel 或者kvm_amd
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐