Qemu搭建arm版麒麟系统

2024-01-10 11:57:02

前言

麒麟系统(Kylin)是由中国科学院计算技术研究所(ICT)开发的一款操作系统。它最初是为满足中国国家信息化建设需求而创建的,旨在提供一个安全可靠、高性能的操作系统平台,广泛应用于中国政府、军队、企事业单位等领域。
麒麟系统基于Linux内核进行开发,并在其上构建了自己的软件堆栈和应用程序生态系统。作为一个综合性操作系统,麒麟系统支持多种硬件架构,包括ARM架构。
模拟ARM平台安装麒麟系统是指在非ARM架构的计算机上使用虚拟化技术模拟ARM架构,然后在模拟的ARM平台上安装和运行麒麟系统。这种方法可以让开发人员、研究人员或爱好者在不拥有实际ARM设备的情况下,通过模拟器来体验和测试麒麟系统。
常用的模拟器之一是QEMU(Quick Emulator),它是一个开源的虚拟化和仿真工具,支持多种硬件架构的模拟。通过在QEMU上配置合适的硬件参数和设备模拟,可以在模拟的ARM平台上运行麒麟系统。
模拟ARM平台安装麒麟系统可以帮助开发人员和用户熟悉和测试麒麟系统的功能和性能,进行应用程序的开发和调试,以及进行系统优化和性能调优等工作。此外,这种方法还能够提供一个便捷的环境,使用户能够在常用的计算机上尝试和学习ARM架构相关的开发和应用。
需要注意的是,模拟器虽然提供了一种方便的方式来模拟ARM平台,但由于模拟器的性能和硬件差异,与实际ARM设备上的运行可能会存在一些差异。因此,在进行实际产品开发或性能评估时,还应该在真实的ARM硬件上进行测试和验证。

背景介绍

我们平常使用的PC一般都是x86架构的Intel CPU,如果由于某些原因需要使用arm架构的操作系统,我们无法使用一些虚拟机软件(如vmware workstation、virtual box等) 进行安装,因为这种类型的虚拟机软件只能安装和宿主机的CPU相同架构的系统。不过,我们可以使用qemu软件,该软件可以理解为一个模拟器,可以模拟一个arm架构的虚拟机。qemu有时候也被称为虚拟机软件。
本文简单介绍了如何在windows系统中安装并使用qemu安装arm架构的kylinV10系统(其它类似的操作系统也可以参考,仅仅是安装时使用的ISO镜像不同),可以在x86架构的windows上运行arm架构的虚拟机,以便在windows上可以使用其它cpu架构的操作系统进行开发、编译、验证问题等操作。仅供需要的人员作为参考。

Qemu是什么

QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。

文档说明

本次安装后虚拟机上网使用的是tap模式,所以启动命令及上网配置都是采用的tap模式,如果使用其它模式,安装和启动命令可能稍微有些不同。
宿主机系统:windows10、windwos11(本文档中的宿主机使用windows11系统)
Qemu软件:qemu-w64-setup-20220831.exe
麒麟V10操作系统安装包:Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso
麒麟引导文件(EFI文件):QEMU_EFI.fd
虚拟网卡软件:openvpn-connect-3.3.4.2600_signed.msi

流程步骤

  1. 下载安装文件;
  2. 安装Qemu软件;
  3. 安装虚拟网卡
  4. 使用qemu-img命令创建qemu虚拟机;
  5. 使用qemu-system-aarch64命令安装kylin系统
  6. 使用qemu-system-aarch64命令启动kylin系统
  7. 在kylin系统中进行网络配置

一、下载安装文件

下载文档上所有相关的文件,我这边已经将文件打包放到了百度网盘上,根据下面的步骤可以很快的进行下载。

1、下载百度网盘

百度网盘下载
在上面链接中下载windows版本
image.png
下载完后根据步骤一步一步进行安装即可。

2、下载安装文件

