QEMU搭建arm32的ubuntu20.04虚拟机

19 篇文章 1 订阅
4 篇文章 0 订阅

1.编译内核

#获取内核源码
wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.4.18.tar.xz
tar -vxf linux-5.4.18.tar.xz

#编译内核
mkdir -p output
KERNEL_OUT=$PWD/output

cd linux-5.4.18

export ARCH=arm
export CROSS_COMPILE=/usr/local/arm/gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-

make O=$KERNEL_OUT vexpress_defconfig
make O=$KERNEL_OUT zImage -j4
make O=$KERNEL_OUT modules -j4
make O=$KERNEL_OUT dtbs -j4

等待编译完成

内核镜像在:arch/arm/boot/zImage
设备树文件在:arch/arm/boot/dts/vexpress-v2p-ca9.dtb

2.制作arm32的ubuntu20.04跟文件系统

  • 2.1 安装 debootstrap 工具
sudo apt-get install binfmt-support qemu qemu-user-static debootstrap
  • 2.2 制作ubuntu20.04文件系统
mkdir -p ubuntu20.04_rootfs

sudo debootstrap --arch=armhf --foreign focal ubuntu20.04_rootfs/ https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
#--arch:指定要制作文件系统的处理器体系结构,比如 armhf、arm64
#focal:指定 ubuntu 的版本。focal 是 ubuntu 20.04 系统
#--foreign: 只执行引导的初始解包阶段,仅仅下载和解压
#https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/: 清华大学开源 ubuntu 镜像源地址

sudo cp /usr/bin/qemu-aarch64-static ubuntu20.04_rootfs/usr/bin/
sudo chroot ubuntu20.04_rootfs/ debootstrap/debootstrap --second-stage
  • 2.3 设置根文件系统的用户名和密码
#进入文件系统
sudo chroot ubuntu20.04_rootfs/

#修改root密码
passwd root

#添加用户
adduser username

#将username添加到/etc/sudoers中,否则无法使用sudo
sudo chmod +w /etc/sudoers
#修改/etc/sudoers,在root    ALL=(ALL:ALL) ALL下添加:
username    ALL=(ALL:ALL) ALL

sudo chmod -w /etc/sudoers

#设置编码类型
locale-gen zh_CN.UTF-8

#安装网络工具
apt update
apt install net-tools
apt install network-manager
apt install openssh-server
  • 2.4 制作文件系统镜像文件
dd if=/dev/zero of=ubuntu20.04_arm.img bs=1M count=2048
mkfs.ext4 ubuntu20.04_arm.img

