QEMU简单教程(不断更新中...)

QEMU 快速使用指南 (译) ****************** https://prettyxw.com/article/2014/02/14/the-quick-guide-to-qemu-setup-translate/   本文翻译自 Linux for You 网站上的文章 The Quick Guide to QEMU Setup (2011.5) 正文如下 在接下来的一系列文章中,我们将逐一介绍 QEMU 的基本使用、操作系统安装 阅读详情

QEMU是一个开源的虚拟机和模拟器,由法国天才程序员Fabrice Bellard  所开发,可以模拟不同的处理器架构(x86,server and embedded PowerPC, and S390 guests)。官网为 http://wiki.qemu.org/Main_Page

KVM是构建在QEMU之上的虚拟机,其本身主要是一个Linux内核模块,只不过了整合了QEMU,目前受到Redhat公司的专门支持,是一个被相当看好的虚拟化项目,与Xen相比貌似有很多独特的优势。

kvm内核模块可以使QEMU虚拟机的运行速度接近于主机,但要有硬件上的支持,即CPU具有虚拟扩展(Intel VT or AMD-V)。官网为 http://www.linux-kvm.org/page/Main_Page

jimmy@ubuntu:~$ grep '(vmx|svm)' /proc/cpuinfo
查看cpu是否支持虚拟化,不支持也可以使用qemu,只不过没有qemu-kvm加速

jimmy@ubuntu:~$ sudo apt-get install qemu
ubuntu 12.04对应的版本为1.0,默认kvm加速模块也安装好了


jimmy@ubuntu:~$ mkdir images
jimmy@ubuntu:~/images$ cd images

jimmy@ubuntu:~/images$ qemu-img create -f qcow2 winxp_sp2.img 10G
创建格式为qcow2大小为10G的虚拟硬盘

jimmy@ubuntu:~/images$ qemu-system-i386 -h 
查看可用的命令参数

jimmy@ubuntu:~/images$ sudo qemu-system-i386 -hda ./winxp_sp2.img -cdrom ./WindowsXP_SP2.iso -localtime -boot d -m 512 -smp 2
系统镜像WindowsXP_SP2.iso已放在目录images中,如果安装的虚拟机是64位,则选择qemu-system-x86_64
-hda dev	指定虚拟硬盘,这里用我们刚刚创建的winxp_sp2.img
-cdrom dev	使用光盘镜像,如果要使用物理光驱的话就是 -cdrom /dev/cdrom
-localtime	使用本地时间,虚拟机时间和主机一致
-boot d	从光盘启动 (第一次安装系统要从光盘启动,从硬盘启动则为 -boot c )
-m 512	指定虚拟机使用的内存大小
-smp 2	指定处理器个数为2个(如果不开启此选项,则只能以单核模式运行)
还可加参数 -monitor stdio 将console窗口重定向到标准输出,即终端界面

jimmy@ubuntu:~/images$ sudo qemu-system-i386 ./winxp_sp2.img.img -m 512 
进入虚拟机后,可以使用快捷键
crtl+alt+f	切换为全屏
crtl+alt+2	切换到console界面
crtl+alt+1	切换回虚拟机
crtl+alt	从虚拟机中切出来(解除鼠标和键盘绑定,和VMware一样)

在ubuntu 12.04下安装qemu之后发现,kvm和kvm-img命令也可用,kvm链接到qemu-system-x86_64,kvm-img链接到qemu-img.

安装的kvm内核模块位于/lib/modules/3.2.0-23-generic-ape/kernel/arch/x86/kvm/.

qemu启动虚拟机默认采用的网络连接模式是NAT,虚拟机的IP为10.0.2.15,网关为10.0.2.2,在资源管理器输入\\10.0.2.2可以看到主机共享的文件夹

如果要采用网桥连接模式,配置如下:

#设置tun设备权限
su
chown root.usergroup /dev/net/tun 
chmod g+rw /dev/net/tun

#添加网桥br0
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0

# 创建tap0
apt-get install uml-utilities
tunctl -t tap0 -u username

# 启动tap0
brctl addif br0 tap0
ifconfig tap0 up 

#查看可用的虚拟网卡
qemu-system-i386 -net nic,model=? 
可以看到: Supported NIC models: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

#退出root后以网桥模式启动
qemu-system-i386 ./winxp_sp2.img.img -net nic,model=rtl8139 -net tap