链接:https://pan.baidu.com/s/1zvphgEl_RNEfG0EZ2JgA-g?pwd=3uf9

在页面上访问上面的链接地址下载安装文件,会弹出使用百度网盘客户端下载的提示框,勾选确定按钮到客户端下载。
image.png

3、设置下载速度

打开客户端会发现下载速度很慢,这时可以通过设置的方式来全速下载。
1.首先我们打开百度网盘,在右上角找到“设置图标”,之后进入“设置”;
image.png
2.找到左侧的“传输”选项,找到下载提速,点击“去开启”;
image.png
3.在弹出的页面中选择“开启下载提速”;
image.png
4.勾选“提速模式”即可解决百度网盘下载速度慢的问题;
image.png
加速原理:按照官方的解释是,我们提供闲置的带宽,官方提供加速效果,此过程不会影响我们的上网体验,传输通道质量越高加速效果越明显。

4、解压文件

下载完后将qemuReady.zip解压到D盘,解压完后的文件夹及文件如下
注意:最好按照上面的地址进行解压,因为在启动命令.txt中有部分地址设置,如果地址不对可能后面安装会有问题
image.png

二、安装Qemu软件

1、安装qemu

打开qemuReady文件夹,直接双击执行qemu-w64-setup-20220831.exe就可以,安装路径选择D:\qemu,后面配置环境变量的时候需要用到这个地址,其余安装和其它的软件一样,不再赘述。
image.png

2、配置环境变量

在“我的电脑”上右键,找到“属性”:
image.png
弹出“设置”界面,如下图所示:
image.png
点击“高级系统设置”,弹出系统属性界面,如下图所示:
image.png
点击“环境变量”按钮,弹出环境变量编辑界面,如下图所示:image.png
在Path的用户变量中添加D:\qemu,点击保存。

3、测试安装成功

打开cmd,执行qemu-system-aarch64 -version,可以展示版本信息,如下所示:
image.png

三、安装虚拟网卡

1、安装openvpn

双击下载下来的openvpn-connect-3.3.4.2600_signed.msi软件,和安装其它软件一样,一步步安装即可。
image.png

2、修改网卡名称

在开始菜单搜索网络连接,选择查看网络连接。
image.png
在网络连接界面可以看到新增加了一块网卡,如下图所示:
image.png
:::info
注意:大的红框中的网卡是新增加的,黄色框中的名称是经过我修改后的,安装完openven后可能不是这个名字,下面马上要说修改网卡名称的操作。只需要关注小的红框中的网卡类型是否是“TAP-Windows Adapter”即可,找到这种类型的网卡就是新增加的网卡。且连接状态也是未连接状态,不用关注,等启动虚拟机后即可变为正常状态。红框下面的“以太网”是我电脑的真实物理网卡。
:::
右键单击新增加的网卡,重命名该网卡,如下图所示:
image.png
:::info
注意:我这里修改为了tap0,其它的名称也可以,建议还是修改为tapXX这种形式,最好不要用中文名称。
:::

3、共享物理网卡的网络

右键单击本机物理网卡,如下图所示:
image.png
点击“属性”按钮,在弹出的界面中选择“共享”选项,如下图所示:
image.png
选中“允许其它网络通过此计算机的Internet连接来连接”复选框,“家庭网络连接”项选择刚才新增加的网卡(tap0),选中“允许其它网络用户控制或禁用共享的Internet连接”,确定即可。

四、使用qemu-img命令创建qemu虚拟机

打开cmd界面,为虚拟机创建目录并使用qemu-img.exe命令创建虚拟机

1、创建虚拟机文件夹

mkdir D:\virtual-machines\qemu\kylinV10

2、进入该文件夹

D:
cd D:\virtual-machines\qemu\kylinV10

3、创建虚拟机

qemu-img.exe create -f qcow2 kylindisk.qcow2 120G

4、验证成功

输出如下内容即为成功image.png
:::info
注意:镜像大小可以根据自己的需求进行修改。
:::
在指定目录下会有kylindisk.qcow2的文件。
image.png

