银河麒麟 ARM架构 Qemu虚拟机

Posted Cliven_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了银河麒麟 ARM架构 Qemu虚拟机相关的知识,希望对你有一定的参考价值。

1. Qemu安装

Qemu的安装请参考: https://www.qemu.org/download/#source

下载源码,编译安装即可,注意银河麒麟上的gcc版本较低,请升级gcc,升级方式也为下载源码编译安装。

qemu-system-aarch64 --version

2. 虚拟机管理工具安装

安装虚拟机相关依赖:

yum -y install virt-install libvirt virt-manager 

安装完成后可以在启动菜单看到如下程序:


安装完成后启动管理工具。

3. 创建虚机


提示确认合适qemu/kvm软件包已经安装,这个可以忽略,点击文件,选择添加链接(A)

由于我们本机已经安装了QEMU,因此保持默认,点击连接

连接成功可以在界面中看到QEMU相关信息。

点击新建虚拟机图标,我这里准备启动一个ARM64 UOS系统,所以处理器架构选择了aarch64


点击加号创建虚拟磁盘,填写磁盘名称、格式保持qcow2、填写容量,然后完成


请找到你的操作系统镜像文件,并确定,取消自动从安装媒介/安装源检查的选框,输入 Generic default,表示默认操作系统。

调整CPU内存等参数

配置虚拟机磁盘容量,下一步。

填写虚拟机的名称,我这里选择了我的物理网卡并且设置模式为桥接,这是为了方便远程桌面使用。

点击完成后,稍等片刻就可以启动虚拟机窗口。

Windows x86 环境 虚拟机 安装银河麒麟V10 arm架构系统

0 准备材料

1、Kylin-Desktop-V10-SP1-Release-2107-arm64
2、QEMU
3、QEMU_EFI.fd
注意:在arm架构板卡安装可参照官方文档
跳过第1章节 QEMU

1 QEMU(虚拟机)

1、下载Qemu安装包

2、安装QEMU

注意:最好不要安装在Program Files目录下,后面运行命令行会因为空格,需要特殊处理。

3、在 Windows 10 上为 QEMU 安装 GUI

QEMU 默认使用命令行来创建虚拟机。 但是对于标准计算机用户使用 CLI 来管理虚拟机是不可行的,因此我们安装了另一个开源应用程序来为 QEMU 提供图形用户界面 (GUI)。 这个程序被称为 Qtemu
安装时最好新建一个空文件夹

4* 、设置 QEMU 管理器 Qtemu GUI(后面没有用Qtemu,因为没有arm架构选型)

安装 Qtemu 后,从 Windows 开始菜单运行它。

1、在第一列“QEMU 二进制文件路径”中复制粘贴这个:C:Program Filesqemu 或者输入你安装 QEMU 的路径。
2、对于第二列,输入路径 Qemu-img 文件是:C:Program Filesqemuqemu-img.exe

3、现在在计算机上的任何位置创建一个文件夹,用于保存 QEMU 创建的虚拟机。 然后单击第三列前面给出的文件夹图标以选择该特定文件夹。

5*、创建虚拟机

从 Qemu GUI 管理器 Qtemu,只需单击 机器 并选择 新机。

2 安装银河麒麟V10

麒麟软件下载:链接:https://pan.baidu.com/s/11QchFRDp8ZEHD8XtP2V5FA?pwd=321A
提取码:321A

5、命令行方式创建虚拟机

四、创建镜像文件

  命令很简单:qemu-img create D:\\Kylin\\KylinDesktopV10.img 80G

五、安装镜像

  主要是bios文件的选择:
下载获取对应架构(这里是aarch64)的UEFI固件

QEMU_EFI.fd

下面这段命令很关键

请先把路径切换到qemu的安装目录,再在命令行执行一下命令;注意各个文件的存放路径
qemu-system-aarch64.exe -m 6333 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\\Kylin\\QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=D:\\Kylin\\Kylin-Desktop-V10-SP1-Release-2107-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive file=D:\\Kylin\\KylinDesktopV10.img,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0

6、虚拟机启动画面


嘿嘿,国产系统哦

7、安装银河麒麟

到这才发现要求硬盘50G,而我只有40G。。。

自定义安装需要先创建根分区,后面不知道怎么弄,只得返回去重新生成虚拟机,把空间改大;


装了一个多小时…心累

要注意系统默认分区,系统盘分得特别小…如果是在真实arm架构机器上,硬盘最好不要低于80G。
所以最好预先调整磁盘大小–参考这篇文章

