当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 154 篇帖子 ]  前往页数 1, 2, 3, 4, 5 ... 11  下一页
作者 内容
1 楼 
 文章标题 : [教学]使用最快速的虚拟机 KVM [2008年9月13日最后更新]
帖子发表于 : 2008-05-03 16:33 

注册: 2005-05-29 14:55
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
前言
最近迷上 ubuntu 了,花了一周的时间把工作移到 ubuntu 上面。但是还是不能放弃Winows,因此尝试虚拟机。我先后安装了 vmware 6.03, VirtualBox 1.5.6, 和 kvm 0.91。最后得出结论:kvm最快!前题!!!你的CPU必须支持VM!!!

KVM的优点
常用的虚拟机我都试过了吧,总的来说,kvm具有以下优点。
1,速度,这是我最看中的。kvm的cpu效率和磁盘效率绝对是最优秀的。
2,稳定,这也是我看中的,目前的感受是最稳定的,不比 vmware 差。virtualbox我想大家都运到过qq问题。
3,扩展性,kvm是一个新的项目,以后回逐步在图形效率,3d和硬件上面得到linux最基础的支持。

KVM的缺点
1,使用不太方便。很多人惧怕命令行的东西,但是稍微注意一下,会发现命令行是那么的清晰和简单。
2,目前有些功能不太完善,比如图形性能,usb等。本文的最后有说明。
3,你的cpu需要支持vt技术,否则不能体现 kvm 的优势。

可能很多人在初次安装 kvm 后,一使用就放弃了。觉得鼠标移动都很不平滑,这的确是kvm目前最大的问题!但是鼠标是图形性能,记住,kvm在运算性能和磁盘性能上面基本上是最优秀的。下面我来给大家介绍如何用已有的方法去缓解鼠标这个弱点。

KVM 和 qemu 的关系
首先介绍一下 qemu 和 kvm 的关系。细节我就不多说了。
1,kvm 不是 qemu 的插件。我在开始的时候一直以为kvm只是一个插件。记住,kvm基本是一个独立的系统,只不过借用了qemu的代码和操作界面。也就是说,你在命令行中如果使用 qemu 的地方,只需要题换成 kvm,其他的参数基本都不用修改就可以运行,这样的效率是 qemu 的很多倍。所以,如果你想用好 kvm,去看看 qemu 的说明吧。
2,如果要用kvm,你的cpu必须支持 vm 技术,否则和 qemu 的效率基本相同。

如何判断你的cpu是否支持 vm 技术?
首先使用
代码:
egrep '(vmx|svm)' /proc/cpuinfo

如果没有任何的输出,说明你的cpu不支持,不用往下看了;-)
如果支持,你可以在输出中找到 vmx 的字样。看看我的
代码:
danny@danny-laptop:~$ egrep '(vmx|svm)' /proc/cpuinfo
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
danny@danny-laptop:~$ egrep '(vmx|svm)' /proc/cpuinfo
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida


安装和配置
注意,大多BIOS缺省是关掉了vt支持的,你需要首先设置你的bios,我使用的是x61,缺省就是关闭的。

接下来安装 kvm 包,使用“新得利”吧,细节就不说了。不过还需要下载 qemu包。因为 kvm 没有包含建立虚拟磁盘的工具。kvm应该根据你的cpu类型自动激活内核模块,反正我的是这样的。接下来你需要在终端运行一下kvm,如果没有任何错误信息,那么恭喜你,你可以使用kvm了。

把你的用户加入到 kvm 组,使用系统管理当中的“用户和组管理”,这里略去细节。也可以使用命令行

代码:
adduser xxx kvm


如果你需要虚拟机访问物理磁盘,需要把你的用户添加到 disk 组。

代码:
adduser xxx disk


xxx是你的登录名。

建立磁盘映像文件,使用

代码:
qemu-img create -f qcow2 WindowsXP.img 10G


细节请看相关命令行说明。

