注意事项

  1. 要调整大小的文件系统必须位于磁盘的最后一个分区上。
    在这种情况下没有数据丢失,因为我们重新创建分区而不破坏其上的实际数据。

  2. 如果它不是最后一个分区,我们必须销毁数据并重新创建一个具有所需大小的新分区。

如何在 Linux 中调整基于分区的文件系统的大小

注意:调整磁盘分区上的文件系统大小可能很危险,并可能导致数据丢失。
在执行以下概述的步骤之前,请确保已进行备份。

www. On IT Road .com

增大基于分区的文件系统的大小

  1. 首先,检查文件系统的现有大小。
# # df -hP /data01
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme1n1p1 1014M   33M  982M   4% /data01
# mount | grep -w data01
/dev/nvme1n1p1 on /data01 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

从上面的“mount”命令输出验证,分区上的文件系统是“xfs”。

  1. 使用“parted”命令记录分区详细信息和磁盘详细信息。
    确保在以下命令中提供磁盘名称而不是分区名称:
# parted /dev/nvme1n1 u s p
Model: NVMe Device (nvme)
Disk /dev/nvme1n1: 4194304s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start  End       Size      Type     File system  Flags
 1      2048s  2099199s  2097152s  primary  xfs

从上面的输出中,我们可以看到分区大小(2099199s)小于磁盘大小(4194304s)。
所以有增加分区的空间。

  1. 先卸载文件系统。
# umount /data01
  1. 删除文件系统为“/data01”的分区。
# parted /dev/nvme1n1p1 rm 1
Information: You may need to update /etc/fstab.

验证分区是否被删除。
我的磁盘上只有一个分区,所以现在应该看不到分区了。

# parted /dev/nvme1n1 u s p
Model: NVMe Device (nvme)
Disk /dev/nvme1n1: 4194304s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start  End  Size  Type  File system  Flags
  1. 现在,让我们重新创建一个更大的分区。
    请注意第 2 步的起始扇区,例如:2048s。
    我们将分区从 1GB 增加到 1.5GB。
# parted -s /dev/nvme1n1 mkpart primary 2048s 1.5G

再次验证新分区大小。

# parted /dev/nvme1n1 u s p
Model: NVMe Device (nvme)
Disk /dev/nvme1n1: 4194304s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start  End       Size      Type     File system  Flags
 1      2048s  2930687s  2928640s  primary
  1. 我们需要在新创建的分区上运行 fsck。
    另请注意,我们不会在此处创建任何文件系统,因为它已存在于分区中。
    由于我们使用的是 XFS 文件系统,因此请使用“xfs_repair”命令而不是“e2fsck”。
# xfs_repair /dev/nvme1n1p1

Phase 1 - find and verify superblock...
bad primary superblock - bad magic number !!!
attempting to find secondary superblock...
...
Phase 7 - verify and correct link counts...
Note - stripe unit (0) and width (0) were copied from a backup superblock.
Please reset with mount -o sunit=,swidth= if necessary
done
  1. 使用“xfs_growfs”命令扩展文件系统。
    同样在运行这个命令之前,我们需要挂载文件系统,否则你会得到以下错误:
# xfs_growfs /dev/nvme1n1p1
xfs_growfs: /dev/nvme1n1p1 is not a mounted XFS filesystem
# mount /dev/nvme1n1p1 /data01
# xfs_growfs /dev/nvme1n1p1
meta-data=/dev/nvme1n1p1         isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 366080
  1. 验证挂载点的新大小。
# df -hP /data01
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme1n1p1  1.4G   33M  1.4G   3% /data01
日期:2020-09-17 00:13:48 来源:oir作者:oir