上一部分2.安装
世界您好
通常,您希望启动具有 ArchLinux 等操作系统的 QEMU 机器。但是,在此之前,我们需要学习更多。请耐心等待,我们会到达那里的!现在,让我们通过启动 Linux 内核映像来运行一个简单的“Hello World”QEMU 机器。
内核映像
每个 Linux 内核的构建方式都不同,具体取决于平台/需求。我们将使用一个更“通用”的内核映像,这些内核映像取自 Debian 的存储库。
您可以选择构建自己的内核或查找其他 Linux 内核映像(Oracle、ArchLinux 等)。不过,这里使用的 Debian 内核非常好且通用。
其它相关教程
linux程序设计与安全开发
恶意软件开发
二进制漏洞
windows网络安全防火墙与虚拟网卡(更新完成)
windows文件过滤(更新完成)
USB过滤(更新完成)
游戏安全(更新中)
ios逆向
windbg
还有很多免费教程(限学员)
更多详细内容添加作者微信
第 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 + A
X
第 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
第 5 步 — 终止机器 /w 显示(可选)
QEMU 将鼠标困在显示屏内。按 松开它。然后,只需关闭 QEMU 窗口即可终止它!CTRL + ALT + G
💚 如果 Linux 内核以恐慌告终,那么恭喜!💚
🔴 如果 QEMU 以某种方式无法启动,请随时与我联系或创建问题。🔴
工具/二进制文件
QEMU 提供了许多用于创建、配置和“启动”机器的功能。我称它们为工具,但实际上,它们都是.为简单起见,假设 a 只是一个可执行文件。tools
binaries
tool
binary
在这里列出和解释所有这些是不切实际的。为此,只列出了最受欢迎和最常用的。谁知道呢,也许我将来会记录其他的:)tools
如果您 支持完成,那么您可以通过键入 并按 !
shell
qemu-
Tab
QEMU-IMG型
允许您创建、转换和修改磁盘映像。2 它支持多种图像格式,例如:、 和 。后一种格式是QEMU机器所特有的。它是 QEMU Copy-on-Write 2 的缩写。VDI
VMDK
raw
qcow2
qcow2
映像最初在磁盘上占用的空间非常小,但随着客户机操作系统在其上写入数据,它会动态增长。这样,您的 QEMU 计算机 /w 500GiB 磁盘空间实际上不会占用 500GiB。这太神奇了,不是吗!~200KB
现在,让我们回顾一下 .qemu-img
创造
使用以下命令创建新的磁盘映像:
$ qemu-img create [options]
例:
$ qemu-img create -f qcow2 disk0.qcow2 64G
上面的示例创建一个磁盘映像,其文件类型和大小名为 。这是 最微不足道的用法。qcow2
64G
disk0.qcow2
qemu-img
转换
不同的虚拟机使用不同的磁盘映像格式。流行的,如用途和 VMWare 用途。虽然,QEMU 支持这两种格式,但首选格式。因此,您可以使用从支持的格式转换为,反之亦然。VirtualBox
VDI
VMDK
qcow2
qemu-img
qcow2
我认为我不需要解释这有多大用处>.<
使用以下命令在磁盘映像格式之间进行转换:
$ 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中主要也是最常用的之一。 用于运行模拟/虚拟机。大多数情况下,您将使用它来启动您的机器。3binary
qemu-system-x86_64
是 许多其他 .它后面通常跟着一个体系结构名称,如: 和 . 它们中的每一个都有不同的选项和配置。4
qemu-system-*
binaries
aarch64
riscv64
极其简化的用法: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,但用于架构。这意味着 和 之间的大多数配置设置都是相同的。唯一的区别是 和 选项的可用性。AARCH64
qemu-system-aarch64
qemu-system-x86_64
-machine
-cpu
这个伪维基中的所有内容都适用于 和 。因此,您可以按照操作而不必担心使用哪一个。qemu-system-aarch64
qemu-system-x86_64
我将在整个伪维基中使用它们。但是,请随意使用您喜欢的任何一种!
如果您已经为主赛事做好了准备,那就开始吧!
原文始发于微信公众号(安全狗的自我修养):QEMU ELI5 — 第 3 部分,Hello World
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论