一、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.img
将 centos7.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]
|