基于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架构系统