其中usergroup和username要设置成自己所使用的。

如果出现could not configure /dev/net/tun: Operation not permitted的问题,那就还是以root权限启动qemu。

进入虚拟机后会发现现在ip地址和主机是一个网段了。

参考自:http://stackoverflow.com/questions/4462799/how-does-work-network-in-qemus-guest-os

-----------------------------分割线-------------------------------------

QEMU用户文档:http://qemu.weilnetz.de/qemu-doc.html

非常全面地讲解QEMU的用法,尤其值得注意的是:

3.5 QEMU Monitor

3.6 Disk Images

-----------------------------分割线-------------------------------------

创建快照镜像snapshot.img(以winxp_sp2.img 为原始镜像,要为qcow2格式):

qemu-img create -f qcow2 -b winxp_sp2.img snapshot.img

查看快照镜像信息:

qemu-img info snapshot.img

如果从快照镜像启动:

qemu-system-i386 snapshot.img  

那么对系统的更改只会保存在快照镜像中,原始镜像不会改动。但对原始镜像的改动会影响快照镜像。

也可以创建临时快照:

qemu-system-i386 winxp_sp2.img -snapshot 

加-snapshot参数后,启动虚拟机后对系统的更改不会保存到原始镜像winxp_sp2.img,所以关闭后对系统的改动就丢失了

另外,进入系统后还可以在终端用命令savevm和loadvm分别创建和恢复多个快照,会保存在镜像文件中,下次启动就可以使用参数-loadvm,但是不能同时使用-snapshot,不然loadvm参数不起作用。

-----------------------------分割线-------------------------------------

其他有用的参考:

Ubuntu论坛置顶贴,详细讲解了怎么配置kvm的网桥连接

UbuntuWiki KVM教程:http://wiki.ubuntu.org.cn/Kvm%E6%95%99%E7%A8%8B

虚拟化之QEMU与KVM :http://blog.chinaunix.net/uid-23769728-id-3256677.html

这里对kvm虚拟机与主机的运行速度进行了简单的对比,可以有一个感性认识。

这里非常详细地讲解kvm,博主计划出书。

QEMU的快捷键 QEMU与kvm大家都熟知,但是QEMU的操作却不是很直观,这里是其快捷键列表 立即下载

相关推荐

baostock实战:如何用Python批量下载多只股票的历史数据(含常见错误排查)

本文详细介绍了如何使用Python和baostock库批量下载多只股票的历史数据。内容涵盖从环境搭建、代码标准化到构建稳健的批量下载框架的全过程,并重点提供了高级错误处理、网络重试、数据验证及内存管理等实战解决方案,帮助用户高效构建股票数据处理流水线。

nice1的博客 1061

(2023)从零开始用qemu搭建虚拟arm环境

在以上的操作步骤中,我们把一个ARM系统在启动应用程序之前,所需要的程序都手动编译、操作了一遍。看一遍很容易就明白,亲手操作一遍印象会更深刻。这里的操作过程有些还需要继续深入,比如:在系统启动之后,自动挂载宿主机(Ubuntu系统)中的某个文件夹,这样就可以把hello等可执行程序复制到挂载目录中,然后在ARM系统中直接执行了,而不用再执行下面在一连串的操作(停止虚拟机-挂载磁盘镜像-复制文件-卸载-启动虚拟机)。

NosONE 2万+

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9792

linux qemu 使用方法

目录 一、QEMU的运行模式 二、QEMU在使用者模式下执行程序 三、QEMU的系统模式使用 一、QEMU的运行模式 直接摘抄自己《揭秘家用路由器0day漏洞挖掘技术》,网上查了一下也没有找到令人满意的QEMU的使用说明,就采用这本书上的介绍。如果后期能够找到比较满意的QEMU的使用方法的说明,再添加上来。 QEMU模拟器主要有两种比较常见的运作模式:User Mode(使用者模式)、System Mode(系统模式)。User Mode模式下,用户只需要将各种不同平台的处理编译得到的Lin

whatday的专栏 1万+

VerilogEval实战指南:从基准测试到模型微调的全流程解析

本文提供了VerilogEval实战指南,详细解析了从基准测试到模型微调的全流程。VerilogEval是一个自动化、标准化的测试框架,用于客观评估大语言模型生成Verilog硬件代码的能力。文章涵盖了环境搭建、核心机制解析、利用其生成合成数据进行模型微调的策略,以及如何将其工程化集成到自动化评估流程中,为硬件设计领域的AI应用提供了完整的方法论。

