当前位置: 首页 > news >正文

x86版的ubuntu上使用qemu运行arm版ubuntu

一直以来接触的都是X86系列的CPU架构,从来没接触过ARM的CPU架构,今天抽空尝试一下安装一个ARM版本的Linux,选定ubuntu,即在X86架构的Ubuntu服务器上使用qemu模拟器来运行ARM版本的ubuntu。

一、 下载ARM版的ubuntu

去https://cn.ubuntu.com/download/server/arm下载最新的稳定版本,目前是ubuntu-24.04.2-live-server-arm64.iso

二、 宿主机安装qemu

sudo apt update
sudo apt install qemu-system-arm qemu-efi qemu-utils libvirt-daemon-system

三、下载 UEFI 固件(必需)

wget https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd

四、创建虚拟磁盘

这里使用qcow2格式,它支持动态分配空间。

qemu-img create -f qcow2 ubuntu.img 60G

五、安装ARM版本Ubuntu

将下载的ubuntu-24.04.2-live-server-arm64.iso和QEMU_EFI.fd放在与虚拟磁盘文件ubuntu.img同一个目录下。

使用下面的指令安装系统:

sudo qemu-system-aarch64 -m 8192 -cpu max -smp 8 -M virt -bios QEMU_EFI.fd -device virtio-gpu-pci -device virtio-net-device,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2622-:22 -drive file=ubuntu.img,format=qcow2,if=virtio -cdrom ubuntu-24.04.2-live-server-arm64.iso -nographic -accel tcg,thread=multi

主要参数说明:

  • -m 8192 指定8G内存
  • -cpu max 指定CPU类型,笔者有使用过cortex-a72和cortex-a53,发现都有一些问题,还是max最稳定
  • -smp 8 指定CPU核心数,这里是8核
  • -bios QEMU_EFI.fd 使用BIOS的文件
  • -netdev user,id=net0,hostfwd=tcp::2622-:22 设置网络设备,并设定虚拟机中的端口22映射到宿主机的2622端口,方便后面使用远程SSH连接
  • -drive file=ubuntu.img,format=qcow2,if=virtio 指定虚拟磁盘文件及格式
  • -cdrom ubuntu-24.04.2-live-server-arm64.iso 指定光驱文件
  • -nographic 没有图形界面,由于安装的服务器版本,不需要图形界面
  • -accel tcg,thread=multi 使用TCG及多线程加速,这里由于CPU的架构不能,不能使用-enable-kvm参数来指定KVM加速

接下来安装就类似笔者前面博文详细安装Ubuntu 21.10介绍的类似了。只不过笔者偷懒,没按照文中所述编辑分区,而是使用的Ubuntu的默认设置,导致虽然选择了使用整个磁盘,但是并没有完全使用上整个磁盘的空间,有一个使用的空间。如果在安装完成后,要想完全使用磁盘空间,参见步骤六。

安装完成后,还是使用前面的指令运行,可以看到如下画面,表示启动成功了:

在这里插入图片描述
此时可以使用远程SSH工具连接宿主机的2622号端口使用Shell。由于是使用qemu模拟的,性能与虚拟还是有差距,还是能流畅使用。

六、磁盘空间

由于安装过程中完全使用的Ubuntu的默认分区选项,导致有一部分磁盘空间未能使用上,需要将它利用起来,分配到根目录。

使用df命令查看磁盘使用情况:

mgr@ubuntua:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              792M  636K  792M   1% /run
efivarfs                           256K  2.6K  254K   1% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv   28G  6.2G   21G  24% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/vda2                          2.0G   99M  1.7G   6% /boot
/dev/vda1                          1.1G  6.4M  1.1G   1% /boot/efi
tmpfs                              792M   12K  792M   1% /run/user/1000

可以看到磁盘只使用了30G左右,与60G的空间相差甚远。使用lsblk查看:

mgr@ubuntua:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda                       253:0    0   60G  0 disk 
├─vda1                    253:1    0    1G  0 part /boot/efi
├─vda2                    253:2    0    2G  0 part /boot
└─vda3                    253:3    0 56.9G  0 part └─ubuntu--vg-ubuntu--lv 252:0    0 28.5G  0 lvm  /
vdb                       253:16   0  2.7G  1 disk 
├─vdb1                    253:17   0  2.7G  1 part 
└─vdb2                    253:18   0  5.4M  1 part 

可以看到vda356.9G,实际只有28.9G分配给了根目录。再使用parted命令查看:

mgr@ubuntua:~$ sudo parted /dev/vda unit GB print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name  Flags0.00GB  0.00GB  0.00GB  Free Space1      0.00GB  1.13GB  1.13GB  fat32              boot, esp2      1.13GB  3.28GB  2.15GB  ext43      3.28GB  64.4GB  61.1GB64.4GB  64.4GB  0.00GB  Free Space

可以看到vda3的结束大小为64.4GFree Space行的空间大小为0,说明不是未分区的空间,不需要分区。如果没有parted命令,使用下面命令安装:

sudo apt install parted