你应该准备了 windows xp 的安装 iso 映像包吧。
然后使用下面命令打开虚拟机进行安装了。
代码:
kvm -M pc -m 512 -soundhw es1370 -hda /home/danny/kvm/WindowsXP.img -localtime -net nic,vlan=0 -net user,vlan=0 -cdrom /media/tools/winxp.iso  -boot d

-m 512 是虚拟机的 ram 大小
-hda /home/danny/kvm/WindowsXP.img 是你刚刚建立的虚拟磁盘 C盘
-cdrom /media/tools/winxp.iso 是安装光盘的位置 D盘
-boot d 是从光驱启动
这里注意一下,官方推荐使用 -no-acpi 参数,原因是 qemu/kvm不太支持,可能造成 cpu 的占用偏高。我没有用这个参数,一用就退出,但是CPU使用很正常。你们可以尝试先加上这个参数。
其他参数自己看看文档吧。

速度怎么样?是不是你见过最快的虚拟机?这里注意一下,切换方式和 vmware 一样,都使用 ctrl+alt 切换。如果出现显示冲突,你多半需要关闭你的桌面特效。linux总是给我们不经意的惊喜。

安装完了吧,怎么样?鼠标很慢?启动时间很快吧。试试其他的一些消耗CPU而不需要什么图形性能的程序你就知道kvm的效率了。

下面看看我的桌面效果,鼠标的问题也解决了。

剩下的问题题明天再解决,今天有事,先离开了。

回帖请注意:
1。把你自己的问题描述清楚
2。请不要废话

使用远程桌面
继续。。。。。。。。。。。
看样子已经有人安装成功了,下一步经过简单的操作,我们实现来消除鼠标的问题。

首先确定你的虚拟机没有运行,然后运行以下的代码
代码:
kvm -M pc -m 512 -hda /home/danny/kvm/WindowsXP.img -hdb /dev/sda5 -hdc /dev/sda7 -hdd /dev/sda8 -net nic -net user -usb -localtime -vnc 127.0.0.1:0 -daemonize -redir tcp:3389::3389

解释一下,
1,-hda /home/danny/kvm/WindowsXP.img 你的系统虚拟磁盘
2,-hdb /dev/sda5 -hdc /dev/sda7 -hdd /dev/sda8 这个根据你自己进行选择,kvm可以加载你系统的分区。注意,分区是独享的,也就是说如果在 kvm 中加载了分区,这几个分区在宿主机(unbutu)中将无法访问。我这几个分区是Windows 下的分区,在 Ubuntu下也没有什么用。
3,-net nic -net user 使用简单网络访问,可以使得虚拟机上网,或者是访问宿主机。但是宿主机不能访问虚拟机(很奇怪的问题)。
4,-usb 使能 USB 支持,我没有成功。不知道为什么。
5,-localtime 时间同步,你不希望你的虚拟机是另外的时间吧。
6,-daemonize 后台运行,不显示图形界面,这个我后面要解释。
7,-vnc 127.0.0.1:0 打开远程桌面支持,这个可不是Windows的远程桌面哦。
8,-redir tcp:3389::3389 把虚拟机的远程桌面服务器端口映射到宿主机的端口,这个才是等同windows的远程桌面。

运行了吧,怎么突然退出而没有任何反应?因为虚拟机已经在后台运行了。你有两种方式查看虚拟机的界面。
1,使用远程桌面工具,地址 localhost , 端口 5900。
2,使用远程终端,地址 localhost 端口 3389
如果你的虚拟机还没有配置远程桌面,请现用第一种方式访问虚拟机界面,然后设定虚拟机(我的是XP)远程桌面方式,然后就可以了。

下一步是整合虚拟机到你的桌面,就和我的贴图一样,使用以下命令
代码:
rdesktop localhost:3389 -u danny -p xxxxxx -g 1024x720 -D -r sound:local


-u 后面的是用户名,-p 后面的是密码。-r sound:local 是启用声音,-D 是消除远程终端窗口的边框。怎么样,桌面出来了吧?应该还有登录的声音哦。这里也应该知道 1024x720 的道理了吧。这个值根据你自己的屏幕大小来调整。

