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

kib*_*bar 32 disk-space-utilization centos7

我有 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
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

小智 34

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

扩展分区

# fdisk /dev/vda
Run Code Online (Sandbox Code Playgroud)

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

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

输入n(new) 然后是p(primary) 然后2重新创建分区号 2 并enter接受开始块,enter再次接受默认为磁盘末尾的结束块。

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

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

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

更新内核内存分区表

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

# partx -u /dev/vda
Run Code Online (Sandbox Code Playgroud)

调整物理卷大小

调整 PV 大小以识别额外空间

# pvresize /dev/vda2
Run Code Online (Sandbox Code Playgroud)

调整 LV 和文件系统的大小

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

# lvextend -r centos/root /dev/vda2
Run Code Online (Sandbox Code Playgroud)

  • 这太棒了。谢谢!这应该是公认的答案。我错过了调整 lv 和文件系统大小的最后一步! (2认同)

And*_*gge 30

制作分为三个步骤:

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

步骤 1 - 分区表

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

发行t之后2,接着8e要切换新的第二个分区的分区类型8E(Linux的LVM)。

发出p检查新分区布局的问题,并确保新的第二个分区的开始位置与旧的第二个分区的位置完全相同。

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

重新启动系统

这一步是必要的,所以分区表被重新读取。

调整 LVM PV 的大小

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

  • 这个出色的答案在终点线附近停了下来!我想出了如何结束它。问题中共享的示例显示了 `sda2` 下面的两个逻辑卷:`centos-root` 和 `centos-swap`。在这种情况下,卷组是“centos”,该组内的两个逻辑卷是“root”和“swap”。如果我们想在这个例子中用我们新扩展的 `sda2` 分区中 50% 的可用空间扩展 `centos-root` 卷,我们将使用 `lvextend -r -l +50%FREE /dev/centos/根`。`-r` 调整底层文件系统的大小以匹配扩展的逻辑卷。 (6认同)
  • @AndreasRogge我认为这完全在这个问题的范围内,因为这个领域的术语可能会令人困惑并且很容易混淆。值得发布有关如何获取文件系统可用的未分配磁盘空间的完整摘要,因为这将是人们发现此问题的极其常见的原因。 (2认同)

小智 18

在一行中检查 \xe2\x80\x94 的所有内容,没有问题:

\n
parted ---pretend-input-tty /dev/vda resizepart 2 100%;\npartx -u /dev/vda; pvresize /dev/vda2;\nlvextend -r centos/var /dev/vda2\n
Run Code Online (Sandbox Code Playgroud)\n

这里:

\n
    \n
  • parted扩展分区(---pretend-input-tty是一个隐藏的分区标志
  • \n
  • partx更新内核内存分区表
  • \n
  • pvresize调整物理卷大小
  • \n
  • lvextend调整逻辑卷和文件系统的大小
  • \n
\n

这样就不需要重启了。

\n

上面暗示你有 vd* 卷,下面vda2有一个 lvm 卷组centos和 lvm 逻辑卷var

\n
$ lsblk\nNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nfd0               2:0    1    4K  0 disk \nvda               8:0    0   40G  0 disk \n\xe2\x94\x9c\xe2\x94\x80vda1            8:1    0    1G  0 part /boot\n\xe2\x94\x94\xe2\x94\x80vda2            8:2    0   19G  0 part \n  \xe2\x94\x9c\xe2\x94\x80centos-var  253:0    0   17G  0 lvm  /\n  \xe2\x94\x94\xe2\x94\x80centos-swap 253:1    0    2G  0 lvm  [SWAP]\nsr0              11:0    1 1024M  0 rom\n
Run Code Online (Sandbox Code Playgroud)\n

如果您有 sd* 卷,如下所示:

\n
$ lsblk\nNAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nfd0           2:0    1    4K  0 disk \nsda           8:0    0   40G  0 disk \n\xe2\x94\x9c\xe2\x94\x80sda1        8:1    0    1G  0 part /boot\n\xe2\x94\x94\xe2\x94\x80sda2        8:2    0   19G  0 part \n  \xe2\x94\x9c\xe2\x94\x80cl-root 253:0    0   17G  0 lvm  /\n  \xe2\x94\x94\xe2\x94\x80cl-swap 253:1    0    2G  0 lvm  [SWAP]\nsr0          11:0    1 1024M  0 rom\n
Run Code Online (Sandbox Code Playgroud)\n

你可以用同样的方法来做:

\n
parted ---pretend-input-tty /dev/sda resizepart 2 100%;\npartx -u /dev/sda; pvresize /dev/sda2;\nlvextend -r /dev/cl/root /dev/sda2\n
Run Code Online (Sandbox Code Playgroud)\n


liw*_*t31 5

对于像我这样在扩展逻辑卷方面遇到困难的人,阅读这篇文章可能会有所帮助。总之,您可以使用lvextend来扩展您的逻辑卷: lvextend -l +<PE> <LV_PATH> 您可以获得剩余 PE( <PE>) 的数量vgdisplay并获得您的逻辑卷 ( LV_PATH)的路径lvdisplay

然后根据您的发行版,您要么想要xfs_growfs <LV_PATH>(Centos 7) 要么resize2fs <LV_PATH>最终调整大小。