shrink lvm
# Unmount the filesystem and check its' LV
umount /mnt/foo
e2fsck -f /dev/mapper/vg0-foo
# Shrink ext4 and then the LV to the desired size
resize2fs -p /dev/mapper/vg0-foo 40G
lvreduce -L 40G /dev/mapper/vg0-foo
# Before continuing, run e2fsck. If it bails because the partition
# is too small, don't panic! The LV can still be extended with
# lvextend until e2fsck succeeds, e.g.:
# lvextend -L +1G /dev/mapper/vg0-foo
e2fsck -f /dev/mapper/vg0-foo
# Resize the filesystem to match the LVs size, check and mount it
resize2fs -p /dev/mapper/vg0-foo
e2fsck -f /dev/mapper/vg0-foo
mount /mnt/foo
expand lvm
umount /mnt/bar
# Extend the LV to use all free space
lvextend -l +100%FREE /dev/mapper/vg0-bar
e2fsck -f /dev/mapper/vg0-bar
# Resize the partition to fill the LV
resize2fs -p /dev/mapper/vg0-bar
e2fsck -f /dev/mapper/vg0-bar
mount /mnt/bar
expand luks encrypted filesystems
umount /crypto
e2fsck -f /dev/mapper/crypto
cryptsetup luksClose crypto
lvextend -L +100M /dev/cryptovg/crypto
cryptsetup luksOpen /dev/cryptovg/crypto crypto
cryptsetup -v resize crypto
e2fsck -f /dev/mapper/crypto
resize2fs /dev/mapper/crypto
e2fsck -f /dev/mapper/crypto
mount /dev/mapper/crypto /crypto
Snapshot
Taking A Snapshot
sudo lvcreate --size 1G -s -n snapshot_lv /dev/vgroup/original_lv
Mounting A Snapshot
sudo mkdir /mnt/snap
sudo mount /dev/ubuntu/mysnap /mnt/snap
cd /mnt/snap
Reverting/Merging To The Snapshot’s State
lvconvert --merge /dev/vgroup/snapshot-lv
Removing A Snapshot
sudo lvremove /dev/vgroup/snapshot_lv_name