Linux下qemu的使用

本文详细介绍了如何在RedflagWorkstation环境下使用qemu创建2GB大小的虚拟机磁盘,配置虚拟机启动、内存、音频、时间和网络设置,以及如何在安装过程中进行换盘操作和网络配置。通过使用图形界面启动器qemu-launcher,用户可以方便地设置虚拟机参数并完成WinXP的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虚拟机qemu的使用

Redflag Workstation 下已经带了qemu

#qemu-img create windows.img 2G #这个就是创建虚拟机磁盘,2G大小

#qemu -hda windows.img -cdrom /dev/acd0 -boot d -m 512 -enable-audio -localtime

-hda 是指定硬盘

-cdrom 指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径

-m 是指定虚拟机使用的内存大小,如512M

-boot 指定虚拟机启动用的设备,-boot后可以选择的参数是 a ,c ,d .其中a 是指从软盘启动,c 就是用硬盘启动,d 是光驱启动。

-enable-audio

-localtime 使用实际主板bios上的时间。

应该可以顺利的进入虚拟机了,并开始安装了。

Redflag Workstation 下已经带了qemu

#qemu-img create windows.img 2G #这个就是创建虚拟机磁盘,2G大小

#qemu -hda windows.img -cdrom /dev/acd0 -boot d -m 512 -enable-audio -localtime

-hda 是指定硬盘

-cdrom 指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径

-m 是指定虚拟机使用的内存大小,如512M

-boot 指定虚拟机启动用的设备,-boot后可以选择的参数是 a ,c ,d .其中a 是指从软盘启动,c 就是用硬盘启动,d 当然就是光驱启动了。

-enable-audio

-localtime 使用实际主板bios上的时间。

应该可以顺利的进入虚拟机了,并开始安装了。

安装过程中,要求换盘: 在qemu中按ctrl+alt+2切换到qemu monitor模式 输入?或help可以查看可用命令及使用说明。 (在其他版本的qemu中,运行qemu加载OS后,这个shell就会自动变成qemu monitor模式)

change device filename — change a removable media

如change cdrom /tmp/xp1.iso

常用的快捷键:

ctrl+alt+F 全屏切换

ctrl+alt 鼠标在虚拟机和主机间切换
虚拟机上网设置两种方式:

1. user mode network :
这种方式实现虚拟机上网很简单,类似vmware里的nat,qemu启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。

2. tap/tun network :
这种方式要比user mode复杂一些,但是设置好后 虚拟机互联网 虚拟机主机 通信都很容易
这种方式设置上类似vmware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.

前提:

首先内核中支持tap/tuns设备:
Device Drivers —>
Networking support —>
[M] Universal TUN/TAP device driver support

在Redflag Workstation中已经有了支持

如果没有编译内核模块:make modules

将它cp到当前内核的模块目录的相应位置:
cp /usr/src/linux/drivers/net/tun.ko /lib/modules/`uname -r`/kernel/drivers/net
重新建立模块依赖关系:
depmod

再加载就OK了

如果成功了应该存在设备文件 /dev/net/tun

若使用这种方式需要以下几步:
a.需要一个tun/tap的初始化脚本 :
/etc/qemu-ifup :
#!/bin/sh
/sbin/ifconfig $1 172.20.0.1

再给予qemu-ifup x执行权限放在/etc下就可以了,这是有qemu自动执行的
这个脚本只能root用户执行,如果需要普通用户使用qemu,就需要改成sudo /sbin/ifconfig …..再设置sudo相关权限。 启动qemu后,它会在主机上增加一块虚拟网络设备(tun0)

b.设置虚拟机网络参数

和vmware host-only一样:
ip与tun0相同网段,gateway为tun0 ip 其余参数与tun0相同,dns与主机相同:
tun0 : ip :172.20.0.1 broadcast:172.20.255.255 netmask :255.255.0.0
qemu : ip :172.20.0.100 broadcast:172.20.255.255 netmask :255.255.0.0 gateway:172.20.0.1

与host-only一样,这样只实现了虚拟机主机间通信,还需要设置router,nat才可以连上互联网
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 172.20.0.0/24 -j MASQUERADE

图形界面的使用:

首先安装qemu
我使用Debian, 一句apt-get install qemu命令即可安装, 或者你使用其它的方法.

安装qemu的图形界面前端qemu-laucher
因为我也不是完全的命令行爱好者, 所以我安装qemu-laucher来启动运行qemu. 见截图:

设置qemu, 安装WinXP
从桌面菜单启动qemu-launcher后, 1. 取消Snapshot Mode, 因为这个选项表示只有你按Ctrl+a s后才将虚拟机的运行结果写入虚拟机的磁盘文件.

2.选中Use CD-ROM, 因为我们需要光驱安装操作系统.

3. 在Hard Disk 0 一栏里填入你的虚拟磁盘在Linux下的文件, 只需要填入, qemu自会创建.

4. 默认内存为128MB, 你可以设置为192MB. 太大了qemu会无法运行虚拟机.

5. CPU, 声卡, 显卡等设置

### QEMU简介 QEMU是一个开源的硬件虚拟化工具,能够模拟多种计算机体系结构并提供全系统仿真功能[^1]。对于希望在Linux平台上运行不同操作系统环境或测试新内核版本的研究人员和开发者来说非常有用。 ### 安装QEMU 大多数现代Linux发行版都自带了QEMU包管理器可以直接安装: ```bash sudo apt-get install qemu-system-x86_64 # Debian/Ubuntu系 sudo yum install qemu-kvm # RedHat/CentOS/Fedora系 ``` 如果想要获取最新特性,则可以从源码编译安装最新的稳定版本[^2]。 ### 启动简单虚拟机实例 为了启动一个简单的基于硬盘镜像文件(如`example.img`)创建好的Guest OS,在命令行输入如下指令即可: ```bash qemu-system-x86_64 -m 1024 -hda example.img ``` 这里指定了内存大小为1GB(-m参数),并且加载了一个预先准备过的磁盘映射作为主要存储设备(-hda参数)。 ### 使用图形界面管理工具 除了通过CLI方式操作外,还可以借助GUI应用程序来简化配置过程。Virt-manager就是一个很好的例子,它提供了直观易用的操作面板用于管理和监控KVM/QEMU虚拟机的状态变化情况。 ```bash sudo apt-get install virt-manager # Debian/Ubuntu系 sudo yum install virt-manager # RedHat/CentOS/Fedora系 ``` ### 调试与性能分析 当遇到问题时可以启用跟踪机制以便更好地理解内部工作流程以及定位潜在错误所在位置。QEMU支持多个追踪后端选项(nop,dtrace,ftrace等),其中ftrace特别适合于记录函数调用序列从而辅助开发调试活动[^4]。 ### 高级网络设置 利用TAP/TUN接口配合桥接模式实现宿主机与其他guest之间透明通信;或者采用NAT方案让后者访问外部互联网资源变得更为便捷高效。具体做法可参阅官方文档中的联网章节获得更详细的指导说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值