mkdir -p tmpfs
mount -t ext4 ubuntu20.04_arm.img tmpfs/ -o loop
cp -af ubuntu20.04_rootfs/* tmpfs/
umount tmpfs
chmod 777 ubuntu20.04_arm.img

3.qemu启动脚本run.sh

#!/bin/bash
#https://wiki.qemu.org/Documentation

kernel_root=$PWD/system-image
kernel_image=$kernel_root/zImage
kernel_dtb=$kernel_root/vexpress-v2p-ca9.dtb
rootfs_image=$PWD/ubuntu20.04_arm.img

qemu-system-arm \
	-M vexpress-a9 \
	-m 1024M \
	-smp 4 \
	-nographic \
	-kernel $kernel_image \
	-dtb $kernel_dtb \
	-sd $rootfs_image \
	-append "noinitrd root=/dev/mmcblk0 rw rootwait earlyprintk console=ttyAMA0"	\
	-net nic -net user,hostfwd=tcp::2222-:22	\
	-vnc :1

exit 0

参数说明:

-M:指定开发板型号
-m:指定内存大小
-smp:指定cpu核心数
-nographic:无图形界面启动
-kernel:内核镜像
-dtb:设备树镜像
-sd:文件系统镜像
-append:传递给内核的启动参数
-net:指定网络类型,并将22端口映射为2222用于ssh登录
-vnc:指定vnc的端口,端口为5900+冒号后的数字
sudo chmod +x run.sh

4.启动登录

#进入系统
./run.sh

#登陆后获取网络ip
sudo dhclient

5.配置ubuntu20.04自动获取ip

第4步中,需要每次开机都执行sudo dhclient才能获取到ip,过于麻烦。ubuntu20.04网络的配置信息将不再保存在/etc/network/interfaces文件中,虽然该文件依然存在,但是内容是空的。新系统已经使用netplan管理网络,可以在/etc/netplan/中创建00-installer-config.yaml配置文件实现:

sudo vim /etc/netplan/00-installer-config.yaml

添加如下内容,其中eth0为使用的网卡:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      nameservers:
        addresses: [114.114.114.114,223.5.5.5]

保存后执行以下命令生效:

sudo netplan apply

6.解决apt update失败问题

执行 apt update 命令报错:
Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification

解决方法:
手动下载 ca-certificates deb 文件重新安装最新版。

wget http://archive.ubuntu.com/ubuntu/pool/main/c/ca-certificates/ca-certificates_20210119~20.04.2_all.deb
sudo dpkg -i ./ca-certificates_20210119~20.04.2_all.deb

7.制作好的系统镜像

git clone https://e.coding.net/zhang_ge/qemu/qemu_arm32.git
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: 好的,下面是在 Ubuntu 20.04 上安装虚拟的步骤: 1. 打开终端,更新软件包列表: ``` sudo apt update ``` 2. 安装虚拟软件包: ``` sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager ``` 3. 添加当前用户到 libvirt 和 kvm 组: ``` sudo adduser $USER libvirt sudo adduser $USER kvm ``` 4. 启动 libvirtd 服务: ``` sudo systemctl enable --now libvirtd ``` 5. 打开 virt-manager 图形界面: ``` virt-manager ``` 6. 在 virt-manager 界面中,点击 "新建虚拟" 按钮,然后按照向导设置虚拟的参数,如虚拟的操作系统、磁盘大小、内存大小等。 7. 完成虚拟的设置后,可以启动虚拟并开始使用。 希望这些步骤对您有帮助! ### 回答2: Ubuntu 20.04是一个非常流行的Linux操作系统,它的安装方法与其他操作系统类似,但在虚拟上安装可能会有不同的步骤和要求。下面是一个简单的Ubuntu 20.04虚拟安装教程。 第一步:下载Ubuntu 20.04 ISO文件 在安装Ubuntu 20.04之前,需要从官方网站下载Ubuntu 20.04的ISO镜像文件。可以通过Google搜索或直接访问Ubuntu官方网站。 第二步:创建并配置虚拟 打开虚拟软件(如VirtualBox),单击“新建”按钮,然后在下一个屏幕上为虚拟设置名称、类型和版本。设置完成后,单击“下一步”按钮打开“内存大小”设置的屏幕。 接下来,在新屏幕上设置虚拟的硬盘和大小。对于Ubuntu 20.04,建议设置至少20GB的存储空间。 最后,单击“创建”按钮以创建虚拟。在此之后,单击“设置”按钮,选择“存储”选项卡,并添加从之前下载的ISO文件中的Ubuntu 20.04镜像文件。 第三步:安装Ubuntu 20.04操作系统 现在,启动虚拟并开始安装Ubuntu 20.04。在安装向导中,可以选择“安装Ubuntu”并按照提示操作。在“安装类型”页面上,选择“清除Ubuntu 20.04并重新安装”或“从现在起安装Ubuntu 20.04”,然后单击“继续”按钮。 在接下来的页面上,选择时区、语言、键盘布局并设置用户名和密码等信息。最后,单击“安装”按钮以开始安装Ubuntu 20.04。 第四步:安装 Ubuntu 20.04 安装虚拟增强功能 安装Ubuntu 20.04后,需要安装虚拟增强功能以获得更好的性能和功能。安装增强功能的方法因虚拟软件而异,但在VirtualBox的情况下,可以在菜单栏中选择“设备”>“安装增强功能”,并按照指示完成安装。 到此为止,安装过程就完成了。现在可以开始使用Ubuntu 20.04来编写代码,运行程序和执行其他任务。 ### 回答3: Ubuntu是一款开源的操作系统,由于其安全、稳定、易用和免费等优点,在很多领域被广泛应用。在实验、开发等需要测试不同版本的程序时,为了避免对本地器造成不必要的影响,可以选择在虚拟上进行操作。本文将介绍如何在Windows10操作系统上使用VMware虚拟安装Ubuntu 20.04系统。 第一步:准备工作 1. 下载VMware软件安装包(个人使用可以选择VMware Workstation Player 15.x); 2. 下载Ubuntu20.04操作系统镜像文件; 3. 确保计算有足够的存储空间。 第二步:创建虚拟 1. 打开VMware软件,选择“创建新的虚拟”; 2. 在虚拟配置向导中,选择“选择典型(推荐)”; 3. 在“安装程序光盘映像文件(iso)中指定操作系统”下,浏览到之前下载好的Ubuntu20.04镜像文件; 4. 输入虚拟名称,并指定虚拟的保存位置; 5. 选择最大磁盘容量并确定虚拟的大小; 6. 配置虚拟的自定义硬件,分配CPU、内存大小、网络连接等资源。 第三步:安装Ubuntu 20.04操作系统 1. 启动虚拟,选择“开始Ubuntu”; 2. 在Ubuntu20.04系统安装界面中,选择“安装Ubuntu”; 3. 选择安装语言和时区; 4. 确定安装类型、磁盘分区和挂载点; 5. 输入用户名和密码,并等待系统安装完毕。 第四步:常见问题解决方法 1. 网络问题:若出现网络连接问题,先检查虚拟的网络配置是否正确,确认网络是否连通,再尝试重新安装网络驱动软件。 2. 虚拟启动问题:若出现虚拟无法启动或无法正常进入操作系统等问题,可以尝试恢复虚拟至最初状态或重新安装Ubuntu20.04操作系统。 3. 硬件兼容问题:若出现硬件兼容方面的问题,可以先更新VMware软件,或者在虚拟中添加一些虚拟硬件进行兼容性测试。 总的来说,使用VMware虚拟安装Ubuntu20.04操作系统是一种方便、安全、稳定的方式。希望这篇教程可以帮助大家快速入门操作系统虚拟化技术。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值