QEMU 快速使用指南 (译) ******************

本文翻译自 Linux for You 网站的文章,介绍了QEMU的基础使用、操作系统安装和网络设置。首先从源码安装QEMU,接着创建虚拟机并安装Ubuntu,最后设置QEMU的网络连接,通过TAP设备实现网络桥接。

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

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 的网络设置 以及 利用 QEMU 针对 ARM 架构进行嵌入式开发。下面我们从 QEMU 基础开始我们的第一部分。

当我最初使用电脑的时候,我惊呆了。只需要点一下鼠标就能放音乐、看电影、玩游戏,这对于当时的我来说很神奇。时过变迁,我了解了编译和代码。我的好奇心激起了我对代码热情。即使已经编译好的软件包越来越容易获取,但我还是倾向于源码安装。我对 QEMU 就这么做。
QEMU 是最好的模拟器之一。当然,仍然没有多少人能够物尽其用。本篇文章内容比较基础,但是可以期待在后面有一些有趣的东西。

源码安装 QEMU

第一步,下载 QEMU 源码;目前最新版本是 0.14,这里有下载地址。解压源码包,进入 QEMU 目录:

1
2
$ tar -zxvf qemu-0.14.0. tar .gz
$ cd qemu-0.14.0

运行配置脚本。我们将针对 i386 架构进行编译。 (它也可为其他架构编译,如 ARM、PPC、SPARC 等。) 接下来我们要在虚拟机里面安装 Ubuntu 发行版——这就是我们为什么选择针对 i386 架构编译 QEMU:

1
$ . /configure –target-list=i386-softmmu

希望你在运行 configure 脚本的时候没有碰到什么错误。如果出现问题,可能是因为缺少了某个库或者头文件。去找到它然后安装就能解决问题。

当 configure 脚本执行完毕,使用 make 命令编译代码。编译完成后,QEMU 的二进制文件应该安装到合适的位置。在我的 Fedora 系统上,我使用 su 命令来获得必要的 root 权限,然后使用 make install 来安装。

使用 qemu 命令来检查一下 QEMU 是否安装成功,如果运行时弹出一个像图1一样的窗口那么说明安装成功。

Install-Test
图1:测试QEMU的安装

创建新虚拟机

如果你熟悉其他的虚拟化软件,你可能好奇如何使用 QEMU 创建一个新的虚拟机。第一步是为虚拟机创建一个硬盘镜像。然后就可以安装 Ubuntu 9.10 了;这里我们创建一个 10GB 的硬盘镜像就足够了。使用以下命令创建:

</
1
2
3
$ qemu-img create ubuntu.img 10G
$ ls -lh ubuntu.img
-rw-r--r--. 1 root root 10G Mar 11 11:54 ubuntu.img
<think>好的,我现在需要帮助用户理解“*redir”在编程或技术上下文中的含义。首先,用户的问题是关于“*redir”是什么意思,可能是在某个具体的代码或文档中看到这个术语,需要解释。 首先,我需要确定“redir”可能的全称和常见用法。通常,“redir”可能是“redirect”的缩写,即重定向。在编程和技术领域中,重定向通常指的是将输入、输出或错误流从一个地方导向另一个地方,比如从文件到程序,或者从程序到文件。 接下来,考虑“*redir”中的星号(*)可能代表什么。星号在编程中有多种含义,例如通配符、指针(在C/C++中)、或者乘法运算符。在重定向的上下文中,可能涉及到通配符扩展,或者在特定语法中表示某种模式。 可能的场景包括: 1. Shell脚本中的重定向:例如,使用*>将标准输出和错误都重定向到文件,但通常写法是2>&1或者&>。 2. 编程语言中的指针:比如在C中,*redir可能是指向某个重定向结构体的指针。 3. 配置文件或特定工具中的语法:比如某些工具使用*redir作为关键字参数,表示某种重定向规则。 需要进一步验证这些可能性。在Shell中,常见的重定向符号包括>, >>, <, 2>等,而*>这样的写法并不标准。可能用户看到的*redir是某个特定框架或工具中的变量名,比如使用*作为通配符,或者表示多个重定向。 另外,考虑到用户提供的引用内容中有提到QEMU、KVM相关的信息,可能“redir”与虚拟化环境中的端口重定向有关。例如,在QEMU中,使用-redir选项进行端口重定向,如将宿主机的端口转发到客户机。例如,命令中的-redir tcp:8080::80可能将宿主机的8080端口重定向到客户机的80端口。这里的语法可能使用*redir来表示某种模式或参数。 此外,在编程中,比如使用某些库或框架时,可能会有类似*redir的变量或函数,用于处理重定向逻辑。例如,在Python的subprocess模块中,可能会设置stdout=subprocess.PIPE来重定向输出,但这里并没有直接使用*redir。 需要综合这些可能性,向用户解释不同的上下文下可能的含义,并询问是否有更多上下文信息以缩小范围。同时,提供常见的用例,如Shell重定向、编程中的指针或变量名、虚拟化工具中的端口转发等。 最后,确保回答结构清晰,分点说明可能的情况,并引用相关参考资料中的信息,比如用户提到的QEMU中的-redir选项可能是一个关键点,需要提及。</think>在编程或技术上下文中,*redir 的含义需根据具体场景分析,以下是常见的可能性: ### 1. Shell脚本中的通配符重定向 在Linux/Unix shell中,`*`是通配符,`redir`可能是自定义的重定向操作。例如: ```bash ./program *redir> output.txt # 将匹配"redir"结尾文件的内容重定向 ``` 但这种写法非常规,更常见的标准重定向为: - `>` 覆盖写入文件 - `>>` 追加写入文件 - `2>` 错误流重定向 ### 2. 虚拟化/容器中的端口转发 在**QEMU/KVM**等虚拟化工具中,`-redir`参数用于端口重定向[^1],例如: ```bash qemu-system-x86_64 -redir tcp:2222::22 # 将宿主机2222端口映射到虚拟机22端口(SSH) ``` 这里的`*redir`可能是参数模式匹配(如`-redir`前缀的多个参数)。 ### 3. 编程语言中的指针或变量名 - 在**C/C++**中,`*redir`可能表示指针变量: ```c FILE *redir = fopen("output.txt", "w"); // 文件操作指针 ``` - 在**Python**等语言中可能是对象属性名: ```python class Process: def __init__(self): self.redir = sys.stdout # 重定向输出流 ``` ### 4. 配置文件中的关键字 某些工具(如Apache/Nginx)可能用`*redir`表示通配符重定向规则: ```nginx location ~* \.redir$ { # 匹配以.redir结尾的URL return 301 /new-path; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值