调整磁盘卷大小后,Linux扩展文件系统

时间:2020-01-09 10:41:31  来源:igfitidea点击:

虚拟机硬盘原来只有100G,扩展到200G,但是还是只能用100G。
如何调整磁盘大小并扩展文件系统以调整磁盘卷大小?

增大磁盘卷的大小(例如,AWS ESB和Google云下的磁盘以及其他服务提供商)后,必须使用特定于文件系统的命令将文件系统扩展到更大的大小。
在本教程中,我将Google Cloud与XFS文件系统结合使用,并且在调整卷大小后将扩展Linux文件系统。
以下说明已在CentOS,RHEL,Ubuntu和Debian Linux上进行了测试,但也应与其他Linux发行版一起使用。

调整磁盘卷大小后,Linux扩展文件系统

首先,您需要找到有关磁盘的信息。
一旦Linux检测到磁盘大小更改,您将使用dmesg命令在日志中看到如下消息:

sudo dmesg
sudo dmesg | more
[   12.834446] bpfilter: Loaded bpfilter_umh pid 1037
[   12.917195] new mount options do not match the existing superblock, will be ignored
[262733.527584] sd 0:0:2:0: [sdb] 838860800 512-byte logical blocks: (429 GB/400 GiB)
[262733.527587] sd 0:0:2:0: [sdb] 4096-byte physical blocks
[262733.528263] sdb: detected capacity change from 214748364800 to 429496729600

请记下磁盘名称sdb。

警告:执行以下任何命令之前,请备份所有数据。
创建磁盘快照并在其他地方安全备份数据至关重要。
作者和theitroad网站对调整块存储/卷大小后扩展Linux文件系统引起的数据丢失不承担任何责任。

验证新磁盘大小

执行以下fdisk命令:

sudo fdisk -l /dev/sdb

输出示例:

Disk /dev/sdb: 400 GiB, 429496729600 bytes, 838860800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xd3a4f1f7

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdb1        2048 419430399 419428352  200G 83 Linux

如何列出块设备

可以运行以下lsblk命令以显示有关连接到云VM的块设备的信息:

sudo lsblk

运行中的lsblk命令,显示有关连接到我的Linux服务器的块设备的信息

查找当前磁盘大小和分区类型

运行以下df命令和file命令:

df -HT
df -HT | grep /backup1
df -HT | grep /dev/sdb1
sudo file -s /dev/sdb*
/dev/sdb:  DOS/MBR boot sector; partition 1 : ID=0x83, ...
/dev/sdb1: SGI XFS filesystem data

因此,现在我们知道xfs是/dev/sdb1分区的文件系统。

卸载分区(如果已安装)

运行以下命令:

sudo umount /dev/sdb1

扩展Linux分区

由于调整大小后的卷具有分区,并且该分区不反映磁盘卷的新大小(400 GB),因此我们在Linux上使用growpart命令来扩展分区大小。

如何使用growpart调整镜像分区的大小

语法为:

growpart /dev/DEVICE_NAME    PARTITION_NUMBER

请注意,DEVICE_NAME和PARTITION_NUMBER之间有一个空格。
例如:

sudo growpart --dry-run /dev/sdb 1

--dry-run选项仅报告将要执行的操作。
要调整其大小,请运行:

sudo growpart /dev/sdb 1

我们使用了growpart命令来扩展分区

您可以再次使用lsblk命令命令来验证分区大小是否增加:

sudo lsblk

再次挂载文件系统

执行以下命令:

sudo mount /dev/sdb1 /backup1/

验证磁盘大小:

df -H

输出示例:

Filesystem      Size  Used Avail Use% Mounted on
udev            501M     0  501M   0% /dev
tmpfs           103M  938k  102M   1% /run
/dev/sda1        11G  3.1G  7.2G  30% /
tmpfs           515M     0  515M   0% /dev/shm
tmpfs           5.3M     0  5.3M   0% /run/lock
tmpfs           515M     0  515M   0% /sys/fs/cgroup
/dev/sda15      110M  3.8M  106M   4% /boot/efi
tmpfs           103M     0  103M   0% /run/user/1001
/dev/sdb1       215G   36G  180G  17% /backup1

扩展文件系统

如您所愿,挂载的文件系统仍显示/dev/sdb1分区的总大小200GB。

如何在Linux上扩展XFS文件系统

语法为:

sudo xfs_growfs /mount_point
sudo xfs_growfs /backup1/

如何在Linux上扩展ext4文件系统

语法为:

sudo resize2fs /dev/DEVICE_NAME_PARTITION_NUMBER
## note /dev/sdb1 must be unmouted ##
sudo resize2fs /dev/sdb1

验证调整磁盘卷大小后扩展Linux文件系统

只需运行df命令以验证磁盘大小已从200GB增加到400GB:

df -HT