这种方式下,可以享受 kvm 的所有效率,同时,鼠标是不是很快了。另外,几乎可以避免所有的键盘冲突。但是如果在虚拟机中看电影的話可能比较痛苦。

如何升级到 kvm 74
Ubuntu 源中的kvm版本是62的,太老了,很多新的特性都不支持。现在我们来看看如何升级到 kvm 74 的最新版本。
1。首先确定你已经安装了ubuntu官方源中的 kvm。如果直接使用我提供的 kvm 74,不会把 /dev/kvm 的权限设置成 kvm 组,比较麻烦。因此建议你按照前面所描述的,首先安装和设置官方源中的kvm
2。去launchpad.net下载最新编译好的kvm。我比较菜,不会自己编译。虽然提供了相应的源,但是我觉得最好是下载deb安装。因为launchpad.net提供的源中还包含了其他的很多包,有些包的升级可能对你的系统造成影响。因此,为了把影响控制在一定范围内,我强烈建议下载安装。下载地址是http://ppa.launchpad.net/intuitivenipple/ubuntu/pool/main/k/kvm/ 有三个版本
kvm_74+dfsg-0ubuntu2~ppa3g_i386.deb
kvm_74+dfsg-0ubuntu2~ppa3h_i386.deb
kvm_74+dfsg-0ubuntu2~ppa3i_i386.deb
其中,kvm_74+dfsg-0ubuntu2~ppa3h_i386.deb 是hardy的,h 代表 hardy 下载后直接安装。

使用kvm 74 中的USB自动识别
kvm 中的USB支持一直是很麻烦的。新版本的kvm可以支持USB设备的自动加载和卸载。现在我们就来看看是如何做的。

首先我们需要让kvm识别USB设备。这里需要编辑两个文件。
代码:
sudo gedit /etc/init.d/mountdevsubfs.sh


找到 Magic to make /proc/bus/usb work 这个地方,把下面的注解符号删除,最后的结果应该是下面这样。
代码:
   #
   # 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/us


然后,编辑 fstab 文件
代码:
sudo gedit /etc/fstab


在文件的最后一行加上
代码:
none /proc/bus/usb usbfs devmode=666 0 0

这样让所有用户可以访问 USB 设备。这种方式有安全隐患,也可以把 USB 访问的权限分配给一个组,这里我就不多说了。

重新启动Ubuntu,kvm应该可以认识 USB 设备了。

kvm 不可能把所有的 USB 设备全部转让给客户机运行,因此,必须给kvm说明那些usb会让客户机控制。这里需要使用到的是USB的vid和pid。每个 usb 设备都有这两个id,vid 代表生产商,pid代表产品。你可以通过下面的命令来察看USB设备的这两个参数
代码:
lsusb


结果的方式是
代码:
Bus 006 Device 001: ID 0000:0000 
Bus 005 Device 001: ID 0000:0000 
Bus 004 Device 001: ID 0000:0000 
Bus 003 Device 001: ID 0000:0000 
Bus 002 Device 001: ID 0000:0000 
Bus 001 Device 007: ID 0a5c:2110 Broadcom Corp.
Bus 001 Device 006: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 001 Device 001: ID 0000:0000 


如果是 ID 0000:0000 表示没有设备,
像 ID 0a5c:2110 Broadcom Corp. 表示vid是 0a5c,pid是2110

在启动kvm的命令中加入 -usbdevice host:0a5c:2110 就可以让客户机自动识别USB。当然也可以加入 -usbdevice host:0a5c:* 这样的命令,使得客户机识别所有 pid是0a5c的USB设备。原则上不要使用 -usbdevice host:*:* 这样的参数,否则你的Ubuntu不能识别USB设备了。

遗留问题
以下是遗留的问题,希望有朋友可以解决。
1,偶尔看看电影什么的,需要使用PPStream。切换到真实的 windows 太麻烦。希望通过 ppstream 的网络共享,在宿主上播放。

