热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

fedora系统下如何安装Qemu虚拟机

qemu是最近出现的一种新的虚拟机,本身小巧的系统和linux的加速器,使它一经面世就受到了热烈的欢迎,国内也有不少用户,但没有一篇完整的文章介绍,使许多人走了不少弯路,其实,安装是比较简单的,较为复杂的部分是在网络部分,下面,就以Fedora5加kernel
qemu是最近出现的一种新的虚拟机,本身小巧的系统和linux的加速器,使它一经面世就受到了热烈的欢迎,国内也有不少用户,但没有一篇完整的文章介 绍,使许多人走了不少弯路,其实,安装是比较简单的,较为复杂的部分是在网络部分,下面,就以 Fedora 5加kernel 2.6.17.4做为主机详细介绍qemu的安装和使用
一.安装
下载
qemu最新版是0.81,同时下载加速器kmenu,最新版是1.3
http://fabrice.bellard.free.fr/qemu/download.html
先安装Kqemu
$ tar zxvf kqemu-1.3.0pre9.tar.gz
$ cd kqemu-1.3.0pre9
$ su root
# ./configure
# make
# make install

然后安装qemu
# tar zxvf qemu-0.8.1.tar.gz
# cd qemu-0.8.1
#./configure --prefix=/usr/local --enable-kqemu --enable-user --enable-alsa --disable-gcc-check
说明:
--enable-user 可以允许系统下的所有用户使用Qemu
--enable-alas 可以允许系统共享系统的声音系统
--disable-gcc-check 因为wqemu默认是使用gcc3.2,我的系统gcc已经升级到了4.1,所有禁止了qemu对gcc的检查
#make
#make install
经过以上的操作,加速器和qemu都已经安装完成了。

二.创建新的img
用户可以将img文件创建到任意位置,只要有足够的空间就行。
# mkdir win2kp
# cd win2k
# qemu-img create win2k.img 2G
Formating 'win2k.img', fmt=raw, size=2097152 kB
2G是指定虚拟机的硬盘大小的
三.网络的设置
国内的很多人都讲加参数就如何可以使用网络,但实际远没那么简单,我就是一开始看了网络上某人的贴子,结果是反反复复,网络一直不能正常工作,后来从 qemu的网站上下了所有的doc才搞定(比如有人发的贴都是使用-user-net就可以上网了,不但把语法写错了,而且只有这个参数根本就上不了 网!),在此我只说最复杂的部分,就是主机<->虚拟机<->internet全通的模式。
这种方式是使用tun/tap模式,必须崾内核的支持,主机上会增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.
 首先查看你的内核是否支持tun设备:
 #ls -l /lib/modules/2.6.17.4/kernel/drivers/net/tun.ko
 如果存在,则执行下面的命令,否则重新编译模块。
 #modprobe tun
  
 这时检查modules:
 #lsmod |grep tun
  tun 10240 1
tun加载成功以后,要手工编辑一个shell.而且必须放在/etc下,文件名必须是qemu-ifup.最后要记得给脚本加上执行权限,如果要允许系 统下的所有用户使用,还必须更改脚本的权限,并在脚本中的命令前加上sudo,下面是是个完整的,给所有用户使用的脚本。
    
#vi /etc/qemu-ifup :
  #!/bin/sh
  sudo /sbin/ifconfig $1 192.168.10.1
sudo route add -host 192.168.10.100 dev $1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
  sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
  
#chmod a+x /etc/qemu-ifup   
    
四.安装虚拟系统
虚拟机的启动有很多选项,下面我就以我安装好的win2k来说明
如果要使用shm,必须进行以下的操作
# umount /dev/shm
# mount -t tmpfs -o size=528m none /dev/shm
别忘了启动加速器
#modprobe kqemu
shm的容量必须比你将要分配给虚拟机的内存大16m,否则无法使用,上面是准备给虚拟机512m的内存,所以,shm被设置成了528,如果你只给虚拟机256m的内存,上面的size应该是272.
好了,下面准备开始给上面创建的win2k.img装入系统
# qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -boot d -m 512 -win2k-hack
对于win2k的安装必须指定-win2k-hack参数,否则安装会中途出错退出,这个参数只需要在安装的时候使用,在运行的时候是不需要的。
-hda是指定将要使用的image文件,也就是windows的C盘
-cdrom是准备给cdrom的驱动器,也就是windows的D盘,有人说这个参数是-cdrom /dev/cdrom,是指定你的主机的cdrom的位置,这是一个天大的错误,这里指的是启动后的虚拟机,和主机的cdrom在哪里没关系,当然,你的 系统必须有cdrom,如果没有cdrom,我想在linux下虚拟mount一个还是很容易的。
-boot d ,就是指定系统从D启动,各上面一项相关的
-m 512,指定分配组虚拟机的内存
如果一切顺利,安装完成以后,你就可以启动系统了

