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

Posted redrose2100

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于x86架构的CentOS7虚拟机通过qemu安装ARM架构OpenEuler虚拟机相关的知识,希望对你有一定的参考价值。

【原文链接】基于x86架构的CentOS7虚拟机通过qemu安装ARM架构OpenEuler虚拟机

(1)首先需要有一台CentOS虚拟机,如没有可参考 VMWare安装CentOS7操作系统的虚拟机 安装一台CentOS虚拟机

(2)安装基础命令

yum install -y net-tools
yum install -y wget

(3)下载ARM架构的centos7操作系统镜像

mkdir -p /opt/os
cd /opt/os
wget https://repo.openeuler.org/openEuler-22.03-LTS/ISO/aarch64/openEuler-22.03-LTS-aarch64-dvd.iso --no-check-certificate
chmod 777 /opt/os/openEuler-22.03-LTS-aarch64-dvd.iso

(4)下载ARM架构的EFI
路径为 /usr/share/AAVMF/AAVMF_CODE.fd

yum install -y http://mirror.centos.org/altarch/7/os/aarch64/Packages/AAVMF-20180508-6.gitee3198e672e2.el7.noarch.rpm

(5)安装基础依赖

yum install -y kvm qemu virt-viewer virt-manager libvirt libvirt-python python-virtinst
yum install libguestfs-tools -y
yum install virt-install.noarch -y
systemctl enable libvirtd
systemctl start libvirtd
usermod -aG libvirt $(whoami)
yum install virt-install virt-viewer virt-manager -y

(6)修改qemu配置文件

vi /etc/libvirt/qemu.conf

将如下两行放开注释

(7)重启虚拟机

reboot

(8)下载qemu

cd /opt
wget https://download.qemu.org/qemu-4.2.0.tar.xz

(9)安装基础依赖

yum install python2 zlib-devel glib2-devel pixman-devel gcc -y

(10)将qemu解压

cd /opt/
tar xf qemu-4.2.0.tar.xz

(11)安装qemu

cd qemu-4.2.0/
./configure --target-list=aarch64-softmmu --prefix=/usr
make -j8
make install

(12)创建磁盘

rm -rf /var/lib/libvirt/images/test.img
qemu-img create /var/lib/libvirt/images/test.img 30G

(13)启动虚拟机

qemu-system-aarch64 -m 1024 -cpu cortex-a57 -smp 2 -M virt -bios /usr/share/AAVMF/AAVMF_CODE.fd -nographic -drive if=none,file=/opt/os/openEuler-22.03-LTS-aarch64-dvd.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=/var/lib/libvirt/images/test.img,id=hd0 -device virtio-blk-device,drive=hd0

(14)选择“Troubleshutiing”,然后输入 -e

(15)然后将 console=tty0 删除

(16)然后使用快捷键 ctrl + x 进入安装界面,回车后开始安装

(17)然后按照提示设置安装选项即可

(18)安装完成后,输入root 和密码,即可登录了

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

参考技术A x86 架构的Ubuntu系统

本次安装选用Debian ARM

kernel

initrd

Debian-ARM iso

安装 QEMU 虚拟机

sudo apt-get install qemu-system-arm

1. 创建一个directory来存放相关文件

mkdir qemu_debian && cd qemu_debian

2. 获取kernel 和 initrd (7.9 Wheezy 版本)

wget http://ftp.debian.org/debian/dists/Debian7.9/main/installer-armel/20130430/images/versatile/netboot/initrd.gz

wget http://ftp.debian.org/debian/dists/Debian7.9/main/installer-armel/20130430/images/versatile/netboot/vmlinuz-3.2.0-4-versatile

3. 获取iso文件

wget http://get.debian.org/cdimage/archive/7.9.0/armel/iso-cd/debian-7.9.0-armel-netinst.iso

1. 创建虚拟硬盘 (大小随意)

qemu-img create debian.img 20G

2. 载入 ARM kernel, initrd 以及ISO

qemu-system-arm -M versatileab -kernel ./vmlinuz-3.2.0-4-versatile -initrd ./initrd.gz -cdrom ./debian-7.9.0-armel-netinst.iso -hda debian.img

这个时候, qemu已经成功启动, 可以按需安装debian arm系统

系统安装完成后, 需要抽出kernel和initrd并复制到我们的虚拟硬盘里, 这个有一个地方要稍微注意一下. 因为/root 的分区有偏移量, 所以直接挂载是挂载不上的.

sudo fdisk -l -u debian.img

运行上面的命令可以看到有2048个unit的偏移量, 一个unit是512个bytes

所以正确的挂载应该加上这2048的偏移量.

sudo mount -o loop,offset=$((2048 * 512)) debian.img /mnt

抽出的步骤就简单多了

mkdir boot

cp /mnt/boot/* boot/ -rv

至此, 基于QEMU搭建ARM架构的虚拟机已经完成

启动虚拟机并将端口转发到2222以便ssh登陆

qemu-system-arm -M versatileab -kernel ./boot/vmlinuz-3.2.0-4-versatile -initrd ./boot/initrd.img-3.2.0-4-versatile -hda debian.img -m 1024 -append "root=/dev/sda1" -redir tcp:2222::22

这样启动虚拟机之后, 就可以ssh到localhost的2222端口登陆了.

以上是关于基于x86架构的CentOS7虚拟机通过qemu安装ARM架构OpenEuler虚拟机的主要内容,如果未能解决你的问题,请参考以下文章

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

arm搭建x86运行时

x86的PC机上运行ARM架构开发板

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

KVM、QEMU和KQemu有啥区别?

qemu-user-static, 在x86机器上编译arm架构docker