ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10
ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10
安装qemu之后,从应用中或者使用virt-manager
命令打开虚拟系统管理器。
创建虚拟机,架构选择aarch64
,机器类型不知道选什么,暂选的是virt
,后面有问题的话再说。
参考国产银河麒麟操作系统下载地址收集--【更新】2023.11.13下载了银河麒麟操作系统v10飞腾版。
ISO选择了下载的镜像,操作系统不知道选什么,自动检测也检测不出来,经测试,这里选centos7,ubuntu22.04都是可以的。
在安装前自定义配置
固件选择uefi aarch64
。
选择开始安装,出现如下界面
最终停在了如下界面
虽然安装失败,但是也算是有了一点进展。
参考用QEMU虚拟国产飞腾+麒麟环境解决这个问题。
从linaro网站上下载了一个固件,叫做QEMU_EFI.fd
。按照上面这个网站上的说明,使用如下命令创建一个虚拟机,
qemu-img create -f qcow2 rootfs.qcow2 50G
qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=./Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=rootfs.qcow2,id=hd0 -device virtio-blk-device,drive=hd0
注意这里的文件的路径。
出现了如下界面,看来是没有问题的。
系统安装结束后,在同样的目录下使用如下的命令,可以打开虚拟机。
qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=rootfs.qcow2,id=hd0 -device virtio-blk-device,drive=hd0
尝试修改virt-manager的设置,使它也能安装。
参考了配置qemu支持UEFI启动在virt-manager设置虚拟机固件的地方可以看到,固件是存放在/usr/share/AAVMF
这里的。把刚才下载的QEMU_EFI.fd
复制到这里来。
编辑/etc/libvirt/qemu.conf
文件,在开头增强如下内容:
nvram=["/usr/share/AAVMF/QEMU_EFI.fd:/usr/share/AAVMF/QEMU_EFI.fd"]
然后重启libvirtd
服务
systemctl restart libvirtd
再用virt-manager
按照前面的过程新建一个虚拟机,这时还是不可以看到固件QEMU_EFI.fd
,先停在这儿吧。
阅读etc/libvirt/qemu.conf
里面的说明,可以知道,这个地方的nvram
参数已经弃用了。系统会从其它地方找配置文件来自动生成这个项目的配置。
参考Libvirt XML文件详解(一)知道,系统查找的位置包括三个,按照先后顺序依次为:/usr/share/qemu/firmware
、/etc/qemu/firmware
、$XDG_CONFIG_HOME/qemu/firmware
。
到/usr/share/qemu/firmware
下载去查看,发现有如下内容:
40-edk2-aarch64-secure-enrolled.json 60-edk2-aarch64.json
40-edk2-x86_64-secure-enrolled.json 60-edk2-arm.json
50-edk2-aarch64-secure.json 60-edk2-x86_64.json
50-edk2-x86_64-secure.json
不知道这些文件都有什么作用,我把60-edk2-aarch64.json
这个文件在这里复制了一份,重命名为wd-60-edk2-aarch64.json
,编辑其中的内容,把"filename":
的值修改为"/usr/share/AAVMF/QEMU_EFI.fd"
,也就是指向之前下载的这个文件。
然后重启libvirtd
服务,从virt-manager
中新创建虚拟机。
此时可以出现这个固件的选项。
但是开始安装的时候有问题,'internal error: QEMU unexpectedly closed the monitor (vm='ubuntu22.04-aarch64'): 2024-03-31T07:30:31.372609Z qemu-system-aarch64: device requires 67108864 bytes, block backend provides 2097152 bytes'
,如下图所示。
到处找,从Linaro Releases这个地方(这个地方也就是前面下载QEMU_EFI.fd
的地方)下载了一个叫QEMU_EFI.img.gz
的压缩包,解压后得到一个文件叫QEMU_EFI.img
的文件,大小为67108864bytes。把这个文件复制到/usr/share/AAVMF/
下面,并且把前面所修改的两个"filename":
修改为/usr/share/AAVMF/QEMU_EFI.img
。然后重启libvirtd
,重新安装虚拟机,可以看到下载的这个固件,并且也可以开启安装过程。
问题是,开始安装后,进入了如下的界面。
在网页qemu创建aarch64虚拟机过程记录上有一些相关的解释,但是我暂时不想在这里继续花时间了,先在这儿暂停吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了