Centos 7使用未分配的空间扩展分区


14

我有centos 7服务器(CentOS Linux release 7.3.1611 (Core))更新我的服务器时,我看到错误消息,您需要额外的空间。但是,当我检查磁盘空间时,服务器上有20GB磁盘,我看到仅创建了4.5GB分区,而16GB分区是可用空间,没有未分配的空间。如何从16GB可用空间扩展分区?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

在此处输入图片说明


Answers:


21

要做三个步骤:

  1. 更改分区表,sda2使其在磁盘末尾结束
  2. 重新读取分区表(将需要重新启动)
  3. 使用以下命令调整LVM PV的大小 pvresize

步骤1-分区表

运行fdisk /dev/sda。发出p以打印当前分区表并将该输出复制到安全的地方。现在发布,d然后2删除第二个分区。发行n以创建新的第二个分区。确保起始位置等于您先前打印的分区表的起始位置。确保末端在磁盘末端(通常是默认值)。

发出问题t2然后8e将新的第二个分区的分区类型切换为8e(Linux LVM)。

发行p审核新的分区布局,并确保新的第二分区的开始正好是在旧第二个分区了。

如果一切正常,请发出w将分区表写入磁盘的命令。您将从partprobe收到一条错误消息,指出无法重新读取分区表(因为磁盘正在使用中)。

重新启动系统

此步骤是必需的,因此必须重新读取分区表。

调整LVM PV的大小

系统重新引导后,调用pvresize /dev/sda2。现在,您的物理LVM卷将跨越驱动器的其余部分,您可以在该空间中创建或扩展逻辑卷。


一个很好的解决方案,它完美地工作。仍然只有一部分如何扩展逻辑卷。
Mimouni

1
这个出色的答案就在终点线附近!我想通了如何完成它。问题中共享的示例显示了两个逻辑卷sda2centos-rootcentos-swap。在这种情况下,卷组为,centos并且该组内的两个逻辑卷为rootswap。如果centos-root在此示例中sda2,我们想使用新扩展的分区中50%的可用空间来扩展卷,则可以使用lvextend -r -l +50%FREE /dev/centos/root-r调整基础文件系统的大小以匹配扩展的逻辑卷。
Shadoninja '19

@Shadoninja不在原始问题的范围内。因此,我没有添加它,以后也不会将其添加到此问题中。
Andreas Rogge

@AndreasRogge我认为这完全在这个问题的范围内,因为在这个领域中的术语可能会造成混淆并且容易混淆。值得一提的是如何获得文件系统可用的未分配磁盘空间的完整摘要,因为这将是人们找到此问题的极为普遍的原因。
Shadoninja

13

您可以执行此操作而无需在CentOS 7中重新启动。假设您的磁盘为/ dev / vda和标准RHEL / CentOS分区:

扩展分区

# fdisk /dev/vda

输入p以打印您的初始分区表。

输入d(删除),然后2删除现有的分区定义(分区1通常是/ boot,分区2通常是根分区)。

输入n(new),再输入(pprimary)2,再输入,以重新创建分区号2,并enter接受起始块,然后enter再次接受缺省为磁盘末尾的结束块。

输入t(类型),然后28e以新的分区类型更改为“Linux的LVM”。

输入p以打印新的分区表,并确保起始块与上面打印的初始分区表中的内容匹配。

输入w以将分区表写入磁盘。您将看到一个Device or resource busy可以忽略的错误。

更新内核内存分区表

更改分区表后,运行以下命令以更新内核内存分区表:

# partx -u /dev/vda

调整物理体积

调整PV大小以识别多余的空间

# pvresize /dev/vda2

调整LV和文件系统的大小

在此命令centos中,PV root是LV /dev/vda2,是扩展的分区。如果不知道,请使用pvslvs命令查看您的物理和逻辑卷名称。-r此命令中的选项会适当调整文件系统的大小,因此您无需调用resize2fsxfs_growfs单独调用。

# lvextend -r centos/root /dev/vda2

那么更复杂的答案就是“选择的答案”之一!
Furkat U.

太好了 谢谢!这应该是公认的答案。我错过了调整lv和文件系统大小的最后一步!
Skinner927

4

对于像我这样无法扩展逻辑卷的人,阅读这篇文章可能会有所帮助。总而言之,您可以lvextend用来扩展逻辑卷: lvextend -l +<PE> <LV_PATH> 您可以通过来获得剩余PE(<PE>)的数量,vgdisplay并通过来获得您的逻辑卷(LV_PATH)的路径lvdisplay

然后,根据您的分布,您想要xfs_growfs <LV_PATH>(Centos 7)或resize2fs <LV_PATH>最终调整大小。


0

检查一下-一切都在一行上,没有问题:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2

您应该考虑添加说明和您的环境。例如,我的partx没有选项-u(Centos6.7 util-linux-ng-2.17.2-12.28.el6)。
Boop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.