五.启动虚拟机
首先,按前面的介绍,加载好加速器和tun的模块,如果前面已经加载了,这里就不再需要了,只在主机重启了以后需要,如果经常使用虚拟机,也可以将它们直接添加进/etc/rc.d/rc.local让系统自动加载。
#modprobe kqemu
#modprobe tun
#qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -hdb fat:/home/seabird/work -m 512 -localtime -net nic -net tun
参数:
-hdb fat:/home/seabird/work
这是一个非常有用的参数,它的意思是把主机的/home/seabird/work目录直接以fat的格式加载到虚拟机,当然,它是只读的
-localtime,指定虚拟机使用当前的系统时间
-net nic -net tun
这两个参数必须同时使用,否则,你还是上不了网,它的意思是启动虚拟机的网卡同时和主机以及internet通讯,只有这个参数加载的时候,系统才会去读取/etc/qemu-ifup文件,其它的模式是不会读取这个文件的。
启动完成以后,将win2k的网卡地址指定为192.168.10.100,网关设为1921.68.10.1还记得/etc/qemu- ifup文件吗,这个文件中的地址和你的虚拟机的地址是相关的,并不像有些人说的你可以像主机一样随便指定地址去上网,它是把主机作为一个NAT设备来使 用的。当然,你别忘记指定一个虚拟机可以到达的DNS服务器
六.后记
1.指定虚拟机的网络地址的时候。千万别指一个和你的主机相同网段的,那样,你是不可能上网的。
2.可以去安装98,但到目前的最新版为止,winxp在大多情况下安装是不成功的,这个在qemu的网站上说的很清楚,只有等以后的版本了,所以,你看到的安装winxp的贴子是没有实践的,我在三台配置不同的机器上安装都以失败告终了。
3.win2k运行的时候,如果用它自己的关机是关不掉虚拟机的,原因是不支持电源管理,教你一个方法,使用win2k的安装/卸载硬件,一步步往下走, 在windows搜索完硬件后出现的对话窗中选择添加新硬件(白痴的windows,我竟然不能让它跳过搜索), ->下一步,选择“否,我想从列表选择硬件”->下一步->NT Apm/legacy支持->下一步,安装完成后你就可以正常关机了。
4.qemu还有一个最大的优点是可以启动你的硬盘上的双系统,如果现在就是双系统,你可以像下面一样直接启动:
#qemu -hda /dev/hda1 -m 512 -net nic -net tun
/hda1是你的另一个系统的硬盘分区,如果你是grub启动,这里就是你的grub所在的位置,等grub菜单出现后,选择想启动的系统就可以了(天啊,别选你现在正在运行的系统啊).


推荐阅读
  • ffmpeg【百度百科】
    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录 ... [详细]
  • 前一段是公司的一个项目环境,由以前的单节点环境升级到到现在集群环境,并且服务器都在同一个机房,考虑部署了一套zabbix监控系统,由于第一次部署的服务器有点多,所以将安装流程写成了 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 微软云计算操作系统WindowsAzure平台——云+端全面攻略
    在云计算时代,有三个平台非常重要,即开发平台、部署平台和运营平台。WindowsAzurePlatform是微软的云计算平台,在微软的整体云计算解决方案中发挥关键作用。它既是 ... [详细]
  • SAPC/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例
    今天这篇迟到的文章,来自我的同事Aviva。去年SAPC4HANA发布之后,SAP的从业者们可能或多或少都读过一些来自SAP官方渠道,比如微信公众号&amp;quot;SA ... [详细]
  • 《构建高可用Linux服务器(第4版)》已面市
    首先感谢读者朋友们一路支持和捧场,《构建高可用Linux服务器(第4版)》已面市,在当当、天猫华章和京东、互动出版网及亚马逊 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • AndroidWeeklyhttp:androidweekly.net这份免费的周报里面应有尽有,包括文章、教程、视频和Git ... [详细]
author-avatar
job2672488
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有