八嘻谈车 發表於 2025-11-9 14:28:00

使用Qemu运行arm麒麟V10服务器系统

<p>之前一直按照网上其他文章教程使用Qemu运行arm下的麒麟Desktop系统,除了非常卡顿之外没有其他任何问题,近期因为项目需要,使用Qemu运行安装服务器系统的时候一直无法进入安装程序,甚至无图形界面的安装都进不去,最后一番捯饬终于成功</p>
<h1 id="一下载银河麒麟服务器镜像">一、下载银河麒麟服务器镜像</h1>
<ol>
<li>这里不提供任何镜像,请联系银河麒麟官方客服申请试用或在互联网查找相关资源</li>
<li>将下载的镜像放入一个新建的文件夹,这里以Kylin-Server-V10-GFB-Release-030-ARM64.iso为例</li>
</ol>
<h1 id="二下载安装qemu配置环境变量可选">二、下载安装qemu,配置环境变量(可选)</h1>
<ol>
<li>下载下方最新版即可,安装过程省略<br>
https://qemu.weilnetz.de/w64/</li>
<li>将安装目录(C:\Program Files\qemu)添加到系统环境变量Path中,方便后续使用,如果不添加的话后续qemu-system-aarch64.exe都要在前面添加目录,例如C:\Program Files\qemu\qemu-system-aarch64.exe<br>
Linux同理,这里不赘述<br>
<img src="https://img2024.cnblogs.com/blog/3428596/202511/3428596-20251109140159269-1012563579.png" alt="image" loading="lazy"></li>
</ol>
<h1 id="三创建bios相关文件">三、创建BIOS相关文件</h1>
<ol>
<li>从C:\Program Files\qemu\share目录中复制edk2-aarch64-code.fd到镜像相同目录中</li>
<li>在文件夹内打开终端,使用下列命令创建变量区文件:</li>
</ol>
<pre><code class="language-bash">fsutil file createnew edk2-aarch64-vars.fd 67108864
</code></pre>
<p>Linux系统使用:</p>
<pre><code class="language-bash">dd if=/dev/zero of=edk2-aarch64-vars.fd bs=1M count=64
</code></pre>
<h1 id="四创建磁盘文件">四、创建磁盘文件</h1>
<ol>
<li>在文件夹内打开终端,使用下列命令创建磁盘文件,最后的170G可以自行调整:</li>
</ol>
<pre><code class="language-bash">qemu-img.exe create -f qcow2 kylinbat.qcow2 170G
</code></pre>
<p>如果没有配置环境变量,这里的qemu-img.exe要添加目录前缀“C:\Program Files\qemu\”</p>
<h1 id="五开始安装系统">五、开始安装系统</h1>
<ol>
<li>在镜像文件夹新建一个文本文档,将文件名改成install.bat,粘贴下列安装脚本</li>
</ol>
<pre><code class="language-bash">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
</code></pre>
<ol start="2">
<li>正常用UI安装系统,这里不再赘述,GRUB的界面可能会出现闪烁问题,我没有尝试解决,不影响使用</li>
<li>安装结束后,直接关闭窗口</li>
</ol>
<h1 id="六安装tap网卡驱动">六、安装tap网卡驱动</h1>
<ol>
<li>下载链接(第三方整理,不负责安全)<br>
https://gitcode.com/open-source-toolkit/a3aea</li>
<li>安装后打开控制面板-网络和 Internet-更改适配器设置,修改TAP-Windows Adapter V9的名称为tap0<br>
<img src="https://img2024.cnblogs.com/blog/3428596/202511/3428596-20251109142159230-1208595322.png" alt="image" loading="lazy"></li>
</ol>
<h1 id="七启动系统">七、启动系统</h1>
<ol>
<li>在镜像文件夹新建一个文本文档,将文件名改成startup.bat,粘贴下列启动脚本</li>
</ol>
<pre><code class="language-bash">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 ^
</code></pre>
<h1 id="八连接互联网">八、连接互联网</h1>
<ol>
<li>打开控制面板-网络和 Internet-更改适配器设置,双击打开连接互联网的网卡,共享到tap0<br>
<img src="https://img2024.cnblogs.com/blog/3428596/202511/3428596-20251109142319982-1753959835.png" alt="image" loading="lazy"></li>
<li>这时理论上虚拟机可以联网,在虚拟机内查看本机ip,即可ssh和sftp连接虚拟机进行远程操作</li>
</ol>
<h1 id="总结">总结</h1>
<p>关键在于使用了qemu提供的edk2BIOS,网上分享的QEMU_EFI.fd不知道为什么底层不支持,反正能用就行(</p><br><br>
来源:https://www.cnblogs.com/spi4pig/p/19204224
頁: [1]
查看完整版本: 使用Qemu运行arm麒麟V10服务器系统