x86版的ubuntu上使用qemu运行arm版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 updatesudo 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 -hFilesystem Size Used Avail Use% Mounted ontmpfs 792M 636K 792M 1% /runefivarfs 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/shmtmpfs 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/efitmpfs 792M 12K 792M 1% /run/user/1000
可以看到磁盘只使用了30G左右,与60G的空间相差甚远。使用lsblk
查看:
mgr@ubuntua:~$ lsblkNAMEMAJ:MIN RM SIZE RO TYPE MOUNTPOINTSvda 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
可以看到vda3
共56.9G
,实际只有28.9G
分配给了根目录。再使用parted
命令查看:
mgr@ubuntua:~$ sudo parted /dev/vda unit GB print freeModel: Virtio Block Device (virtblk)Disk /dev/vda: 64.4GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags: Number Start End Size File system Name Flags 0.00GB 0.00GB 0.00GB Free Space 1 0.00GB 1.13GB 1.13GB fat32 boot, esp 2 1.13GB 3.28GB 2.15GB ext4 3 3.28GB 64.4GB 61.1GB 64.4GB 64.4GB 0.00GB Free Space
可以看到vda3
的结束大小为64.4G
,Free Space
行的空间大小为0
,说明不是未分区的空间,不需要分区。如果没有parted
命令,使用下面命令安装:
sudo apt install parted
查看逻辑卷ubuntu-vg
:
mgr@ubuntua:~$ sudo vgdisplay ubuntu-vg --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <56.95 GiB PE Size 4.00 MiB Total PE 14578 Alloc PE / Size 7289 / 28.47 GiB Free PE / Size 7289 / 28.47 GiB VG UUID SDuzTq-ozz1-weLd-M5O3-sVt0-AaCI-F9y442
可以看到Free PE / Size
行,还有28.47G
的空间,使用下面的命令扩展卷:
mgr@ubuntua:~$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv Size 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-lvresize2fs 1.47.0 (5-Feb-2023)Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing requiredold_desc_blocks = 4, new_desc_blocks = 8The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 14927872 (4k) blocks long.
现在使用df
命令查看磁盘情况,正常了:
mgr@ubuntua:~$ df -hFilesystem Size Used Avail Use% Mounted ontmpfs 792M 632K 792M 1% /runefivarfs 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/shmtmpfs 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/efitmpfs 792M 12K 792M 1% /run/user/1000
如果本文对你有帮助,欢迎点赞收藏!