Skip to content

Partition Resizing

List Block Devices

lsblk
bash
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda           252:0    0  200G  0 disk 
├─vda1        252:1    0    1G  0 part /boot
├─vda2        252:2    0   39G  0 part 
 ├─klas-root 253:0    0  175G  0 lvm  /
 └─klas-swap 253:1    0    4G  0 lvm  
└─vda3        252:3    0  160G  0 part 
  └─klas-root 253:0    0  175G  0 lvm  /
lsblk -f
bash
NAME          FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINT
vda                                                                                            
├─vda1        xfs                        a49d1ef0-1dc5-4403-9eb8-a95396d80833    808.7M    20% /boot
├─vda2        LVM2_member LVM2 001       GiXfEZ-Wz5F-G4V3-Dc78-fxki-HlzS-My9QMG                
 ├─klas-root xfs                        f3d82155-4b15-4bb7-96c0-5a2a35fc2127     65.8G    62% /
 └─klas-swap swap        1              e20b0bfd-24f7-4589-a374-d72c2178e482                  
└─vda3        LVM2_member LVM2 001       90mTOs-HRtq-zeJm-djD0-ghRL-oe0a-AQlcoi                
  └─klas-root xfs                        f3d82155-4b15-4bb7-96c0-5a2a35fc2127     65.8G    62% /

Get Partition Info

  • p: print
  • Sector size: 扇区大小
  • Partition Table: 分区表
bash
parted /dev/vda p
bash
Model: Virtio Block Device (virtblk)
Disk /dev/vda:215GB
Sector size (logical/physical):512B/512B
Partition Table: msdos
Disk Flags: 

Number Start   End     Size    Type     File system  Flags
 1     1049kB  1075MB  1074MB  primary  xfs          boot
 2     1075MB  42.9GB  41.9GB  primary               lvm
 3     42.9GB  215GB   172GB   primary

Resize Part

Enter interacted mode:

bash
parted /dev/vda

Input in interacted mode:

bash
resizepart 3 100%

Refresh partition table(optional):

bash
partprobe

Quit interacted mode:

bash
q

Expand PV(Physical Volume):

bash
pvresize /dev/vda3
pvs
bash
  PV         VG   Fmt  Attr PSize    PFree 
  /dev/vda2  klas lvm2 a--   <39.00g     0 
  /dev/vda3  klas lvm2 a--  <160.00g 20.00g
lvs
bash
  LV   VG   Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root klas -wi-ao---- <175.02g                                                    
  swap klas -wi-a-----    3.97g
vgs
bash
  VG   #PV #LV #SN Attr   VSize   VFree 
  klas   2   2   0 wz--n- 198.99g 20.00g

将 VG 中空闲空间全部分配给目标 LV(如 root 或 data LV):

  • VGName: klas
  • LVName: root
bash
lvextend -r -l +100%FREE /dev/mapper/<VGName>-<LVName>
bash
lvextend -r -L +50G /dev/mapper/klas-root