使用Qemu在Windows上模拟arm平台并安装debian10 arm系统(cd镜像) 安装记录

参考:使用Qemu在Windows上模拟arm平台并安装国产化操作系统_viyon_blog的博客-CSDN博客_qemu windows

镜像:debian-10.12.0-arm64-xfce-CD-1.iso

环境:qemu虚拟机,宿主机win10,amd64

QEMU_EFI.fd:

(298条消息) qemu虚拟机的bios文件

虚拟网卡软件:openvpn-connect-3.3.6.2752_signed.msi

命令行工具:powershell

背景介绍

我们平常使用的PC一般都是x86架构的Intel CPU,如果由于某些原因需要使用arm架构的操作系统,我们无法使用一些虚拟机软件(如vmware workstation、virtual box等) 进行安装,因为这种类型的虚拟机软件只能安装和宿主机的CPU相同架构的系统。不过,我们可以使用qemu软件,该软件可以理解为一个模拟器,可以模拟一个arm架构的虚拟机。qemu有时候也被称为虚拟机软件。

本文简单介绍了如何在windows系统中安装并使用qemu安装arm架构的kylinV10系统(其它类似的操作系统也可以参考,仅仅是安装时使用的ISO镜像不同),可以在x86架构的windows上运行arm架构的虚拟机,以便在windows上可以使用其它cpu架构的操作系统进行开发、编译、验证问题等操作。仅供需要的人员作为参考。

文档说明

本次安装后虚拟机上网使用的是tap模式,所以启动命令及上网配置都是采用的tap模式,如果使用其它模式,安装和启动命令可能稍微有些不同。

主要步骤

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

安装qemu软件

安装qemu

将qemu的安装包下载下来后,直接双击执行就可以,和安装其它的软件一样,不再赘述。安装过程中请记住安装的路径,后面配置环境变量的时候需要用到。

配置环境变量

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

安装虚拟网卡

安装openvpn

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

注意:不一定非得安装这个软件,安装别的vpn软件也可以,只要能创建虚拟的网卡就可以。

修改网卡名称

安装完成后,在网络连接界面可以看到新增加了一块网卡,如下图所示:

注意:大的红框中的网卡是新增加的,黄色框中的名称是经过我修改后的,安装完openven后可能不是这个名字,下面马上要说修改网卡名称的操作。只需要关注小的红框中的网卡类型是否是“TAP-Windows Adapter”即可,找到这种类型的网卡就是新增加的网卡。且连接状态也是未连接状态,不用关注,等启动虚拟机后即可变为正常状态。红框下面的“以太网”是我电脑的真实物理网卡。

右键单击新增加的网卡,重命名该网卡,如下图所示:

共享物理网卡的网络

右键单击本机物理网卡,如下图所示:

点击“属性”按钮,在弹出的界面中选择“共享”选项,如下图所示:

选中“允许其它网络通过此计算机的Internet连接来连接”复选框,“家庭网络连接”项选择刚才新增加的网卡(且是修改过名字后的名称),选中“允许其它网络用户控制或禁用共享的Internet连接”,确定即可。

注:在bebian安装过程中我把上面的网络共享临时关闭了,防止在安装中联网

创建qemu虚拟机

1、创建虚拟机磁盘

create -f qcow2 debianArm.qcow2 128G

2、挂载cd镜像启动虚拟机安装系统

qemu-system-aarch64.exe -m 8192 -cpu cortex-a76 -smp 8,sockets=4,cores=2 -M virt -bios E:\qemuData\QEMU_EFI.fd -device -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=E:\qemuData\debianArm.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=E:\software\os\debian-10.12.0-arm64-xfce-CD-1.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net tap,ifname=tag0

 

 

 

 

 

 

 

 

 

 

 

  比较长的安装过程。。。。。。

 

 漫长等待,可能和去虚拟机有关。。。

 安装完成!

qemu冷启动虚拟后,发现启不来,报startup.nsh什么什么的错误,这样处理:

在shell下输入:

fs0:
edit startup.nsh

向该文件输入以下内容:

\EFI\debian\grubaa64.efi

\EFI\debian\grubaa64.efi

如果是其它系统或架构,可以用ls命令查看具体文件名。

ctrl+s
ctrl+q
保存退出
reset

用qemu启动的命令:

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

普通用户加入到sudo组中:

1.切换到超级用户:$ su

2.打开/etc/sudoers文件:$vi /etc/sudoers

3.修改文件内容:

找到“root    ALL=(ALL)       ALL”一行,在下面插入新的一行,内容是“ppl    ALL=(ALL)       ALL”,然后在vi键入命令“:wq!”保存并退出。

注:这个文件是只读的,不加“!”保存会失败。

4.退出超级用户:$ exit

vi编辑器发现不太正常,可以用如下方法解决,我用的是方法二:

发现Debian下Vi编辑器在文本输入模式时,不能正确使用方向键和退格键,或者是输入内容无法正常的内容,解决方法:

解决方法一
用vi 打开/etc/vim/vimrc.tiny,输入以下两行:

set nocompatible

set backspace=2

这样就切换到非兼容模式,并且退格键也可以正常使用了。
解决方法二
vi 用不了自然编辑不了/etc/vim/vimrc.tiny。所以我们用sed插入。

#sed -i '$a\set nocompatible' /etc/vim/vimrc.tiny

#sed -i '$a\set backspace=2' /etc/vim/vimrc.tiny
执行上面这2条。

配置网卡为静态地址:

 

       重启网络我用的是 /etc/init.d/networking restart 

 输入密码后生效

配置DNS

在银河麒麟桌面操作系统V10 SP1 中修改DNS信息,直接修改/etc/resolv.conf文件中的DNS信息,不能生效。
应该参考如下步骤:

