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 镜像文件。
运行之后会弹框安装:
设置页面:
安装好之后,进入终端:
可以看到这是个定制版的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
系统参数
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
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)
是否是标准内核:是
内核树文件路径:/lib/modules/内核版本号/build/
注意
- 虚拟机不可实现PCIE透传。
- 跨架构虚拟无法开启KVM,所以虚拟机为纯软件虚拟,性能大幅降低。