在虚拟机中安装Ubuntu时,在硬盘配置选项中,虽然选择了使用全部硬盘,但是系统安装时并没有使用全部空间,通常是少了一半。为使用全部硬盘空间,大家可以在安装时直接划分分区,将全部空间挂载。但是,如果安装时忘记换分,当安装完成后,就需要手工对空间扩容,以利用所有的空间。
操作环境
- 云环境:华为FusionCompute
- 操作系统:Ubuntu 22.04
查看磁盘分区
使用fdisk查看联机的磁盘分区情况。
vote@vote-redis:~$ sudo fdisk -l
得到磁盘信息如下:
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7887FD17-A703-4945-AAC5-D673D5563826
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 4198399 4194304 2G Linux filesystem
/dev/vda3 4198400 104855551 100657152 48G Linux filesystem
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 24 GiB, 25765609472 bytes, 50323456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
发现有50GiB的硬盘空间,但是仅仅使用一半,剩余一半未分配。使用df命令可以更加清晰的看出当前挂载磁盘的容量和使用情况。如下所示:
vote@vote-redis:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 789M 1.1M 788M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 24G 7.4G 15G 34% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 2.0G 245M 1.6G 14% /boot
tmpfs 789M 4.0K 789M 1% /run/user/1000
查询可用块设备信息
使用lsbkl(list block的缩写)列出块设备信息和设备之间的依赖信息
vote@vote-redis:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
fd0 2:0 1 4K 0 disk
loop0 7:0 0 62M 1 loop /snap/core20/1587
loop1 7:1 0 62M 1 loop /snap/core20/1611
loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
loop3 7:3 0 103M 1 loop /snap/lxd/23541
loop4 7:4 0 47M 1 loop /snap/snapd/16292
sr0 11:0 1 1.4G 0 rom
vda 252:0 0 50G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 2G 0 part /boot
└─vda3 252:3 0 48G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 24G 0 lvm /
由上可以看出,vda3中有一半空间未分配。
在线扩展逻辑卷空间
使用lvextend命令扩展当前逻辑卷,如下所示:
vote@vote-redis:~$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
输出:
Size of logical volume ubuntu-vg/ubuntu-lv changed from <24.00 GiB (6143 extents) to <48.00 GiB (12287 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
表明;逻辑卷已经扩容。接下来,还需要更新逻辑卷的实际容量,如下所示:
vote@vote-redis:~$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 6
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 12581888 (4k) blocks long.
逻辑卷更新完毕后,再次查询磁盘空间,可看到逻辑卷已经扩展到硬盘全部容量。
vote@vote-redis:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 789M 1.1M 788M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 48G 7.4G 38G 17% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 2.0G 245M 1.6G 14% /boot
tmpfs 789M 4.0K 789M 1% /run/user/1000