8、查看系统信息

确定是arm架构

9、安装完成后正常启动

qemu-system-aarch64.exe -m 6333 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\\Kylin\\QEMU_EFI.fd -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=D:\\Kylin\\KylinDesktopV10.img,id=hd0 -device virtio-blk-device,drive=hd0

3 搭建软件(B/S)环境(以下虚拟机、真实板卡通用)


仅仅是打开图形界面,就已经占用了全部CPU资源…

卸载软件

一直报磁盘空间不足,准备卸载一些乱七八糟的软件
sudo apt-get remove wps-office(这个软件英文名字也是找了半天。。。)

卸载360 传书 奇安信 天气
为了提高速度,可以禁用一些开机启动项:点击 系统设置——系统——开机启动 进行设置

关于输入密码老报错

当遇到账号锁定时

#查看kylin账号情况
pam_tally2 -u kylin
#重置次数
pam_tally2 -u kylin --reset

另外一个经验就是,密码种如果有大写字母,最好使用Caps键转换大小写,而不是使用shift+字母;

安装python3.7

安装依赖
sudo apt update

sudo apt-get install build-essential zlib1g-dev libbz2-1.0 libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb5.3 libpcap-dev xz-utils libexpat1-dev liblzma-dev libssl-dev openssl libffi-dev libc6-dev
下载安装包

下载源:
淘宝 https://npm.taobao.org/mirrors/python/
华为 https://mirrors.huaweicloud.com/python/

下载的文件后缀名为.tgz

以下为常规安装步骤