查看逻辑卷ubuntu-vg

mgr@ubuntua:~$ sudo vgdisplay ubuntu-vg--- Volume group ---VG Name               ubuntu-vgSystem ID             Format                lvm2Metadata Areas        1Metadata Sequence No  2VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                1Open LV               1Max PV                0Cur PV                1Act PV                1VG Size               <56.95 GiBPE Size               4.00 MiBTotal PE              14578Alloc PE / Size       7289 / 28.47 GiBFree  PE / Size       7289 / 28.47 GiBVG UUID               SDuzTq-ozz1-weLd-M5O3-sVt0-AaCI-F9y442

可以看到Free PE / Size行,还有28.47G的空间,使用下面的命令扩展卷:

mgr@ubuntua:~$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lvSize of logical volume ubuntu-vg/ubuntu-lv changed from 28.47 GiB (7289 extents) to <56.95 GiB (14578 extents).Logical volume ubuntu-vg/ubuntu-lv successfully resized.

再调整文件系统:

mgr@ubuntua:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 8
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 14927872 (4k) blocks long.

现在使用df命令查看磁盘情况,正常了:

mgr@ubuntua:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              792M  632K  792M   1% /run
efivarfs                           256K  2.6K  254K   1% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv   56G  6.2G   48G  12% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/vda2                          2.0G   99M  1.7G   6% /boot
/dev/vda1                          1.1G  6.4M  1.1G   1% /boot/efi
tmpfs                              792M   12K  792M   1% /run/user/1000

在这里插入图片描述

如果本文对你有帮助,欢迎点赞收藏!


文章转载自:
http://auric.dxwdwl.cn
http://adductor.dxwdwl.cn
http://bondservice.dxwdwl.cn
http://abound.dxwdwl.cn
http://beatage.dxwdwl.cn
http://anoa.dxwdwl.cn
http://cafetorium.dxwdwl.cn
http://anna.dxwdwl.cn
http://blessed.dxwdwl.cn
http://catarrh.dxwdwl.cn
http://aba.dxwdwl.cn
http://balletic.dxwdwl.cn
http://bedeswoman.dxwdwl.cn
http://anywhere.dxwdwl.cn
http://cdgps.dxwdwl.cn
http://bucketful.dxwdwl.cn
http://autograft.dxwdwl.cn
http://cerdar.dxwdwl.cn
http://cholecyst.dxwdwl.cn
http://bosque.dxwdwl.cn
http://abfarad.dxwdwl.cn
http://alarming.dxwdwl.cn
http://cholecystectomized.dxwdwl.cn
http://caribou.dxwdwl.cn
http://burthen.dxwdwl.cn
http://cardiomegaly.dxwdwl.cn
http://cello.dxwdwl.cn
http://alphascope.dxwdwl.cn
http://angelical.dxwdwl.cn
http://appendicle.dxwdwl.cn
http://www.dtcms.com/a/280725.html

相关文章:

  • Java项目:基于SSM框架实现的网盘管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • EMS4100芯祥科技USB3.1高速模拟开关芯片规格介绍
  • iOS高级开发工程师面试——多线程
  • LVS三种模式实战
  • Unity沉浸式/360View/全景渲染
  • 新手向:Python数据处理Excel报表自动化生成与分析
  • Zookeeper入门安装与使用详解
  • Java行为型模式---迭代器模式
  • Linux、Ubuntu和CentOS的关系与区别
  • 设计模式笔记_结构型_适配器模式
  • 3.正则化——新闻分类
  • 生产问题排查-数据库连接池耗尽
  • 牛客:HJ23 删除字符串中出现次数最少的字符[华为机考][字符串]
  • Linux 环境下安装 Node.js v16.13.0 完整指南
  • MongoDB 数据库 启用访问控制
  • Volta现代化的 Node.js 版本管理工具
  • CSRF 攻击原理与实验测试(附可运行测试案例)
  • NineData 社区版 V4.3.0 正式发布!新增 5 条迁移对比链路,全面支持 MariaDB、GaussDB 等数据库
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+vue实现的酒店预订管理系统,推荐!
  • Gitlab跑CICD的时候,maven镜像和pom.xml使用的maven版本冲突导致没办法build成功的解决方法
  • [附源码+数据库+毕业论文+开题报告]基于Spring+MyBatis+MySQL+Maven+jsp实现的车辆运输管理系统,推荐!
  • 2025-7-15-C++ 学习 排序(4)
  • langchain教程10:LCEL
  • 【c++】c++11新特性(右值引用和移动语义)
  • PySpark 常用算子详解
  • 【BUG处理】构建APK时遇到错误:‘flutter‘ 命令未被识别。这通常表示您的系统中未安装Flutter SDK或环境变量配置不正确。
  • 牛客:HJ20 密码验证合格程序[华为机考][字符串]
  • 【源力觉醒 创作者计划】文心4.5 vs DeepSeek vs Qwen 3.0:三大能力硬核实测!谁才是王者?
  • 纸板加工制造学习1
  • CF37E Trial for Chief 题解