yy01234的博客 999

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

qemu的详细资料大全(入门必看!!!)

qemu是一个虚拟机,或者说是模拟器,类似VMware。主要对单片机或者嵌入式常用的一些处理器模拟,嵌入式开发中使用广泛,比如arm,sparc,riscv等架构处理器。对于每种架构处理器的模拟,qemu都是一个单独的exe,比如(它里面会细分为具体的arm处理器,比如cortex-m内核,cortex-a内核)riscv的:QEMU。..............................

biao2488890051的博客 7万+

基于深度学习的AI生成式人脸图像鉴别

AIGC(AI内容生成)技术的快速发展确实为创作者提供了高效生产力工具,但同时也引发了一些问题和挑战。这些技术可以生成以假乱真的图像、视频换脸等,给不法分子提供了滥用的机会。其中,一些不法分子可能利用AIGC技术制造虚假新闻、违反版权、绕过活体身份验证、散布谣言和诽谤他人、进行敲诈勒索等非法活动,以谋取不当利益。这些行为给社会造成了严重的负面影响,破坏了信息的真实性和可信度。因此,我们需要认识到AIGC技术的潜在风险,并采取相应的措施来应对。

mingo_敏 4490

使用 qemu 模拟和调试不同架构的二进制程序

笔者之前也写过 qemu 类似的博客,但是发现以前对 qemu 理解并不深刻,并且有些方法已经过时,在此重新更新一版,并且覆盖了使用 qemu 的各种场景。我们的目的只有一个,模拟固件中的单个二进制程序。本篇博客会讲述各种场景下,使用 qemu 来运行和调试二进制程序,涵盖了 qemu 所有主流的用法。

个人笔记 8108

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

WW、forever的博客 260

如何利用gretna软件计算脑网络全局属性(聚类系数,小世界属性,最短路径),局部属性指标(度,度分布,节点效率),如何理解网络稀疏度

grena工具箱被设计用于fMRI数据的图论网络分析。它是一套MATLAB函数和基于MATLAB的接口,用于常规的fMRI预处理,用于计算和统计分析最常用的网络指标,如小世界参数、效率、度、间性、关联性、层级性、同步性和模块化。......

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9169

Qemu 逃逸基础知识

QEMU 与 KVM 的完整架构如下图所示。其中 VMX root 和 VMX non-root 都是 CPU 引入了支持硬件虚拟化的指令集 VT-x 之后出现的概念。虚拟机在 VMX root 模式和 VMX non-root 模式下都有 ring 0 到 ring 3 四个特权级别。

sky123博客 2774

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

qemu内存管理——扁平视图

qemu为了模拟虚机内存,必须对虚拟机的内存地址空间进行管理,当内存拓扑发生变化时qemu模拟的内存映像需要随之调整。本文主要介绍为了管理虚机内存的地址空间,qemu设计的FlatView和FlagRange数据结构

Take Easy,Work Hard! 2300

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

实践:qemu 运行 linux riscv with AIA(APLIC&IMSIC)

但我在文中提供的仓库中,未发现 patch 文件(仅找到了对比,如果一个一个复制粘贴则太多了,也可能是我的方式不正确),索性直接下载其源代码。这些补丁也可在 riscv_aia_v14 分支中找到,网址是:https://github.com/avpatel/linux。这里我使用了ubuntu-base的文件系统,如果有需要可以参考我之前的博客,或者使用其他文件系统也可以。按照前文内容,在 Linux-6.8-rc5 的基础上,添加相应的patch即可。,直接下载 riscv_aia_v14分支的代码。

jingyu_1的博客 2395

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

QEMU-KVM中关键的入口代码以及意义(不断更新中)

kvm_arch_vcpu_ioctl_run:运行虚拟机 kvm_queue_exception: 向VM中注入EXCEPTION

六六哥的博客 1663

xnu-qemu-arm64未来展望:iOS内核研究工具的发展趋势与路线图

xnu-qemu-arm64作为一款专注于iOS内核研究的开源工具,为开发者和研究人员提供了在ARM64架构下模拟和调试XNU内核的强大能力。随着iOS系统的不断更新和安全机制的增强,该工具正朝着更高效、更全面的方向发展,未来将在功能扩展、性能优化和生态建设等方面迎来重要突破。 ## 一、核心功能升级:打造更强大的内核调试环境 ### 1. 多版本iOS内核支持 目前,xnu-qemu-arm

