无法使用 resize2fs 调整分区大小

use*_*428 24 filesystems virtual-machine vmware resize2fs

我最近在 VMWare ESXi 中将 VM 的硬盘驱动器从 150 GB 调整到 500 GB。这样做之后,我使用 Gparted 有效地调整了该图像的分区大小。现在我要做的就是调整文件系统的大小,因为它仍然显示旧值(正如您从 的输出中看到的df -h):

Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/owncloud--vg-root  157G   37G  112G  25% /
udev                           488M  4.0K  488M   1% /dev
tmpfs                          100M  240K  100M   1% /run
none                           5.0M     0  5.0M   0% /run/lock
none                           497M     0  497M   0% /run/shm
/dev/sda1                      236M   32M  192M  14% /boot
Run Code Online (Sandbox Code Playgroud)

但是,运行会sudo resize2fs /dev/mapper/owncloud--vg-root返回:

resize2fs 1.42 (29-Nov-2011)
The filesystem is already 41608192 blocks long.  Nothing to do!
Run Code Online (Sandbox Code Playgroud)

由于 Gparted 说我的分区是/dev/sda5,我也尝试运行sudo resize2fs /dev/sda5,但在这种情况下我得到了这个:

resize2fs 1.42 (29-Nov-2011)
resize2fs: Device or resource busy while trying to open /dev/sda5
Couldn't find valid filesystem superblock.
Run Code Online (Sandbox Code Playgroud)

最后,这是输出pvs

PV         VG          Fmt  Attr PSize   PFree
/dev/sda5  owncloud-vg lvm2 a-   499.76g 340.04g
Run Code Online (Sandbox Code Playgroud)

fdisk -l /dev/sda 显示正确的空间量。

如何调整分区大小,以便最终让操作系统看到 500 GB 的硬盘驱动器?

Bra*_*ley 23

如果您只更改了分区大小,那么您还没有准备好调整逻辑卷的大小。一旦分区达到新大小,您需要pvresize在 PV 上执行 a ,以便卷组看到新空间。之后,您可以使用lvextend将逻辑卷扩展到卷组的新空间中。您可以传递-rlvextend命令,以便它自动resize2fs为您启动。

就个人而言,我会创建一个新分区并vgextend在其上使用,因为我的结果与pvresize.

  • 一旦你做了`pvresize`,你就完成了对常规分区的处理。您需要指定逻辑卷的路径,在这种情况下是`/dev/mapper/owncloud--vg-root` 我个人会运行`lvextend -r -l +100%FREE /dev/mapper/owncloud- -vg-root` (7认同)

man*_*nta 23

非常感谢@Bratchley 的回答和评论。它帮助了我:)

我的环境:VirtualBox 6.1 中的 Ubuntu 18.04

我的情况:我创建了 10GB 固定 VDI 磁盘,并使用 VirtualBox GUI 增加到 30GB 动态。但是文件系统仍然无法使用增加的空间。然后遇到了@Bratchley 的答案。

我跑的步骤:

  1. 下面命令运行来获得PV (物理卷)名称(例如:/dev/sda1
sudo pvs
Run Code Online (Sandbox Code Playgroud)
  1. 调整 PV 大小
sudo pvresize /dev/sda1
Run Code Online (Sandbox Code Playgroud)
  1. 运行下面的命令来获得根逻辑卷名称(文件系统的值/行;例如:/dev/mapper/ubuntu--vg-root
df -h
Run Code Online (Sandbox Code Playgroud)
  1. 展开逻辑卷:
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-root
Run Code Online (Sandbox Code Playgroud)

  • 最好的答案! (6认同)