QEMU ELI5 — 第 3 部分,Hello World

admin 2024年5月14日17:51:06评论8 views字数 3944阅读13分8秒阅读模式

QEMU ELI5 — 第 3 部分,Hello World

QEMU 但适合初学者 |第 3 部分 — Hello World

上一部分2.安装

世界您好

通常,您希望启动具有 ArchLinux 等操作系统的 QEMU 机器。但是,在此之前,我们需要学习更多。请耐心等待,我们会到达那里的!现在,让我们通过启动 Linux 内核映像来运行一个简单的“Hello World”QEMU 机器。

内核映像

每个 Linux 内核的构建方式都不同,具体取决于平台/需求。我们将使用一个更“通用”的内核映像,这些内核映像取自 Debian 的存储库。

您可以选择构建自己的内核或查找其他 Linux 内核映像(Oracle、ArchLinux 等)。不过,这里使用的 Debian 内核非常好且通用。

linux

QEMU ELI5 — 第 3 部分,Hello World

  • QEMU ELI5 — 第 3 部分,Hello World

  • QEMU ELI5 — 第 3 部分,Hello World

  • windows

  • QEMU ELI5 — 第 3 部分,Hello World

  • windows()

  • QEMU ELI5 — 第 3 部分,Hello World

  • USB()

  • QEMU ELI5 — 第 3 部分,Hello World

  • ()

  • QEMU ELI5 — 第 3 部分,Hello World

  • ios

  • QEMU ELI5 — 第 3 部分,Hello World

  • windbg

  • QEMU ELI5 — 第 3 部分,Hello World

  • ()

  • QEMU ELI5 — 第 3 部分,Hello WorldQEMU ELI5 — 第 3 部分,Hello WorldQEMU ELI5 — 第 3 部分,Hello World

  • QEMU ELI5 — 第 3 部分,Hello World

  • QEMU ELI5 — 第 3 部分,Hello World

  • QEMU ELI5 — 第 3 部分,Hello World

第 1 步 — 下载 Linux 内核

前往 Debian 的 FTP 存储库并下载适用于 ARM64 机器的 Linux 映像。
存储库:http://ftp.debian.org/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/
kernel

或者,在 GNU/Linux 或 macOS 上,使用:wget

$ wget http://ftp.debian.org/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux

或者,在 Windows 10/11 上,使用:Invoke-WebRequest

$ Invoke-WebRequest http://ftp.debian.org/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux -OutFile linux

第 2 步 — 启动qemu-system-aarch64

运行以下命令以启动带有选项的 QEMU 计算机:-nographic

$ qemu-system-aarch64 -machine virt -cpu cortex-a53 -kernel linux -nographic

QEMU 机器现在应该通过加载/启动 Linux 内核来启动!您[希望]在终端上看到的日志来自 Linux 内核。

我们的“Hello World”机器以内核崩溃结束,告诉我们它找不到要挂载的根文件系统

这是不言自明的。使用该选项,QEMU 机器连接到终端 stdio,并且不使用 GUI 启动。-nographic

第 3 步 — 终止本机

先按 然后按 终止本机。CTRL + AX

第 4 步 — 启动 /w 显示(可选)qemu-system-aarch64

直观地说,您希望您的机器有一个显示屏。在步骤 2 中,我们使用选项禁用了此行为。但是,通常 QEMU 会以显示器启动。如果您有桌面环境(像许多人一样),则可以使用显示器启动QEMu!-nographic

运行以下命令以启动带有显示器的 QEMU 计算机:

$ qemu-system-aarch64 -machine virt -cpu cortex-a53 -kernel linux

默认情况下,QEMU 显示 1.不要太担心,我们还没有到那一步!让我们切换控制台。QEMU Monitor

按下可切换到 Linux 内核。现在,我们可以看到与步骤 2 中看到的相同的日志!CTRL + ALT + 2

QEMU ELI5 — 第 3 部分,Hello World

第 5 步 — 终止机器 /w 显示(可选)

QEMU 将鼠标困在显示屏内。按 松开它。然后,只需关闭 QEMU 窗口即可终止它!CTRL + ALT + G

💚 如果 Linux 内核以恐慌告终,那么恭喜!💚
🔴 如果 QEMU 以某种方式无法启动,请随时与我联系或创建问题。🔴

工具/二进制文件

QEMU 提供了许多用于创建、配置和“启动”机器的功能。我称它们为工具,但实际上,它们都是.为简单起见,假设 a 只是一个可执行文件。toolsbinariestoolbinary

在这里列出和解释所有这些是不切实际的。为此,只列出了最受欢迎和最常用的。谁知道呢,也许我将来会记录其他的:)tools