gitblog_00495的博客 346

KVM学习笔记不断更新中

1.镜像格式 目前比较主流的虚拟化镜像格式 qcow2,raw,vmdk 1.raw格式 虚拟化默认的格式,也可以叫做裸格式,性能没得说,可以直接挂载,支持转换成其它格式的虚拟机镜像(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用 来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了(copy镜像的时...

Genius_少斌 359

好文汇总(不断更新)

好文收集 网络 路由:https://blog.csdn.net/lickylin/article/details/38326719 内存 英文电子书:https://www.kernel.org/doc/gorman/html/understand/index.html 内存源码:https://www.cnblogs.com/tolimit/ 内存、中断、时钟、...

hzj_001的博客 357

PrawnOS 开源项目教程

PrawnOS 开源项目教程 1. 项目介绍 PrawnOS 是一个为 ARM 笔记本电脑设计的自由和开源操作系统。它基于 Debian,旨在提供一个隐私和自由为中心的操作系统体验。PrawnOS 支持多种 ARM 设备,并且不断更新以提供最新的功能和安全补丁。 2. 项目快速启动 2.1 环境准备 在开始之前,请确保你的系统满足以下要求: 操作系统:Debian 11 Buster 或更高版本...

gitblog_00641的博客 353

欢迎来到Linux世界,构建你的第一个简单Linux操作系统!(不断更新中,欢迎加入创作)

目录 #基础知识 ##bois 、EFI 和UEFI介绍 ##grub介绍 ##硬盘设备与分区文件格式的介绍 ##linux常用工具介绍 ###git ###gpg ###qemu工具集 ###构建工具集 #构建您的Linux系统 ##Linux启动流程 ##创建您的开发环境 ##编译您的内核 ##创建您的overlay层 ##发布您的系...

幸福驿站-海岸 444

macOS虚拟化革命:OSX-KVM如何突破Apple硬件限制

OSX-KVM是一个强大的开源项目,它让你能够在普通的Linux计算机上运行macOS系统,彻底摆脱了Apple硬件的限制。无论你是开发者需要macOS环境进行测试,还是普通用户想体验macOS,这个工具都能满足你的需求。 ## 什么是OSX-KVM? OSX-KVM是一个基于QEMU/KVM的macOS虚拟化解决方案。它通过OpenCore引导程序,让你能够在非Apple硬件上安装和运行多个

gitblog_00747的博客 1126

android studio 1.4 开发错误记录 -不断更新

记录开发中遇到的问题,不断更新 1.AVD模拟器启动卡在android界面: 原因:手动设置了internal storage大小。目前AVD的bug。 创建模拟器时internal storage不要修改,否则启动不了;即使启动的了,修改的容积也不会发生变化。 即看配置的时候已经变成例如1G,实际上启动起来到adroid系统中看还是默认的200m。 解决方案:创建模拟器时保持...

weixin_30405421的博客 200

终极解决OSX-KVM音频延迟问题:3步实现流畅音频体验

在QEMU/KVM虚拟化环境中运行macOS系统,OSX-KVM项目为开发者提供了强大的macOS虚拟化解决方案。然而,音频延迟问题一直是困扰用户的痛点,特别是在视频会议、音乐制作和实时音频处理场景中。本文将为您提供一套完整的音频延迟优化方案,通过USB音频设备直通技术,彻底解决OSX-KVM的音频延迟问题,让您的虚拟macOS系统拥有接近原生的音频体验。 ## 🔍 痛点识别:为什么OSX-K

gitblog_00110的博客 438

Sloth:高效Android Native库模糊测试工具

Sloth:高效Android Native库模糊测试工具 项目介绍 Sloth 是一款专为Android Native库设计的模糊测试工具,它结合了 libFuzzer 和 QEMU 的用户模式仿真功能。通过在x86_64/aarch64主机上使用QEMU的用户模式仿真(qemu/linux-user),Sloth能够模拟aarch64 Android库,从而对目标Android Native库...

gitblog_01039的博客 1313
上一篇: asdfgasdg
下一篇: 模拟器和虚拟机的区别
tjhd1989
博客等级 码龄18年 38粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值