如何在没有LVM的情况下调整ext2/3/4和xfs root分区的大小
时间:2020-02-23 14:40:19 来源:igfitidea点击:
本教程将向我们展示如何在运行时在没有LVM的情况下扩展或者调整ext2/3/4和XFS文件系统的大小。
这可以是使用Ext2/3/4或者XFS文件系统配置的根分区,但未配置任何LVM。
在我们之前的教程中,我们研究了如何在Linux上使用LVM扩展根文件系统。
第1步:检查当前的root磁盘容量
对于这次演示,我的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 /
如从输出所示,根文件系统在没有LVM的情况下on/dev/vda1分区。
第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 /
我们可以看到磁盘已经增加了20GB,从10GB到30GB。
下一个操作是在我们的示例中展开分区(分区1),到磁盘提供的最大大小。
安装云实用程序
对于那些新的Growpart,它是一个Linux命令行工具,用于扩展分区表中的分区以填充可用空间。
此命令由Cloud Utils包提供。
在Ubuntu/Debian系统上,运行:
sudo apt -y install cloud-guest-utils gdisk
对于CentOS服务器,运行:
sudo yum -y install cloud-utils-growpart gdisk
通过通过帮助页面 -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 1 CHANGED: 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/vda1 resize2fs 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% /