一、首先修改 /etc/systemd/resolved.conf文件,在其中添加DNS信息
在终端中执行以下命令:

sudo vim /etc/systemd/resolved.conf

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

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

取消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信息已经写入其中了。


 

通过网络安装ssh时提示Media change: please insert the disc labeled,查资料说是要屏蔽默认安装源,如下操作后正常:

sudo vi /etc/apt/sources.list

屏蔽下图中的安装源,顺便添加国内安装源:

deb http://mirrors.163.com/debian/ buster main contrib non-free deb http://mirrors.163.com/debian/ buster-updates main contrib non-free deb http://mirrors.163.com/debian-security/ buster/updates main contrib non-free

修改后,apt-get update 更新安装源索引

 安装SSH

参考:(298条消息) Debian安装ssh_~天下亦有不散之筵席~的博客-CSDN博客_debian sshhttps://blog.csdn.net/weixin_48646819/article/details/120034234

apt-get install -y openssh-server

编辑/etc/ssh/sshd_config文件

#也可以使用vim进行编辑
gedit /etc/ssh/sshd_config

   #添加以下内容
   PermitRootLogin yes

重启ssh服务

/etc/init.d/ssh restart

查看ssh服务状态

/etc/init.d/ssh status

以后就可以通过ssh工具连接或使用WinSCP上传文件了!

安装java环境

载下Linux环境下的jdk8,请去(Java Downloads | Oracle)中下载jdk的安装文件

我们下载的是:jdk-8u351-linux-aarch64.tar.gz

新建目录/etc/java,用WinSCP将Jdk包上传到/etc/java下;

解压:

1 $ cd  /etc/java
2 $ tar  -zxvf  jdk-8u311-linux-x64.tar.gz

修改环境变量

至此,我们最后需要修改环境变量,通过命令

vi /etc/profile
在文件末尾添加

export JAVA_HOME=/etc/java/jdk1.8.0_311/
export JRE_HOME=/etc/java/jdk1.8.0_311/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

然后,保存并退出

之后,通过命令source /etc/profile或重启电脑profile文件配置立即生效

测试是否安装成功

使用java -version,出现版本为java version "1.8.0_351"

安装redis

查询版本:

apt-cache madison redis-server

#更新环境(可选)
apt-get update -y
apt-get upgrade -y

#debian仓库中默认安装redis的版本
apt-get install redis-server -y

 #启动redis,并且设置开机自动启动redis服务

sudo systemctl start redis-server

sudo systemctl enable redis-server

查看redis.conf路径

参考:(298条消息) linux如何查找redis.conf 位置_普通网友的博客-CSDN博客_redisconf存放位置https://blog.csdn.net/m0_55070913/article/details/126433609

首先 sudo systemctl status redis

 然后 sudo cat /lib/systemd/system/redis-server.service

 由此可见,配置文件的位置在:/etc/redis/redis.conf

在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,再访问redisd时候还是报错,如下

redis开启远程访问

参考:redis开启远程访问 - 破阵 - 博客园 (cnblogs.com)https://www.cnblogs.com/liusxg/p/5712493.html

redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf

解决办法:注释掉bind 127.0.0.1可以使所有的ip访问redis

若是想指定多个ip访问,但并不是全部的ip访问,可以bind

修改办法:protected-mode no

Redis设置密码

参考:(298条消息) Redis设置密码_惜惜然的博客-CSDN博客_redis设置密码https://blog.csdn.net/m0_58746619/article/details/125865904

设置方法:
方法一:通过命令设置密码(临时生效,重启服务器后密码失效)
 使用redis-cli连接上redis,执行如下命令:

config set requirepass 123456
执行完毕,无需重启,退出客户端,重新登录就需要输入密码了 

方法二:通过配置文件redis.conf设置密码(永久生效)
vi编辑器打开redis.conf

[root@localhost /]# vi /etc/redis.conf
输入/requirepass 找到requirepass关键字,后面跟的就是密码,默认是注释掉的,即不需要密码

重启redis

sudo systemctl stop redis-server

sudo systemctl start redis-server
 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QEMU是一个开源的虚拟机监控程序,它可以在多个主机平台上运行,并且支持模拟多种架构的处理器。在Windows 7操作系统上,我们可以利用QEMU模拟ARM平台。 要在Windows 7上使用QEMU模拟ARM平台,首先我们需要从QEMU官方网站下载和安装适用于Windows的版本。安装完成后,我们可以通过命令行或者图形界面来进行虚拟机的配置和运行。 在命令行中,我们可以使用类似以下的命令来启动ARM虚拟机: qemu-system-arm -M virt -m 1024 -cpu cortex-a15 -kernel kernel_image -nographic 这个命令中,-M参数指定了要模拟ARM机型,-m参数指定了虚拟机的内存大小,-cpu参数指定了要模拟ARM处理器类型,-kernel参数指定了要加载的内核镜像文件,-nographic参数指定了不使用图形界面。 除了命令行方式外,QEMU也提供了图形化界面来进行虚拟机的配置。我们可以通过QEMU Manager这样的工具来方便地管理和运行虚拟机。在图形化界面中,我们可以选择ARM平台和相关参数,然后加载内核镜像并启动虚拟机。 使用QEMU模拟ARM平台Windows 7上的好处是可以方便地进行ARM软件开发和测试,而不需要真实的ARM设备。此外,QEMU具有快速和高效的虚拟化技术,可以提供接近真实硬件的性能,方便开发人员进行调试和优化。 然而,由于QEMU是一个模拟器,而不是一个完整的硬件仿真器,所以在模拟ARM平台时可能会有一些功能或性能上的差异。此外,配置和使用QEMU可能需要一些专业的知识和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值