我已将较小的驱动器想象为较大的驱动器。我现在需要增加分区/卷组的大小(正确的术语?)。该驱动器有约 1.6 TiB 的未分配空间,我希望 /dev/sdb3 使用该空间,然后将增加的空间分配给 /dev/cl/root。以下是通过谷歌搜索拼凑而成的一些信息。前四块来自 gparted。
/dev/sdb1 fat16 /boot/efi 200 MiB
/dev/sdb2 ext4 /boot 1.0 GiB
/dev/sdb3 lvm2 pv cl 221.68 GiG
unallocated unallocated 1.60 TiB
$ sudo lvmdiskscan
/dev/sdb1 [ 200.00 MiB]
/dev/sdb2 [ 1.00 GiB]
/dev/sdb3 [ 221.68 GiB] LVM physical volume
/dev/cl/var [ 100.00 GiB]
/dev/cl/swap [ 2.00 GiB]
/dev/cl/root [ 110.00 GiB]
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 1.8T 0 disk
├─sdb2 8:18 0 1G 0 part
├─sdb3 8:19 0 221.7G 0 part
│ ├─cl-swap 253:1 0 2G 0 lvm
│ ├─cl-root 253:2 0 110G 0 lvm
│ └─cl-var 253:0 0 100G 0 lvm
└─sdb1 8:17 0 200M 0 part
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sdb3
VG Name cl
PV Size 221.68 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 56749
Free PE 2478
Allocated PE 54271
PV UUID Uohq5b-Ubkr-f51E-y1tf-vfAi-JA06-dKWx7A
我尝试通过使用sudo pvresize /dev/sdb3
输出来增加物理尺寸
Physical volume "/dev/sdb3" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
虽然这看起来并没有起到什么作用。我无法在 gparted 中调整 /dev/sdb3 的大小。我尝试使用增加卷组
$ sudo vgextend cl /dev/sdb3
Can't open /dev/sdb3 exclusively. Mounted filesystem?
我不确定为什么失败,因为我认为 /dev/sdb3 没有安装,因为物理驱动器连接到另一个用于镜像硬盘驱动器的 Linux CentOS 7 系统中。
如何调整大小/扩展/dev/sdb3
以使用未分配空间的重置,然后增加 /sdb3/cl-root 以使用所有新空间?
我看到的一些回复显示在未分配的空间中创建一个新分区,然后将其添加到组/卷中,但我希望增加 /dev/sdb3 以使用剩余的未分配空间,然后增加 /sdb3/cl- 的大小根。
答案1
首先,您必须编辑分区表才能实际扩展sdb3
分区。为此,您可以使用gparted
、parted
、gdisk
或。fdisk
如果您使用gdisk
或fdisk
,则只有当您告诉程序执行此操作时,更改才会写入分区表,因此使用单个gdisk
/会话,您可以查看开始的fdisk
确切磁盘位置(块/扇区号) ,sdb3
删除分区sdb3
,重新创造它与完全相同的起点和一个新的端点,然后将更新的分区表写入磁盘。
如果内核没有立即接受新的分区大小,您可能必须sudo partprobe /dev/sdb
在此时运行。
一旦新的分区大小在 中可见/proc/partitions
,您就可以sudo pvresize /dev/sdb3
按照之前的操作继续操作。之后,sudo pvdisplay
应指示增加的PV size
、Total PE
和Free PE
值。
那时,您可以用来sudo lvextend -r -L <desired new size> /dev/cl/root
扩展您的 LV。
由于sdb3
PV 已经是卷组的成员cl
,因此在这种情况下不需要vgextend
:仅当您将新的、未使用的 PV 添加到现有卷组中时才使用它。由于 VG 当前处于活动状态并且其所有 LV 均已安装/正在使用,因此 PV 被锁定以供 LVM 进行独占访问,因此即使该vgextend
工具也无法直接访问它。如果您尝试vgextend
通过从外部介质引导来执行此操作,以便卸载 LV,您将看到一条错误消息
Physical volume '/dev/sdb3' is already in volume group 'cl'
反而。