五、使用qemu-system-aarch64命令安装kylin系统

1、安装

在cmd界面中,使用qemu-system-aarch64.exe命令安装麒麟操作系统:

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\qemuReady\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=D:\qemuReady\Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net tap,ifname=tap0

注意:-net tap,ifname=tap0中的tap0请修改为前面步骤中自己修改后的网卡名称。-bios参数请更换为自己的路径。-drive if-none,file=xxx请更换为自己创建的镜像路径。-drive if=none,file=xxx/Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso请更换为自己的镜像路径。
调试输出可以添加**-serial stdio **
:::info
主要参数说明如下:

  • qemu-system-aarch64.exe:QEMU的可执行文件,用于模拟ARM64架构的虚拟机。
  • -m 8192:指定虚拟机的内存大小为8192MB(8GB)。
  • -cpu cortex-a72:指定虚拟机使用Cortex-A72处理器。
  • -smp 8,sockets=4,cores=2:指定虚拟机的处理器拓扑结构,其中有8个处理器线程(线程数)、4个物理插槽(sockets)、每个物理插槽有2个核心(cores)。
  • -M virt:指定虚拟机的模拟器类型为virt。
  • -bios D:\qemuReady\QEMU_EFI.fd:指定虚拟机的BIOS文件路径,这里使用的是QEMU的EFI固件文件。
  • -device VGA:为虚拟机添加VGA设备,用于显示图形界面。
  • -device nec-usb-xhci:为虚拟机添加NEC USB控制器设备,用于支持USB设备。
  • -device usb-mouse:为虚拟机添加USB鼠标设备。
  • -device usb-kbd:为虚拟机添加USB键盘设备。
  • -drive if=none,file=D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2,id=hd0:定义虚拟机的硬盘驱动器,使用的磁盘映像文件为D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2,并将其标识为hd0。
  • -device virtio-blk-device,drive=hd0:为虚拟机添加VirtIO块设备,并将驱动器hd0连接到该设备。
  • -drive if=none,file=D:\qemuReady\Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso,id=cdrom,media=cdrom:定义虚拟机的光驱设备,使用的光盘映像文件为D:\qemuReady\Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso,并将其标识为cdrom。
  • -device virtio-scsi-device:为虚拟机添加VirtIO SCSI设备。
  • -device scsi-cd,drive=cdrom:将光驱设备cdrom连接到SCSI设备。
  • -net nic:为虚拟机添加网络适配器。
  • -net tap,ifname=tap0:将tap0作为虚拟机的网络接口。
    :::
    此时会启动一个图形界面,如下图所示:
    image.png
    选择后会进入操作系统安装界面,如下图所示:
    image.png
    和安装其它linux系统一样,按照自己的需求一步步配置即可。建议尽量小的安装,只选择必须的组件,因为安装过多功能需要的时间可能会比较长。
    安装完成后会重启,并进行如下操作
    image.png
    image.png
    点击完成后在下面页面中点击结束配置
    image.png

2、登录

安装完成后进入登录页面,输入用户名root
image.png
输入密码
image.png
成功进入系统中

六、在kylin系统中进行网络配置

1、配置kylin系统中的网络

在宿主机中查看刚才新增加的tap0网卡的IP地址,右键单击该网卡,选择“状态”>“详细信息",如下图所示:
image.png
可以看到宿主机共享了网络后,tap0网卡的IP地址变为了192.168.137.1,这个地址即是虚拟机系统中网络的网关地址,掩码即是虚拟机系统中网络的子网掩码。进入kylinV10虚拟机后,可以通过命令行或者图形界面配置网络地址,本次实验中,我将kylinV10虚拟机中的IP地址设置为了192.168.137.101,掩码为255.255.255.0,网关为192.68.137.1,DNS为114.114.114.114。自己的环境可以根据自己的需要修改。

2、设置SSH连接