1、新建一个文件夹python3
sudo mkdir /usr/local/python3
2、解压文件
tar -zxvf Python-3.9.10.tgz
3、将解压后的文件复制到刚才新建的python3文件夹里 ,命令如下:
sudo cp -rf ./Python-3.9.10.tgz/* /usr/local/python3
也可以用mv命令,移动过去。

4、取得root 权限
打开终端,输入su
按照提示输入密码,若没有设置密码,那就设置一下
sudo passwd root
然后按提示输入密码后,取得root权限

5、编译安装python
一步一步来。
cd /usr/local/python3
./configure --enable-optimizations --prefix=/usr/local/python3 注:mips架构此步骤报错参考备注
make && make altinstall
约亿万年以后,安装完毕。

6、建立软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python37
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip37
7、键入python37 pip37,测试python,pip安装

done!

—note :pip numpy1.19 pymysql requests matplotlib scipy1.6.3

关于安装numpy速度慢 甚至卡死

https://www.cnblogs.com/releases/p/10178710.html

关于numpy与scipy冲突

建议安装库之前先升级pip,否则后面安装scipy会报 找不到numpy 的错误,而且升级之后安装速度明显提升

安装vsftpd

安装Mysql5.7(后改为8)请参照方案3

方案3 使用高版本MySQL8

整个安装过程参考文章:文章1

1 下载安装包

高版本的mysql,有支持arm架构,因此直接推荐安装高版本,这里安装的版本是8.0.28

2 清理历史环境:

别管以前装过没有,先干一遍,不然中间可能会遇到很多坑!

1.查看系统是否自带MySQL和MariaDB

复制代码
rpm -qa | grep mysql
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs
rpm -e mariadb-server --nodeps
yum -y remove mysql*
yum -y remove mariadb*
复制代码
2.删除MySQL和MariaDB相关包

rpm -e filename
yum remove 包名
3.查询所有的mysql相关文件,然后统统删除

find / -name mysql

3 解压缩mysql离线安装包

cd /usr/local/geoStar/
tar -xvf mysql-8.0.29-1.el8.aarch64.rpm-bundle.tar
逐个安装,命令如下:

【必须安装】–注意这里–nodeps --force的用法:是为了解决安装过程中的依赖报错,跳过依赖直接安装,否则可能无法正确安装

rpm -ivh mysql-community-common-8.0.21-1.el8.aarch64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.29-1.el7.aarch64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.29-1.el7.aarch64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.29-1.el7.aarch64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.29-1.el7.aarch64.rpm --nodeps --force
4 关于依赖错误


使用 --nodeps --force 忽略依赖

5 初始化MySQL
修改配置文件

vim /etc/my.cnf
在末尾补一行:
lower_case_table_names=1
1:数据库大小写不敏感
0:数据库大小写敏感

初始化数据库
mysqld --initialize --console
目录授权
chown -R mysql:mysql /var/lib/mysql/
启动mysql服务
systemctl start mysqld
查看临时密码
cat /var/log/mysqld.log
用临时密码登录
mysql -u root -p

修改密码XXXXXX

alter USER ‘root’@‘localhost’ IDENTIFIED BY ‘XXXXXX’;

授予远程连接
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
方案1

最开始参考的是这篇文章

解压rar文件
可以使用 unrar 进行解压, 使用 rar 命令,进行压缩。
unrar x [file]

我们 可以直接输入 unrar 查看帮助

MySQL安装依赖过程中出现依赖包冲突报错,后续MySQL无法进入。安装失败

依赖冲突,使用sudo apt --fix-broken install进行修复

我们看到他对报错的perl-base进行了升级

下面我们再重复刚才的MySQL安装步骤

卸载依赖问题(无法卸载时需要从源头开始卸载)


方案2

后续参考
文章1
文章2

尝试查看已安装的数据库文件1.查看系统是否自带MySQL和MariaDB

1.查看系统是否自带MySQL和MariaDB
rpm -qa | grep mysql
rpm -qa | grep mariadb
2、RPM命令执行失败:bash: rpm: 未找到命令…
apt-get update
apt-get install rpm
3、依赖冲突rpm安装失败
使用sudo apt --fix-broken install 来修复依赖冲突
4、如何将MySQL卸载干净


5、安装完成后出现mysqld找不到命令,失败!!!

各种问题
关于在linux 安装mysql后,为什么用rpm -qa |grep mysql 却什么都没有显示

这个不影响使用

查看MySQL日志路径

打开mysql配置文件

vim /etc/my.cnf

执行chown -R mysql:mysql /var/lib/mysql/时报错:chown: ‘mysql.mysql’: 无效的用户
sudo groupadd mysql     //创建mysql组
sudo useradd -g mysql mysql //创建mysql用户添加到mysql组


可以看出之前是没有加入mysql用户名,加入之后在执行就OK

systemctl start mysqld 失败问题


参照文章去MySQL log文件中查找报错信息

发现log中没有报错信息,参考这篇文章,结合报错信息,说明当前用户没有写入日志的权限,修改完成后在执行,依然报错,不过这时日志里有了错误信息

参考这篇文章,也就还是权限问题,直接对文件夹进行权限修改: sudo chown mysql:mysql /var/run/mysqld/
修改后启动成功!

4 报错汇总

编译安装期间

mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (40)

参考文章1
后来想到可能是MySQL服务没有开机自启动
参考文章2

5 补充

关于麒麟V10无法联网

参考文章1
使用iptables -L -n --line-numbers查看防火墙设置

删去REJECT项,依然没有解决问题,域名无法解析,想到了是不是DNS有问题,参考文章2 下面有评论也说DNS有问题

参考文章3 修改DNS,成功!!

一、首先修改 /etc/systemd/resolved.conf文件,在其中添加DNS信息

在终端中执行以下命令:

sudo vim /etc/systemd/resolved.conf

/etc/systemd/resolved.conf文件大致内容如下:

取消DNS项的注释并在其中添加DNS的信息,如下所示:

[Resolve]
DNS=114.114.114.114
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=allow-downgrade
#DNSOverTLS=no
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

然后保存并退出。

二、重启服务,启用配置

在终端中执行以下命令:

sudo systemctl daemon-reload
sudo systemctl restart systemd-resolved

然后再查看/etc/resolv.conf文件就可以看到新的DNS信息已经写入其中了。

关于.sh 自启动文件失效

参考文章
sudo vim /etc/profile
在其末尾加入
cd xx/xx/xx/
./xx.sh

可以开机自启sh脚本文件了!
注意:应设置start.sh的权限 右键sh文件,属性——权限——可执行勾选

执行自启动后,首次启动系统可能会出现“允许执行”对话框。

BIOS

BIOS基础

启动模式

注:未经许可,不得转载;菜鸟做的记录,欢迎交流与指教~~~@ scu-SMaRT

以上是关于银河麒麟 ARM架构 Qemu虚拟机的主要内容,如果未能解决你的问题,请参考以下文章

Linux operation 23Win 10 64位(X86 架构CPU)安装ARM架构的虚拟机(银河麒麟高级服务器操作系统 V10)

银河麒麟 arm架构 ubuntu docker制作jdk镜像

ARM架构下银河麒麟V10系统安装最新版本Docker

Ubuntu 14.04 下搭建ARM架构的QEMU虚拟机

基于x86架构的CentOS7虚拟机通过qemu安装ARM架构OpenEuler虚拟机

Ubuntu18.04使用qemu搭建ARM64架构虚拟机(方法一)