bhyve上Ubuntu虚拟机扩展LVM上的EXT4文件系统
我在 bhyve(BSD hypervisor) 虚拟化环境中部署 Ubuntu Linux 来构建 ROCm 快速起步 ,但是我发现,之前 bhyve虚拟化运行Ubuntu 创建的是稀疏卷,总共分配了 60GB
ZFS稀疏卷,不过Ubuntu Server部署时,自动只使用了一半空间(小于安装部署 ROCm 要求):
在虚拟机内部检查磁盘空间:
虚拟机内部 fdisk 检查磁盘空间
fdisk -l
可以看到 60GiB
空间,LVM根卷只使用了 28.47GiB
:
虚拟机内部 fdisk 检查磁盘空间 输出信息
Disk /dev/vda: 60 GiB, 64424509440 bytes, 125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 16384 bytes
Disklabel type: gpt
Disk identifier: B7990D2B-8799-469F-99FC-F8FF058A1025
Device Start End Sectors Size Type
/dev/vda1 2048 2203647 2201600 1G EFI System
/dev/vda2 2203648 6397951 4194304 2G Linux filesystem
/dev/vda3 6397952 125827071 119429120 56.9G Linux filesystem
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 28.47 GiB, 30572281856 bytes, 59711488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 16384 bytes
df
可以看到LVM卷ubuntu--vg-ubuntu--lv
挂载为/
,只分配了28G
:
检查
df -h
输出Filesystem Size Used Avail Use% Mounted on
tmpfs 794M 936K 794M 1% /run
efivarfs 256K 16K 236K 7% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv 28G 7.2G 20G 28% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 2.0G 193M 1.6G 11% /boot
/dev/vda1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 794M 12K 794M 1% /run/user/1000
在虚拟机内部检查lvm卷(分别使用
lvs
,pvdisplay
,vgdisplay
和lvdisplay
检查):
检查lvm卷
root@idev:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- 28.47g
root@idev:~# pvdisplay
--- Physical volume ---
PV Name /dev/vda3
VG Name ubuntu-vg
PV Size <56.95 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 14578
Free PE 7289
Allocated PE 7289
PV UUID dZisDw-p4Ka-ztA7-p0KV-5yiy-2Ttx-Wso8Y4
root@idev:~# vgdisplay
--- 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 KBkl6Q-lPJN-6ihZ-hkhn-4Phy-yMvA-nFcBJQ
root@idev:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID dPQ2BV-Xhcb-N3mA-IpFA-Upf6-iu3D-tZl0w2
LV Write Access read/write
LV Creation host, time ubuntu-server, 2025-07-25 10:55:07 +0000
LV Status available
# open 1
LV Size 28.47 GiB
Current LE 7289
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
可以看到:
pv
是完全分配整个磁盘空间 (60GB)
vg
完整占用了VG(<56.95 GiB
),但只划分了28.47 GiB
PE用于lv
,还有28.47GiB Free PE
lv
大小28.47 GiB
,还有剩余但28.47 GiB
vg 空着没有占用
解决方法是扩展 lv,然后再扩展ext4文件系统 : 方法参考 扩展LVM上的EXT4文件系统 (注意只需要 lvextend
,因为**vg** 是满分配的)
扩容lvm ( lv ):
扩容
lv
占据整个 vg
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
输出显示成功扩容lv到 <56.95 GiB
:
扩容
lv
占据整个 vg
输出显示成功 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.
再次检查
vgdisplay
看是否完整分配了 vg:
vgdisplay
显示现在整个vg已经分配完 --- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
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 14578 / <56.95 GiB
Free PE / Size 0 / 0
VG UUID KBkl6Q-lPJN-6ihZ-hkhn-4Phy-yMvA-nFcBJQ
EXT4文件系统支持在线扩展,所以对挂载对EXT4文件系统(
/
)扩容:
在线扩展
/
挂载的EXT4文件系统resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv
输出显示
在线扩展
/
挂载的EXT4文件系统显示完成resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 8
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 14927872 (4k) blocks long.
现在使用
df -h
检查,就可以看到原先28G
的根目录现在扩展到了56G
:
扩容完成后的根文件系统
Filesystem Size Used Avail Use% Mounted on
tmpfs 794M 936K 794M 1% /run
efivarfs 256K 16K 236K 7% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv 56G 7.2G 47G 14% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 2.0G 193M 1.6G 11% /boot
/dev/vda1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 794M 12K 794M 1% /run/user/1000
一切就绪,现在可以继续 ROCm 快速起步