Shrink linux LUKS encrypted partition for both with vg/lvm-ext4 and without vg/lvm-btrfs
This can be incorporated in the gparted live source code to enable feature "shrink linux LUKS encrypted partition". Enclosing log file for reference [184cmdsorg](/uploads/9256d3d99d2c8bf730218894129241d8/184cmdsorg 184btrfscmds
shrink with vg/lvm-ext4 184GB(179687500k-KiB)
Boot live disk USB
Load dm-crypt encrption module
1) sudo modprobe dm-crypt
Open the LUKS device for decryption
2)sudo cryptsetup luksOpen /dev/sda3 crypt1
vg/lvm activation
3)sudo vgscan --mknodes
4)sudo vgchange -ay
make a note of home size for shrink operation
5)lsblk -b
check the filesystem
6)sudo e2fsck -f /dev/mapper/fedora-home
Reduce lvm and underlying filesystem
7)sudo lvreduce -r -L -179687500k /dev/mapper/fedora-home
display physical volume details
8)sudo pvs -v --segments /dev/mapper/crypt1
defragmentation so that free blocks at the end
9)sudo pvmove --alloc anywhere /dev/mapper/crypt1:106128-118927
verify free blocks at the end
10)sudo pvs -v --segments /dev/mapper/crypt1
make a note of home and others size
11)lsblk -b
resize physical volume size
[crypt1 - (before shrink==>swap+home+root) + (after shrink==>swap+home+root)]
12)sudo pvresize --setphysicalvolumesize 314821312512b /dev/mapper/crypt1
sudo cryptsetup status crypt1
(pvresize 314821312512/512)
13)sudo cryptsetup -b 614885376 resize crypt1
vg/lvm deactivation
14)sudo vgchange -an
close LUKS device
15)sudo cryptsetup luksClose crypt1
list partition info
16)sudo fdisk -l
update parition table to reflect shrink size
new partition size +(before shrink==>/dev/sda3 size - shrink size)
18)sudo fdisk /dev/sda
Command (m for help): p
Command (m for help): d
Partition number (1-3, default 3): 3
Command (m for help): p
Command (m for help): n
Partition number (3-128, default 3):
First sector (3328000-625142414, default 3328000):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (3328000-625142414, default 625142414): +307444660K
Command (m for help): p
Command (m for help): w
reopen the device and verify
17)sudo fdisk /dev/sda
shrink without vg/lvm using btrfs 184GB(179687500k-KiB)
Boot live disk USB
Load dm-crypt encrption module
1)sudo modprobe dm-crypt
Open the LUKS device for decryption
2)sudo cryptsetup luksOpen /dev/sda3 crypt1
make a note of home size for shrink operation
3)lsblk -b
create crypt1 directory for mount the filesystem
4)sudo mkdir -p /mnt/crypt1
mount LUKS crypt1
5)sudo mount /dev/mapper/crypt1 /mnt/crypt1
btrfs filesystem size details
6)sudo btrfs filesystem show -d
shrink btrfs filesystem
7)sudo btrfs filesystem resize -179687500k /mnt/crypt1
verify shrink operation
8)sudo btrfs filesystem show -d
unmount LUKS device
9)sudo umount /mnt/crypt1
close LUKS device
10)sudo cryptsetup luksClose crypt1
partition table information
11)sudo fdisk -l
update parition table to reflect shrink size
12)sudo fdisk /dev/sda +125.71G : w)
Command (m for help): p
Command (m for help): d
Partition number (1-3, default 3): 3
Command (m for help): p
Command (m for help): n
Partition number (3-128, default 3):
First sector (3328000-625142414, default 3328000):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (3328000-625142414, default 625142414): +125.71G
Command (m for help): p
Command (m for help): w
reopen the device and verify
13)sudo fdisk /dev/sda
grow without vg/lvm using btrfs 184GB(179687500k-KiB)
Boot live disk USB
Load dm-crypt encrption module
1)sudo modprobe dm-crypt
Open the LUKS device for decryption
2)sudo cryptsetup luksOpen /dev/sda3 crypt1
make a note of home size for grow operation
3)lsblk -b
create crypt1 directory for mount the filesystem
4)sudo mkdir -p /mnt/crypt1
mount LUKS crypt1
5)sudo mount /dev/mapper/crypt1 /mnt/crypt1
btrfs filesystem size details
6)sudo btrfs filesystem show -d
grow btrfs filesystem
7)sudo btrfs filesystem resize +179687500k /mnt/crypt1
verify growth
8)sudo btrfs filesystem show -d
unmount LUKS
9)sudo umount /mnt/crypt1
close LUKS device
10)sudo cryptsetup luksClose crypt1
Edited by Andre Klapper