Mac OS 使用 QEMU 安装 Ubuntu (ARM)
Mac OS(arm版本)下使用qemu安装 ubuntu(arm版) 的方法
安装brew, 已安装忽略
官方地址: https://docs.brew.sh/Installation
export HOMEBREW_BREW_GIT_REMOTE="..." # put your Git mirror of Homebrew/brew here
export HOMEBREW_CORE_GIT_REMOTE="..." # put your Git mirror of Homebrew/homebrew-core here
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
安装 依赖工具
- qemu 虚拟机工具
- rpm2cpio rpm 解包工具
brew install rpm2cpio qemu
下载 ubuntu ARM64 版镜像
ubuntu-server 下载地址 也可以下载其他版本
官方链接: https://cn.ubuntu.com/download/server/arm
下载地址: https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04.2-live-server-arm64.iso
准备阶段
# 使用 oracle linux AAVMF(arm)
# 启动时会有 Oracle 图标,可以选择其他的 AAVMF
# 制作启动区
curl -O https://yum.oracle.com/repo/OracleLinux/OL7/latest/aarch64/getPackage/AAVMF-1.5.1-1.el7.noarch.rpm
rpm2cpio AAVMF-1.5.1-1.el7.noarch.rpm | cpio -ivd usr/share/AAVMF/AAVMF_{VARS,CODE}.fd
dd if=/dev/zero of=pflash0.img bs=1m count=64
dd if=/dev/zero of=pflash1.img bs=1m count=64
dd if=usr/share/AAVMF/AAVMF_CODE.fd of=pflash0.img conv=notrunc
dd if=usr/share/AAVMF/AAVMF_VARS.fd of=pflash1.img conv=notrunc
创建存储文件
# raw 格式, 可以选 qcow2 等
qemu-img create -f raw ubuntu22.raw 50G
启动qemu 安装 ubuntu 过程
# 启动安装,耐心等待启动的安装进程
qemu-system-aarch64 \
-monitor stdio \
-M virt,highmem=on \
-accel hvf \
-cpu host \
-smp 6 \
-m 8G \
-drive file=pflash0.img,format=raw,if=pflash,readonly=on \
-drive file=pflash1.img,format=raw,if=pflash \
-device virtio-gpu-pci \
-display default,show-cursor=on \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-device intel-hda \
-device hda-duplex \
-drive file=ubuntu22.raw,format=raw,if=virtio,cache=writethrough \
-net nic -net user \
-cdrom ubuntu-22.04.2-live-server-arm64.iso
运行安装好的镜像
# 安装完成, 根据镜像文件启动,
# 以后就可以直接启动了, 可以将该条命令放到脚本执行
qemu-system-aarch64 \
-monitor stdio \
-M virt,highmem=on \
-accel hvf \
-cpu host \
-smp 6 \
-m 8G \
-drive file=pflash0.img,format=raw,if=pflash,readonly=on \
-drive file=pflash1.img,format=raw,if=pflash \
-device virtio-gpu-pci \
-display default,show-cursor=on \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-device intel-hda \
-device hda-duplex \
-drive file=ubuntu22.raw,format=raw,if=virtio,cache=writethrough \
-net nic \
-net user,hostfwd=tcp:127.0.0.1:2222-:22 ### 配置端口转发 22 -> 2222