安装完kylinV10系统后,默认是开启了SSH连接,如果没有开启,先判断是否安装了ssh:
image.png
查看是否安装ssh

yum list installed | grep openssh

image.png
如果有以上显示,表示已经安装了openssh,如果没有安装,则执行以下命令安装openssh:

yum install openssh

执行systemctl status sshd命令查看是否已经开启sshd服务:

[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2022-11-16 18:55:19 CST; 16h ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1303 (sshd)
    Tasks: 1
   Memory: 24.2M
   CGroup: /system.slice/sshd.service
           └─1303 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

image.png
如果有以上显示,则表示已经开启了sshd服务。如果未开启,则使用以下命令开启ssh服务:

systemctl start sshd

使用systemctl is-enabled sshd查看是否设置了sshd开启启动

[root@localhost ~]# systemctl is-enabled sshd
enabled

如果显示的是disable,则通过以下命令设置ssh开机启动:

systemctl enable sshd

3、设置固定ip

1)查看ip和网卡

查看是否有ip地址

ifconfig

image.png
如上就是没有固定ip,需要进行设置。
在xshell中输入命令:ip addr

ip addr

image.png

2)编辑网卡修改配置

上一步示例中可以发现网卡名称为“enp0s1”
进入该文件夹

cd /etc/sysconfig/network-scripts/

image.png
编辑ifcfg-enp0s1的网卡配置文件

vim ifcfg-enp0s1

image.png
光标移动到最后,按i进入编辑模式
:::info
1、将BOOTPROTO属性修改为static
2、将ONBOOT属性值修改为yes
3、结尾,按下回车换行,添加以下内容
:::

序号添加项说明
1IPADDR=192.168.137.10本机服务器IP
2NETMASK=255.255.255.0子网掩码
3GATEWAY=192.168.1.1网关
4DNS1=114.114.114.114DNS,固定不用修

注意:这里的ip网段必须与网卡上的一致,也就是tap0网卡的网段,192.168.137.1
image.png
修改完后按ESC退出编辑模式,并同时按住Shift+zz进行保存。
注意:保存方式和linux有所差别,按wq并不能保存,必须使用Shift+zz

3)重启网卡

image.png
重启完后会断一会网,随后弹出如下提示
image.png
查看网络
image.png

4、远程连接

使用连接工具如xshell进行远程连接

ssh root@192.168.137.10

image.png
输入密码
image.png
连接成功
image.png

七、使用qemu-system-aarch64命令启动kylin系统

在cmd界面中,使用qemu-system-aarch64.exe命令启动麒麟操作系统

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\qemuReady\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-scsi-device -net nic -net tap,ifname=tap0

注意:执行命令时请去掉换行符。-net tap,ifname=tap0中的tap0请修改为前面步骤中自己修改后的网卡名称。-bios参数请更换为自己的路径。-drive if-none,file=xxx请更换为自己创建的镜像路径。
为了以后启动方便,可以将此命令保存为bat文件,后续直接双击执行即可。
启动arm麒麟虚拟机.bat

八、镜像相关操作

1、创建快照

运行以下命令:

qemu-img.exe snapshot -c snapshot_name D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2

:::info
snapshot_name是您想要给快照命名的名称,vm_name.qcow2是要创建快照的虚拟机磁盘镜像的名称。该命令将创建一个名为snapshot_name的新快照。
:::

2、恢复快照

如果您想恢复到之前创建的快照,运行以下命令:

qemu-img.exe snapshot -a snapshot_name D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2

:::info
snapshot_name是您之前创建的快照的名称,vm_name.qcow2是虚拟机磁盘镜像的名称。该命令将使虚拟机恢复到创建快照时的状态。
:::

3、删除快照

qemu-img.exe snapshot -d snapshot-name D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2

4、查看镜像中保存的快照列表

qemu-img snapshot -l D:\virtual-machines\qemu\kylinV10\kylindisk.qcow2

文章来源:https://blog.csdn.net/qq_42055933/article/details/135497642
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。