背景
当我们为 Linux 进行磁盘还原或为主机更换更大容量硬盘时,我们通常会遇到系统分区小于磁盘大小的情况,从而无法有效利用整块磁盘,这时我们需要扩展 Linux 的系统分区。为了最大可能简化操作,我们将采用在线扩展的方式,即可以先进入系统,在分区已挂载的情况下进行扩展。
操作
1. 查看磁盘和分区
使用以下指令以查看磁盘信息
fdisk -l
输出磁盘和分区信息
Disk /dev/vda: 2 TiB, 2199023255552 bytes, 4294967296 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: 744D726A-2AC1-7744-89B3-072E6920B57A
Device Start End Sectors Size Type
/dev/vda1 2048 6143 4096 2M BIOS boot
/dev/vda2 6144 2103295 2097152 1G Linux filesystem
/dev/vda3 2103296 20971486 18868191 9G Linux filesystem
在这里,/dev/vda 是我们的磁盘,可见我们的磁盘空间为 2T。
使用以下指令以查看分区信息
df -h
输出分区和目录信息
Filesystem Size Used Avail Use% Mounted on
udev 24G 0 24G 0% /dev
tmpfs 4.8G 524K 4.8G 1% /run
/dev/vda3 8.8G 2.2G 6.2G 27% /
tmpfs 24G 0 24G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 974M 87M 820M 10% /boot
tmpfs 4.8G 0 4.8G 0% /run/user/0
可见,/dev/vda3 是根目录所在分区,也是我们的目标系统分区。
2. 调整分区表
使用 growpart 指令扩展分区,需要指定磁盘和分区编号。由于在上面的步骤我们已确认磁盘为 /dev/vda,分区为 /dev/vda3,使用以下指令以扩展 /dev/vda3
growpart /dev/vda 3
输出调整内容
CHANGED: partition=3 start=2103296 old: size=18868191 end=20971486 new: size=4292863967 end=4294967262
3. 写入文件系统
使用以下指令将对 /dev/vda3 的更改写入文件系统
resize2fs /dev/vda3
输出调整内容
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vda3 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 256
The filesystem on /dev/vda3 is now 536607995 (4k) blocks long.
检查
再次使用以下指令检查更改
fdisk -l
输出磁盘和分区信息
Disk /dev/vda: 2 TiB, 2199023255552 bytes, 4294967296 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: 744D726A-2AC1-7744-89B3-072E6920B57A
Device Start End Sectors Size Type
/dev/vda1 2048 6143 4096 2M BIOS boot
/dev/vda2 6144 2103295 2097152 1G Linux filesystem
/dev/vda3 2103296 4294967262 4292863967 2T Linux filesystem
可见系统分区已更改为目标大小。