如何扩展 Linux 的系统分区

当我们为 Linux 进行磁盘还原或为主机更换更大容量硬盘时,我们通常会遇到系统分区小于磁盘大小的情况,从而无法有效利用整块磁盘,这时我们需要扩展 Linux 的系统分区。本文将介绍如何采用在线扩展的方式,即可以先进入系统,在分区已挂载的情况下进行扩展。

背景

当我们为 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

可见系统分区已更改为目标大小。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注