Skip to content

macOS x86_64运行Kylin-10-arm64虚拟机

因为拿到的银河麒麟是arm架构的ISO,在x86_64平台不能直接运行,需要借助qemu来进行虚拟化。

安装qemu

qemu下载页:https://www.qemu.org/download/

在macOS直接使用brew安装qemu:

bash
brew install qemu

安装完成后,执行which qemu-system-aarch64查看是否安装成功。

安装

首先创建一个文件,作为系统盘:

bash
qemu-img create -f qcow2 /Volumes/Disk\ 1/qemu/kylin/kylindisk.qcow2 40G

安装系统:

bash
qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp cpus=8,sockets=4,cores=2 \
-M virt \
-device VGA \
-device nec-usb-xhci \
-device usb-mouse \
-device usb-kbd \
-device virtio-blk-device,drive=hd0 \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom \
-net nic \
-net user,hostfwd=tcp:0.0.0.0:33333-:22 \
-bios /Volumes/Disk\ 1/kylin/QEMU_EFI.fd \
-drive if=none,file=/Volumes/Disk\ 1/qemu/kylin/kylindisk.qcow2,id=hd0 \
-drive if=none,file=/Volumes/Disk\ 1/kylin/Kylin-Server-10-SP2-Release-Build09-20210524-arm64.iso,id=cdrom,media=cdrom

下面是对该命令中的各个选项和参数的解释:

  • qemu-system-aarch64:QEMU 的命令行工具,用于模拟 ARM64 架构的虚拟机。
  • -m 8192:分配给虚拟机的内存大小,单位为 MB,这里是 8192 MB,即 8 GB。
  • -cpu cortex-a72:虚拟机使用的 CPU 模型是 Cortex-A72。
  • -smp cpus=8,sockets=4,cores=2:指定虚拟机中的处理器配置,总共有 8 个虚拟 CPU,分布在 4 个 sockets 和 2 个 cores 中。
  • -M virt:指定虚拟机使用的机器类型为 virt。
  • -device VGA:添加 VGA 设备,用于显示图形界面。
  • -device nec-usb-xhci:添加 NEC USB 控制器设备。
  • -device usb-mouse:添加 USB 鼠标设备。
  • -device usb-kbd:添加 USB 键盘设备。
  • -device virtio-blk-device,drive=hd0:将虚拟硬盘设备与虚拟机连接。
  • -device virtio-scsi-device:添加虚拟 SCSI 设备。
  • -device scsi-cd,drive=cdrom:将虚拟光驱设备与虚拟机连接。
  • -net nic -net user,hostfwd=tcp:0.0.0.0:33333-:22:配置网络,添加网络适配器和用户模式网络,并将主机的 33333 端口映射到虚拟机的 22 端口(SSH)。
  • -bios /Volumes/Disk\ 1/kylin/QEMU_EFI.fd:指定虚拟机的 BIOS 文件路径。
  • -drive if=none,file=/Volumes/Disk\ 1/qemu/kylin/kylindisk.qcow2,id=hd0:指定一个虚拟硬盘镜像文件,并分配一个 id(hd0)。
  • -drive if=none,file=/Volumes/Disk\ 1/kylin/Kylin-Server-10-SP2-Release-Build09-20210524-arm64.iso,id=cdrom,media=cdrom:指定虚拟光驱中的 ISO 镜像文件。

运行之后会弹框安装:

截屏2023-08-09下午9.17.04

设置页面:

截屏2023-08-09下午9.27.04

安装好之后,进入终端:

截屏2023-08-09下午11.14.03

可以看到这是个定制版的CentOS。

启动

bash
qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp cpus=8,cores=8,threads=1,sockets=1 \
-M virt \
-device nec-usb-xhci \
-device usb-kbd \
-device usb-mouse \
-device VGA \
-device virtio-blk-device,drive=hd0 \
-device virtio-scsi-device \
-net nic \
-net user,hostfwd=tcp:0.0.0.0:33333-:22 \
-bios /Volumes/Disk\ 1/kylin/QEMU_EFI.fd \
-drive if=none,file=/Volumes/Disk\ 1/qemu/kylin/kylindisk.qcow2,id=hd0

这个命令和安装命令类似,不再重复解释。

安装ssh-server:

bash
yum install openssh-server -y

安装完成后,ssh连接虚拟机:

bash
ssh root@127.0.0.1 -p 33333

系统参数

  1. Linux环境:

    bash
    [root@localhost ~]# uname -a
    Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
  2. gcc版本:

    bash
    [root@localhost ~]# gcc -v
    使用内建 specs。
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-linux-gnu/7.3.0/lto-wrapper
    目标:aarch64-linux-gnu
    配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --without-isl --without-cloog --enable-gnu-indirect-function --build=aarch64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --with-multilib-list=lp64
    线程模型:posix
    gcc 版本 7.3.0 (GCC)
  3. 是否是标准内核:是

  4. 内核树文件路径:/lib/modules/内核版本号/build/

注意

  • 虚拟机不可实现PCIE透传。
  • 跨架构虚拟无法开启KVM,所以虚拟机为纯软件虚拟,性能大幅降低。