0%

qemu命令详解

一、qemu介绍

  • QEMU模拟器主要有两种比较常见的运作模式:User Mode(使用者模式)、System Mode(系统模式)。
  • User Mode模式下,用户只需要将各种不同平台的处理编译得到的Linux程序放在QEMU虚拟中运行即可,其他的事情全部由QEMU虚拟机来完成,不需要用户自定义内核和虚拟磁盘等文件;
  • System Mode模式下,最明显的特点是用户可以为QEMU虚拟机指定运行的内核或者虚拟硬盘等文件,简单来说系统模式下QEMU虚拟机是可根据用户的要求配置的。

1. 快捷键

  • ctrl + alt + 2: 进入到qemu的monitor内,可以对虚拟机进行调试

二、系统模式

1. 实战使用qemu安装启动aarch64的archlinux

1.1. 创建虚拟磁盘镜像

1
qemu-img create archlinux-aarch64.img 30G

1.2. 下载最新archlinux的iso镜像

1
wget https://mirror.tuna.tsinghua.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz

1.3. 启动虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
qemu-system-aarch64 \
-m 2048 \
-cpu host \
-smp 2 \
-bios QEMU_EFI.fd \
-nographic \
-drive if=none,file=ubuntu-16.04.3-server-arm64.iso,id=cdrom,media=cdrom \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom \
-drive if=none,file=archlinux-aarch64.img,id=hd0 \
-device virtio-blk-device,drive=hd0

qemu-system-aarch64 \
-M virt \
-cpu cortex-a57 \
-kernel archlinux-aarch64/boot/Image \
-initrd archlinux-aarch64/boot/initramfs-linux.img \
-nographic
# -M virt \

(1) 选项解释

  • -m 2048: 使用2048M的内存
  • -cpu host: 使用宿主机类型的cpu,完全使用宿主机的特性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 使用下面命令可以查看支持的cpu类型
=> qemu-system-aarch64 -cpu help
Available CPUs:
a64fx
arm1026
arm1136
arm1136-r2
arm1176
arm11mpcore
arm926
arm946
cortex-a15
cortex-a53
cortex-a57
cortex-a7
cortex-a72
cortex-a8
cortex-a9
cortex-m0
cortex-m3
cortex-m33
cortex-m4
cortex-m55
cortex-m7
cortex-r5
cortex-r5f
host
max
pxa250
pxa255
pxa260
pxa261
pxa262
pxa270-a0
pxa270-a1
pxa270
pxa270-b0
pxa270-b1
pxa270-c0
pxa270-c5
sa1100
sa1110
ti925t
  • -smp 2: 设置客户机总共有2个逻辑CPU,并设置了其中CPU socket的数量、每个socket上核心(core)的数量、每个核心上的线程(thread)数量。其中:

$$
n = sockets \times cores \times threads
$$

1
2
3
4
5
6
7
8
=> qemu-system-aarch64 -smp help
smp-opts options:
cores=<num>
cpus=<num>
dies=<num>
maxcpus=<num>
sockets=<num>
threads=<num>
  • -hda-hdb-cdrom: 设置客户机的 IDE 磁盘和光盘设备。如 -hda centos7.imgcentos7.img 镜像文件作为客户机的第一个 IDE 磁盘。
  • -drive: 详细的配置一个驱动。
1
2
# 使用 virtio_blk 驱动 和 磁盘回写机制 来支持该磁盘文件
-drive file=/images/centos7.img,if=virtio,cache=writeback
  • -boot: 设置客户机启动的各种选项(包括启动顺序等),如:在安装客户机操作系统时,使用 -boot order=dc -hda centos7.img -cdrom centos7.iso,让 centos.img 文件作为IDE磁盘,安装光盘 centos7.iso 作为 IDE 光驱,并且从光盘启动客户机,从而让客户机进入到系统安装的流程中。
1
-boot [order=drives][,once=drives][,menu=on|off]