如何在不使用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