如果您 支持完成,那么您可以通过键入 并按 shellqemu-Tab

QEMU-IMG型

允许您创建、转换和修改磁盘映像。2 它支持多种图像格式,例如:、 和 。后一种格式是QEMU机器所特有的。它是 QEMU Copy-on-Write 2 的缩写。VDIVMDKrawqcow2

qcow2映像最初在磁盘上占用的空间非常小,但随着客户机操作系统在其上写入数据,它会动态增长。这样,您的 QEMU 计算机 /w 500GiB 磁盘空间实际上不会占用 500GiB。这太神奇了,不是吗!~200KB

现在,让我们回顾一下 .qemu-img

创造

使用以下命令创建新的磁盘映像:

$ qemu-img create [options]

例:

$ qemu-img create -f qcow2 disk0.qcow2 64G

上面的示例创建一个磁盘映像,其文件类型和大小名为 。这是 最微不足道的用法。qcow264Gdisk0.qcow2qemu-img

转换

不同的虚拟机使用不同的磁盘映像格式。流行的,如用途和 VMWare 用途。虽然,QEMU 支持这两种格式,但首选格式。因此,您可以使用从支持的格式转换为,反之亦然。VirtualBoxVDIVMDKqcow2qemu-imgqcow2

我认为我不需要解释这有多大用处>.<

使用以下命令在磁盘映像格式之间进行转换:

$ qemu convert [options]

例:

$ qemu-img convert -f vdi -O qcow2 disk0.vdi disk0.qcow2

上面的示例只是将 VirtualBox 映像转换为 。-f vdi-O qcow2

检查

您可能需要检查并获取有关磁盘映像的一些信息。这对开发人员和一些好奇的人很有用。

我们可以使用许多命令来检查图像。 只是其中之一。info

使用以下命令获取有关图像的 [基本] 信息:

$ qemu-img info [options]

例:

$ qemu-img info disk0.qcow2
# Output can look like this
> image: disk0.qcow2
> file format: qcow2
> virtual size: 8 GiB (8589934592 bytes)
> disk size: 196 KiB
> cluster_size: 65536
> Format specific information:
> compression type: zlib
> ...
> corrupt: false
> Child node '/file':
> ...

qemu-system-x86_64

QEMU中主要也是最常用的之一。 用于运行模拟/虚拟机。大多数情况下,您将使用它来启动您的机器。3binaryqemu-system-x86_64

是 许多其他 .它后面通常跟着一个体系结构名称,如: 和 它们中的每一个都有不同的选项和配置。4qemu-system-*binariesaarch64riscv64

极其简化的用法:qemu-system-x86_64

$ qemu-system-x86_64 [options] [disk_image]

当您要启动计算机时,您需要指定选项。对于初学者来说,这可能会让人不知所措。您可能会发现自己会问以下问题:

  • 这些选项是什么?

  • 我应该指定哪些选项?

  • 什么是重要的?

  • 如果我不指定一个会怎样?

  • 为什么我们还在这里?

  • 我在哪里可以找到幸福?

要回答这些问题,我们需要回顾最常用的。从那里,您将全面了解如何使用 .qemu-system-x86_64

只是为了给出一个想法,这里有一个示例用法:

$ qemu-system-x86_64 
# Hardware Acceleration (Hypervisor)
-accel kvm
  # System Specs
-name MyFirstQemu
-m 2G
-cpu host
-smp 2
# Disks
-drive if=none,file=${INSTALL_IMAGE_PATH},format=qcow2,id=hd0
-device virtio-blk-device,drive=hd0,serial="main_disk"
-cdrom ${VM_DISK_PATH}
# Devices
-device usb-ehci
-device usb-kbd
-usb
# Network
-device virtio-net-device,netdev=net0
-netdev user,id=net0
# Display
-device virtio-gpu
-vga none
# Serial & Terminal
-serial stdio

qemu-系统-aarch64

类似于 qemu-system-x86_64,但用于架构。这意味着 和 之间的大多数配置设置都是相同的。唯一的区别是 和 选项的可用性。AARCH64qemu-system-aarch64qemu-system-x86_64-machine-cpu

这个伪维基中的所有内容都适用于 和 。因此,您可以按照操作而不必担心使用哪一个。qemu-system-aarch64qemu-system-x86_64

我将在整个伪维基中使用它们。但是,请随意使用您喜欢的任何一种!

如果您已经为主赛事做好了准备,那就开始吧!

原文始发于微信公众号(安全狗的自我修养):QEMU ELI5 — 第 3 部分,Hello World

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月14日17:51:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   QEMU ELI5 — 第 3 部分,Hello Worldhttps://cn-sec.com/archives/2738798.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息