如何在不使用LVM的情况下调整ext2 / 3/4和XFS根分区的大小

本指南说明如何在运行时不使用LVM的情况下扩展或调整ext2 / 3/4和XFS文件系统的大小。这可能是配置了ext2 / 3/4或XFS文件系统的根分区,但未配置LVM。在上一教程中,我们描述了如何在Linux上使用LVM扩展根文件系统。

在运行时调整ext2 / ext3 / ext4 / XFS根分区的大小

步骤1:检查当前的根磁盘空间

本演示使用具有以下分区方案的CentOS 7 VM:

$ lsblk  NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sr0     11:0    1 1024M  0 rom   vda    253:0    0   10G  0 disk  └─vda1 253:1    0   10G  0 part /

从输出中可以看到,根文件系统位于/ dev / vda1分区上,没有LVM。

步骤2:扩展OS根磁盘

将根块设备扩展到30GB。本指南对我有帮助,因为我正在使用KVM虚拟化技术:

如何扩展/增加KVM虚拟机(VM)的磁盘大小

$ sudo virsh domblklist centos7 
 Target   Source
-------------------------------------------------
 vda      /var/lib/libvirt/images/centos7.qcow2
 sda      -

$ sudo fdisk -l /var/lib/libvirt/images/centos7.qcow2
Disk /var/lib/libvirt/images/centos7.qcow2: 10 GiB, 10739318784 bytes, 20975232 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

$ sudo qemu-img resize /var/lib/libvirt/images/centos7.qcow2 +20G
Image resized.

如果使用的是其他虚拟化平台,请参阅其文档,以了解如何扩展OS虚拟磁盘。

步骤3:扩展VM分区

以具有sudo特权的用户身份启动VM和ssh。首先要做的是检查新磁盘的大小。

$ lsblk  NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sr0     11:0    1 1024M  0 rom   vda    253:0    0   30G  0 disk  └─vda1 253:1    0   10G  0 part /

您会看到磁盘已从10GB增加到30GB,增加了20GB。下一步是扩展分区(分区1在此示例中,最大为磁盘提供的最大大小。

安装Cloud Utility

对于初次使用的用户 成长Linux命令行工具,用于扩展分区表的分区以填充可用空间。此命令由cloud utils软件包提供。

在Ubuntu / Debian系统上运行

sudo apt -y install cloud-guest-utils

为CentOS服务器执行

sudo yum -y install cloud-utils-growpart

帮助页面是 -h 争论

# growpart -h
growpart disk partition
   rewrite partition table so that partition takes up all the space it can
   options:
    -h | --help       print Usage and exit
         --fudge F    if part could be resized, but change would be
                      less than 'F' bytes, do not resize (default: 1048576)
    -N | --dry-run    only report what would be done, show new 'sfdisk -d'
    -v | --verbose    increase verbosity / debug
    -u | --update  R update the the kernel partition table info after growing
                      this requires kernel support and 'partx --update'
                      R is one of:
                       - 'auto'  : [default] update partition if possible
                       - 'force' : try despite sanity checks (fail on failure)
                       - 'off'   : do not attempt
                       - 'on'    : fail if sanity checks indicate no support

   Example:
    - growpart /dev/sda 1
      Resize partition 1 on /dev/sd

接下来,使用growpart扩展分区。

$ sudo growpart /dev/vda 1CHANGED: partition=1 start=2048 old: size=20969472 end=20971520 new: size=62912479,end=62914527

这将更改/ dev / vda中分区1的大小。

验证您的更改。

$ lsblk  NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sr0     11:0    1 1024M  0 rom   vda    253:0    0   30G  0 disk  └─vda1 253:1    0   30G  0 part /

步骤4:调整“ /”分区的大小以填充所有空间

最后一步是调整文件系统的大小以填充额外的空间。

对于ext4文件系统,请使用resize2fs

$ sudo resize2fs /dev/vda1resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 4 The filesystem on /dev/vda1 is now 7864059 blocks long.

如果文件系统是XFS,则可以在安装过程中使用xfs_growfs命令对其进行扩展。

sudo xfs_growfs /

使用df -h检查新大小

$ df -hT | grep /dev/vda/dev/vda1      ext4       30G  1.2G   27G   5% /

恭喜你!在没有LVM的Linux上,您已经成功调整了ext2 / 3/4或XFS根分区的大小。请参阅下面的相关文章。

如何在不重新启动实例的情况下在AWS上扩展EBS引导磁盘

如何在Linux上使用LVM扩展根文件系统

如何扩展/增加KVM虚拟机(VM)的磁盘大小

在Linux上使用qemu-img

Sidebar