|
之前一直按照网上其他文章教程使用Qemu运行arm下的麒麟Desktop系统,除了非常卡顿之外没有其他任何问题,近期因为项目需要,使用Qemu运行安装服务器系统的时候一直无法进入安装程序,甚至无图形界面的安装都进不去,最后一番捯饬终于成功
一、下载银河麒麟服务器镜像
- 这里不提供任何镜像,请联系银河麒麟官方客服申请试用或在互联网查找相关资源
- 将下载的镜像放入一个新建的文件夹,这里以Kylin-Server-V10-GFB-Release-030-ARM64.iso为例
二、下载安装qemu,配置环境变量(可选)
- 下载下方最新版即可,安装过程省略
https://qemu.weilnetz.de/w64/
- 将安装目录(C:\Program Files\qemu)添加到系统环境变量Path中,方便后续使用,如果不添加的话后续qemu-system-aarch64.exe都要在前面添加目录,例如C:\Program Files\qemu\qemu-system-aarch64.exe
Linux同理,这里不赘述
三、创建BIOS相关文件
- 从C:\Program Files\qemu\share目录中复制edk2-aarch64-code.fd到镜像相同目录中
- 在文件夹内打开终端,使用下列命令创建变量区文件:
fsutil file createnew edk2-aarch64-vars.fd 67108864
Linux系统使用:
dd if=/dev/zero of=edk2-aarch64-vars.fd bs=1M count=64
四、创建磁盘文件
- 在文件夹内打开终端,使用下列命令创建磁盘文件,最后的170G可以自行调整:
qemu-img.exe create -f qcow2 kylinbat.qcow2 170G
如果没有配置环境变量,这里的qemu-img.exe要添加目录前缀“C:\Program Files\qemu\”
五、开始安装系统
- 在镜像文件夹新建一个文本文档,将文件名改成install.bat,粘贴下列安装脚本
qemu-system-aarch64.exe ^
-m 16G ^ ::内存大小,建议不要超过本机物理内存的1/2
-cpu cortex-a72 ^
-smp 16,cores=8,threads=2,sockets=1 ^ ::-smp x,cores=m,threads=n,sockets=k x=m*n*k,根据电脑性能自行调整,如果无法正常启动就调小
-M virt ^
-pflash "edk2-aarch64-code.fd" ^
-pflash "edk2-aarch64-vars.fd" ^
-rtc base=localtime ^
-display sdl,gl=on ^
-device virtio-gpu-pci ^
-device nec-usb-xhci ^
-device usb-tablet ^ ::tablet是因为usb-mouse会有鼠标漂移bug
-device usb-kbd ^
-drive if=none,file="kylinbat.qcow2",id=hd0,format=qcow2 ^ ::磁盘文件
-device virtio-blk-pci,drive=hd0 ^
-drive if=none,file="Kylin-Server-V10-GFB-Release-030-ARM64.iso",id=cdrom,media=cdrom ^ ::改成自己下载的镜像文件名
-device virtio-scsi-pci ^
-device scsi-cd,drive=cdrom
- 正常用UI安装系统,这里不再赘述,GRUB的界面可能会出现闪烁问题,我没有尝试解决,不影响使用
- 安装结束后,直接关闭窗口
六、安装tap网卡驱动
- 下载链接(第三方整理,不负责安全)
https://gitcode.com/open-source-toolkit/a3aea
- 安装后打开控制面板-网络和 Internet-更改适配器设置,修改TAP-Windows Adapter V9的名称为tap0
七、启动系统
- 在镜像文件夹新建一个文本文档,将文件名改成startup.bat,粘贴下列启动脚本
qemu-system-aarch64.exe ^
-m 16G ^ ::内存大小,建议不要超过本机物理内存的1/2
-cpu cortex-a72 ^
-smp 16,cores=8,threads=2,sockets=1 ^ ::-smp x,cores=m,threads=n,sockets=k x=m*n*k,根据电脑性能自行调整,如果无法正常启动就调小
-M virt ^
-pflash "edk2-aarch64-code.fd" ^
-pflash "edk2-aarch64-vars.fd" ^
-rtc base=localtime ^
-display sdl,gl=on ^
-device virtio-gpu-pci ^
-device nec-usb-xhci ^
-device usb-tablet ^ ::tablet是因为usb-mouse会有鼠标漂移bug
-device usb-kbd ^
-drive if=none,file="kylinbat.qcow2",id=hd0,format=qcow2 ^ ::磁盘文件
-device virtio-blk-pci,drive=hd0 ^
-net nic -net tap,ifname=tap0 ^
八、连接互联网
- 打开控制面板-网络和 Internet-更改适配器设置,双击打开连接互联网的网卡,共享到tap0
- 这时理论上虚拟机可以联网,在虚拟机内查看本机ip,即可ssh和sftp连接虚拟机进行远程操作
总结
关键在于使用了qemu提供的edk2BIOS,网上分享的QEMU_EFI.fd不知道为什么底层不支持,反正能用就行(
来源:https://www.cnblogs.com/spi4pig/p/19204224 |