热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

fedora系统中如何安装KVM虚拟机

kvm是基于linux内核的虚拟机,需要硬件(CPU)支持才能运行,目前较新的cpu都支持,且大多数较新的linux发行版的内核也都支持。它依附于linux下原有的qemu虚拟机软件,使用时就是用的qemu那一套命令,只不过由于启用了kvm虚拟化技术,虚拟机运行的速度有了很
kvm是基于linux内核的虚拟机,需要硬件(CPU)支持才能运行,目前较新的cpu都支持,且大多数较新的linux发行版的内核也都支持。它依附于linux下原有的qemu虚拟机软件,使用时就是用的qemu那一套命令,只不过由于启用了kvm虚拟化技术,虚拟机运行的速度有了很大的提升。如果由于某种原因kvm特性加载失败,那么就直接以qemu原有的方式运行。

一、准备工作
1.  首先检查CPU是否支持kvm,下面命令如果有输出则表示支持kvm虚拟技术,否则CPU不支持
    grep 'vmx\|svm' /proc/cpuinfo --color
2.  BIOS中打开虚拟技术支持(VT),否则 modprobe kvm_intel(对intelcpu) 时报错。
3.  modprobe kvm_intel 成功后,/dev目录下将会多出一个设备文件 kvm,但默认只能root用户有写权限。为了让普通用户也能使用kvm,需要做些处理,那就是首先建立一个组,名为kvm,然后把使用kvm的普通用户加入kvm组;然后修改udev规则,使得/dev/kvm文件一建立时就属于kvm组,这样组内的普通用户才能对它有写权限。
    groupadd kvm
    usermod -aG kvm
    然后在 /etc/udev/rules.d 中新建一个文件 99-myudev.rules,内容为如下一行即可
        KERNEL=="kvm*", GROUP="kvm", SYMLINK+="kvm"
  (修改了用户所属的组后,用户必须注销重新登录才能使用户组的修改生效,不知直接打开新的shell是否可以。)
4. 注意:如果启用了kvm,则再想运行其它虚拟机软件比如vmware,VirtualBox的话,将无法运行。不过只要卸掉 kvm_intel 模块即可:rmmod kvm_intel,然后再运行 vmware 等即可。

二、创建虚拟机
1. 建立一个虚拟硬盘
        qemu-img create -f qcow2
   注:开始我用qcow的格式,发现写数据时奇慢无比。于是使用如下命令将虚拟磁盘镜像转为qcow2格式
        qemu-img convert -O qcow2  from.img  to.img
2. 安装系统
        qemu-kvm -hda -m 512 -cdrom -boot d -vga std
3. 运行系统
          qemu-kvm -hda -m 512 -vga std
   注意:如果没有使用"-m"参数,KVM缺省内存为128M。

三、配置
1. 网络。对于Fedora11,我的kvm虚拟机装好xp后就直接能上网了,不错,没用我手动配置。
2. 声音。qemu-kvm -soundhw ? 列出可选的声卡选项,然后指定一个,我指定的是 -soundhw es1370。
3. 显示。暂时用 -vga std,至于客户机的显卡驱动,使用的是 vbempG.zip,请参考          
http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=8528&view=next
4. 可以通过vnc方式后台运行,加上 -vnc :1 参数启动后没有输出。可以用 vncviewer :1 来显示。不过这时会发现鼠标光标有两个,这可以通过加上 -usbdevice tablet 选项启动来解决。
5. -localtime 使用本地时间,否则使用UTC时间,导致虚拟机系统与本地的时间相差8个小时。
附:启动命令(vnc方式)
qemu-kvm -hda ./kvmxp.img -m 512 -soundhw es1370 -vga std -cdrom /dev/cdrom  -vnc :1  -usbdevice tablet  -localtime


推荐阅读
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 在树莓派Ubuntu(ARM64)上安装Node.js
    本文详细介绍了如何在树莓派Ubuntu系统(ARM64架构)上安装Node.js,包括下载、解压、移动文件以及创建软链接等步骤。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 编写css让div2在div1的右下角? ... [详细]
  • Python notes
    6.1.1.执行模块当你用下面的方式运行一个Python模块pythonfibo.py模块中的代码将会被执行,就像导入它一样,不过此时__name__被设置为__main__。 ... [详细]
  • 本文探讨了过度依赖咖啡对生物钟的影响,以及如何合理划分学习和娱乐时间。通过反思,我们认识到即使是快乐的事情也需要适度,培养兴趣爱好应注重沉浸感和心流体验。文章还提供了一些具体的调整建议。 ... [详细]
  • KMP算法是处理字符串匹配的一种高效算法它首先用O(m)的时间对模板进行预处理,然后用O(n)的时间完成匹配。从渐进的意义上说,这样时间复 ... [详细]
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
  • 本文探讨了在多种编程语言中实现Hello World输出的方法,从经典的C语言到现代的JavaScript,每种语言都有其独特的表达方式。 ... [详细]
  • LCUI 2.1.0 版本现已推出,这是一个用 C 语言编写的图形用户界面开发库,适合创建轻量级的桌面应用程序。此次更新包括多项修复和功能增强,并正式宣布将启动 Android 支持的开发计划。 ... [详细]
  • 使用Bootstrap创建响应式渐变固定头部导航栏的方法
    本文详细介绍了如何利用Bootstrap框架构建一个具有渐变效果的固定顶部响应式导航栏,包括HTML结构、CSS样式以及JavaScript交互的完整实现过程。适合前端开发者和学习者参考。 ... [详细]
author-avatar
hustjs
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有