本文旨在快速创建一个arm64环境用以测试arm64程序,只需模拟软件QEMU和一个ISO镜像即可,ISO安装到QEMU创建的虚拟机磁盘上即可移除。
0. 安装QEMU
主机:虚拟机中的 Ubuntu 2204,安装命令:
sudo apt update
sudo apt install qemu-system
qemu-system-aarch64 --version
如果要用 window 版本也有,进入 QEMU 官方 Windows build 站点: https://qemu.weilnetz.de/w64/,下载最新版(推荐使用带安装程序的 .exe),文件名如:qemu-w64-setup-20230825.exe。
1 下载 Alpine 官方 aarch64 镜像
Alpine 官方提供了多种 aarch64 镜像,包括标准镜像、虚拟镜像和网络引导镜像等:
-
标准镜像(Standard Image):这是 Alpine 的基本版本,只包含必要的组件,需要网络连接来完成安装和配置。
-
虚拟镜像(Virtual Image):针对虚拟机环境优化的版本,包含更适合虚拟化环境的内核和配置。
可以从 Alpine 官方下载站点获取最新的 aarch64 镜像: https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/aarch64/ ,网络不好可以从国内镜像站下载: https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/releases/aarch64/ ,当前最新版本的标准镜像为 :alpine-standard-3.22.1-aarch64.iso,建议下载标准镜像,因为它更通用且体积较小。
2 创建虚拟硬盘
在启动 Alpine 之前,需要创建一个虚拟硬盘来安装系统。使用 QEMU 提供的qemu-img工具创建一个 4GB 的 qcow2 格式虚拟硬盘:
qemu-img create -f qcow2 alpine-aarch64.qcow2 4G
这将创建一个名为alpine-aarch64.qcow2的虚拟硬盘,初始大小为 4GB,但会根据实际使用情况动态增长。
3 启动 QEMU 并安装 Alpine
使用以下命令启动 QEMU 并从 Alpine 安装 ISO 镜像进行引导:
qemu-system-aarch64 \
-machine virt \
-cpu cortex-a57 \
-m 2048 \
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
-drive file=alpine-aarch64.qcow2,if=virtio \
-cdrom alpine-standard-3.22.1-aarch64.iso \
-netdev user,id=net0,hostfwd=tcp::5022-:22 \
-device virtio-net-pci,netdev=net0 \
-nographic
命令解释:
- -machine virt:使用通用的 ARM 虚拟平台
- -cpu cortex-a57:模拟 ARM Cortex-A57 处理器
- -m 2048:分配 2GB 内存
- -bios:指定 UEFI 固件文件,用于 UEFI 引导
- -drive:指定虚拟硬盘
- -cdrom:指定安装 ISO 镜像
- -netdev user:创建用户模式网络,支持网络访问和端口转发
- -device virtio-net-pci:添加 virtio 网络设备
- -nographic:使用无图形界面模式,通过串口进行交互
结果如下:
GNU GRUB version 2.12
/----------------------------------------------------------------------------\
|*Linux lts |
| |
| |
\----------------------------------------------------------------------------/
Use the ^ and v keys to select which entry is highlighted.
Press enter to boot the selected OS, `e' to edit the commands
before booting or `c' for a command-line.
The highlighted entry will be executed automatically in 0s.
Booting `Linux lts'
OpenRC 0.62.5 is starting up Linux 6.12.38-0-lts (aarch64)
* /proc is already mounted
* Mounting /run ... [ ok ]
* /run/openrc: creating directory
* /run/lock: creating directory
* /run/lock: correcting owner
* Caching service dependencies ... [ ok ]
* Remounting devtmpfs on /dev ... [ ok ]
* Mounting /dev/mqueue ... [ ok ]
* Mounting modloop ... * Verifying modloop
[ ok ]
* Mounting security filesystem ... [ ok ]
* Mounting debug filesystem ... [ ok ]
* Mounting persistent storage (pstore


1171

被折叠的 条评论
为什么被折叠?