好了,希望大家使用 kvm 愉快,并且多多交流一下经验。如果你有什么好的经验,可以PM给我,让我们一同来完善这个帖子。


附件:
Screenshot-3.png
Screenshot-3.png [ 153.29 KiB | 被浏览 20451 次 ]



最后由 dannygao 编辑于 2008-09-14 0:11,总共编辑了 5 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-03 23:26 

注册: 2006-10-24 6:43
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
受教了,今天试过了,KVM的速度无可匹敌!!! :!:


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-03 23:34 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
egrep '(vmx|svm)' /proc/cpuinfo
我已经不用往下看了 :evil:


_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-05-03 23:41 
头像

注册: 2007-12-08 23:33
帖子: 4088
地址: SCUT-guangzhou
送出感谢: 0 次
接收感谢: 0 次
我也不用看了~~


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-05-04 14:10 

注册: 2007-06-01 22:11
帖子: 209
送出感谢: 0 次
接收感谢: 0 次
怪了...我的turion x2是支持VT的,但是却看不到有vmx


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-05-04 14:34 
头像

注册: 2005-11-06 1:51
帖子: 1795
地址: 七彩云世界
送出感谢: 0 次
接收感谢: 0 次
我的 t5250 也是看不到。


_________________
佛出寺,求索真世界 For_Truth:Free_Open_Share
OPEN GPG KEY:03D18D95


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-05-04 19:47 

注册: 2006-01-15 18:18
帖子: 54
送出感谢: 0 次
接收感谢: 0 次
啥也没有


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-05-04 22:29 

注册: 2007-11-03 16:37
帖子: 263
送出感谢: 0 次
接收感谢: 0 次
哇,吓死人,快得可怕。

感谢了
:D :D :D


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-04 23:31 
头像

注册: 2007-02-27 21:47
帖子: 1473
地址: GL
送出感谢: 0 次
接收感谢: 0 次
支持LZ,虽然我也不用往下看了 :(


_________________
Intel Pentium Dual Core 2.1G, 250G, DDRII 3G, ATI Radeon HD 4330
LMDE


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-05 1:15 
头像

注册: 2007-10-19 19:20
帖子: 152
送出感谢: 0 次
接收感谢: 0 次
*****@duff:~$ egrep '(vmx|svm)' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch

不知是否支持?


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-05-05 3:42 

注册: 2006-10-24 23:40
帖子: 97
送出感谢: 0 次
接收感谢: 0 次
确实速度很快阿


_________________
Laptop:HP Compaq Presario V3511

OS:Ubuntu 7.10

Phone:nokia 6600

OS:sybian s60 2nd


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-05-05 9:32 

注册: 2005-05-29 14:55
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
对了,可以使用 lsmod 查看加载模块。如果支持,应该有 kvm 模块,和 kvm_intel 或者是 kvm_amd


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-05-05 13:17 

注册: 2008-04-08 9:27
帖子: 167
送出感谢: 0 次
接收感谢: 0 次
fortruth 写道:
我的 t5250 也是看不到。

t5250是双核,但是好像没有虚拟指令集,所以无法用kvm,你可以再仔细的查查CPU信息


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-05-05 13:19 

注册: 2008-04-08 9:27
帖子: 167
送出感谢: 0 次
接收感谢: 0 次
LZ把我想要写的写了,哈哈,最近忙,没有时间整理,我会找时间补充一下网络配置方面的资料。
我选择KVM,我比较看好这个东东。
host是可以访问guest主机的,估计LZ用的默认的nat方式配置,那样是不行的,需要自己设置另外
的一种nat方式就可以了。
bridge我没有试成功,主要是在我的无线网卡上失败了,google了一下,这个问题一直存在,暂时无法解决。


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-05-05 15:54 
头像

注册: 2007-09-16 8:29
帖子: 14252
送出感谢: 172
接收感谢: 271
RegentW 写道:
支持LZ,虽然我也不用往下看了 :(


_________________
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 154 篇帖子 ]  前往页数 1, 2, 3, 4, 5 ... 11  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:TeliuTe 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译