ninehills / blog

https://ninehills.tech
747 stars 65 forks source link

MacOS 上使用 qemu 模拟 arm 安装操作系统 #83

Closed ninehills closed 1 year ago

ninehills commented 3 years ago

MacOS 上使用 qemu 模拟 arm 安装操作系统

mkdir -p ~/runtime/arm-qemu
cd ~/runtime/arm-qemu

brew install qemu

Qemu ARM 支持帮助文档:https://www.qemu.org/docs/master/system/target-arm.html

安装Debian jessie netboot 版本

# 参考 https://gist.github.com/humbertodias/6237f80df9a4bccf98be298057a82cf2
# Download initrd and kernel
wget http://ftp.de.debian.org/debian/dists/jessie/main/installer-armel/current/images/versatile/netboot/initrd.gz
wget http://ftp.de.debian.org/debian/dists/jessie/main/installer-armel/current/images/versatile/netboot/vmlinuz-3.16.0-6-versatile

# Creating disk
qemu-img create -f qcow2 armdisk.img 1G

# Running 
qemu-system-arm -M versatilepb -kernel \
vmlinuz-3.16.0-6-versatile \
-initrd initrd.gz \
-hda armdisk.img \
-append "root=/dev/ram" \
-m 256 

此时会进入Debian的安装界面(netboot安装),注意选择中国区域的源以提高下载速度(如http://debian.ustc.edu.cn/

安装银河麒麟V10 ARM版本

参考资料:

# 下载银河麒麟V10 SP1 ARM版本
# 此处请去银河麒麟官网以公司名义申请

# Creating disk
qemu-img create -f qcow2 kylin-disk.img 50G

# 麒麟是64位,需要用 qemu-system-aarch64,可以用 qemu-system-aarch56 --help | less 查看帮助

# 下载UEFI固件(安装麒麟系统时要用到)
wget http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

# 安装
qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4 -M virt \
    -bios QEMU_EFI.fd \
    -drive if=none,file=kylin-disk.img,id=hd0 \
    -device virtio-blk-device,drive=hd0 \
    -drive if=none,file=Kylin-Server-10-SP1-Release-Build04-20200711-arm64.iso,id=cdrom,media=cdrom \
    -device scsi-cd,drive=cdrom \
    -device e1000,netdev=net0 \
    -netdev user,id=net0,hostfwd=tcp::2222-:22 \

然后进入Kylin的安装界面,安装完成后关机后开机

# 运行(没必要使用图形界面,故设置nographic)
qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4 -M virt \
    -bios QEMU_EFI.fd -nographic \
    -drive if=none,file=kylin-disk.img,id=hd0 \
    -device virtio-blk-device,drive=hd0 \
    -device e1000,netdev=net0 \
    -netdev user,id=net0,hostfwd=tcp::2222-:22 \

第一次开机,需要同意下Kylin的License。

上述命令中的hostfwd为配置的端口转发:参考https://wiki.qemu.org/Documentation/Networking 通过 ssh root@localhost -p 2222 即可在宿主机上连接虚拟机。

feilll commented 2 years ago

您好我也是使用qemu安装虚拟机,因为不支持图形化界面,我就使用了-nographic选项,但运行后就只显示了按键 ENTER 进入安装,我按键后就进入了全黑界面,请问您有遇到过吗?或者您的安装过程是怎么样的呀?

ninehills commented 2 years ago

您好我也是使用qemu安装虚拟机,因为不支持图形化界面,我就使用了-nographic选项,但运行后就只显示了按键 ENTER 进入安装,我按键后就进入了全黑界面,请问您有遇到过吗?或者您的安装过程是怎么样的呀?

nographic就是tty界面,这个也是很久之前安装的,你这个情况没有碰到过。