当前位置:首页 > 系统教程 > 正文

使用QEMU在x86 Ubuntu上运行ARM版Ubuntu(跨平台虚拟化实战教程)

使用QEMU在x86 Ubuntu上运行ARM版Ubuntu(跨平台虚拟化实战教程)

你是否想在普通的x86电脑上体验ARM架构的Ubuntu系统?本教程将带你一步步实现x86 Ubuntu运行ARM Ubuntu的奇妙旅程。通过QEMU模拟ARM,你可以在不改变硬件的情况下运行完整的ARM环境,适合学习、测试和开发。我们将涵盖从安装工具到启动系统的全过程,即使是小白也能轻松跟上。

使用QEMU在x86 Ubuntu上运行ARM版Ubuntu(跨平台虚拟化实战教程) x86 Ubuntu 运行 ARM  QEMU 模拟 虚拟化 跨平台模拟 第1张

1. 准备工作:安装QEMU及相关组件

首先,确保你的宿主机是x86架构的Ubuntu(20.04或更高版本)。打开终端,更新软件包并安装必要的软件:

sudo apt updatesudo apt install qemu-system-arm qemu-efi-aarch64 qemu-utils bridge-utils -y

这些工具提供了Ubuntu虚拟化所需的模拟器、UEFI固件和磁盘管理功能。qemu-system-aarch64将负责模拟ARM64环境。

2. 获取ARM版Ubuntu镜像

前往Ubuntu官网下载ARM64服务器镜像,或使用wget直接获取:

wget https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04.3-live-server-arm64.iso

你也可以选择其他版本,但确保是arm64架构。这个镜像将用于安装系统。

3. 创建虚拟磁盘

使用qemu-img创建一个20GB的qcow2格式磁盘文件:

qemu-img create -f qcow2 ubuntu-arm64.qcow2 20G

qcow2支持动态分配,节省宿主机空间。

4. 启动安装程序

现在用QEMU启动安装,注意使用UEFI引导(需要之前安装的QEMU_EFI.fd):

qemu-system-aarch64 \n  -machine virt \n  -cpu cortex-a57 \n  -smp 2 \n  -m 2048 \n  -drive if=none,file=ubuntu-arm64.qcow2,format=qcow2,id=hd \n  -device virtio-blk-device,drive=hd \n  -cdrom ubuntu-22.04.3-live-server-arm64.iso \n  -netdev user,id=net0 \n  -device virtio-net-device,netdev=net0 \n  -nographic \n  -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd

参数说明:- -machine virt 使用通用虚拟平台。- -cpu cortex-a57 模拟ARM Cortex-A57处理器。- -smp 2 分配2个CPU核心。- -m 2048 内存2GB。- -drive-device 连接虚拟磁盘。- -cdrom 挂载安装ISO。- -netdev user 用户模式网络(NAT)。- -nographic 不使用图形界面,通过串口控制。- -bios 指定UEFI固件文件。执行后你会进入安装界面,按提示完成安装(选择文本模式)。

5. 安装后首次启动

安装完成后,移除-cdrom参数,再次启动:

qemu-system-aarch64 \n  -machine virt \n  -cpu cortex-a57 \n  -smp 2 \n  -m 2048 \n  -drive if=none,file=ubuntu-arm64.qcow2,format=qcow2,id=hd \n  -device virtio-blk-device,drive=hd \n  -netdev user,id=net0 \n  -device virtio-net-device,netdev=net0 \n  -nographic \n  -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd

现在你将进入刚安装的ARM Ubuntu系统,登录后就可以体验跨平台模拟带来的乐趣了!

6. 优化与常见问题

- 如果希望使用图形界面,可以移除-nographic并添加-vga virtio,但需要确保ARM镜像支持。- 网络默认采用NAT,如需端口转发,可在-netdev user后添加,hostfwd=tcp::2222-:22将宿主机的2222端口转发到虚拟机的22端口(SSH)。- 性能方面,x86 Ubuntu运行ARM Ubuntu由于是模拟,会比原生慢不少,建议分配更多CPU和内存。- 如果遇到启动失败,检查UEFI固件路径是否正确,或尝试使用-cpu max代替具体型号。

通过本教程,你已经学会了如何在x86 Ubuntu上借助QEMU运行ARM版Ubuntu。这不仅是一次有趣的Ubuntu虚拟化实践,也为后续的ARM开发、测试打下了基础。如果你在操作中遇到问题,欢迎在评论区交流!