Partition

增加 lvm2 分區的大小以使用所有未分配的磁碟空間

  • July 2, 2019

我已將較小的驅動器映像到較大的驅動器。我現在需要增加分區/卷組的大小(正確的術語?)。該驅動器有大約 1.6 TiB 的未分配空間,我希望 /dev/sdb3 使用它,然後將增加的空間分配給 /dev/cl/root。以下是Google搜尋拼湊的一些資訊。前四件來自 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- 的大小根。

首先,您必須編輯分區表以實際擴展sdb3分區。您可以為此使用gpartedparted或。gdisk``fdisk

如果您使用gdiskor fdisk,則僅當您告訴程序執行更改時才會將更改寫入分區表,因此使用單個gdisk/會話,您可以查看開始的fdisk確切磁碟位置(塊/扇區號)sdb3刪除sdb3分區,使用完全相同的起點和新的終點重新創建它,然後將更新的分區表寫入磁碟。

如果核心不立即接受新的分區大小,您可能必須sudo partprobe /dev/sdb在此時執行。

一旦新的分區大小在 中可見/proc/partitions,您就可以sudo pvresize /dev/sdb3完全按照您的做法進行操作。之後,sudo pvdisplay應指示增加PV size的 ,Total PEFree PE值。

此時,您可以使用sudo lvextend -r -L <desired new size> /dev/cl/root來擴展您的 LV。

由於sdb3PV 已經是cl卷組的成員,因此在這種情況下您不需要vgextend:它僅在您將新的、未使用的 PV 添加到現有捲組時使用。由於 VG 目前處於活動狀態並且其所有 LV 都已安裝/正在使用,因此 PV 被鎖定以供 LVM 獨占訪問,因此即使該vgextend工具也無法直接訪問它。如果您嘗試vgextend通過從外部媒體引導來執行此操作,以便解除安裝 LV,您會看到一條錯誤消息

Physical volume '/dev/sdb3' is already in volume group 'cl'

反而。

引用自:https://unix.stackexchange.com/questions/527968