Resizing partitions, luks containers and lvm devices
Resize: partition -> luks -> lvm -> filesystem
Follow these steps from the sections below:
Grow disk partitions
Grow luks container
Grow PV
- eventually:
Grow LV
Grow Filesystem
Resize Luks partition on top of LVM
Backup data
Backup mbr
dd if=/dev/sda of=~/backups/mbr.img bs=512 count=1
Clone Disk
see `~/Howtos/disks/cloning.md`
After cloning, make sure that
- No partition is mounted (
mount
) - No luks partition is maped (
ls -al /dev/mapper/
)
Grow disk and luks partitions
There are 3 options: growpart
, parted
or sfdisk
:
Grow partition using growpart
https://blog.myduniahosting.com/how-to-resize-your-root-diskpartition-online-for-linux/
- Easiest, worked when parted didn't.
- Issues: I couldn't use
growpart
to grow a partition bigger than 2TB → Useparted
in this case.
Steps:
sudo apt install cloud-guest-utils
growpart /dev/sda 2 # Extended part
growpart /dev/sda 5 # luks part
partprobe
Grow partition using parted
apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda
resizepart 2 100% # resize /dev/vda2 # First the primary partition
resizepart 5 100% # resize /dev/vda5 # Then the extended partition, if applicable
quit
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space
Grow Partition using sfdisk
sfdisk -d /dev/sdX > sdX.orig
sfdisk -d /dev/sdX > sdX.new
fdisk -l /dev/sdb > fdisk.sdb # note total sectors
vi sdX.new # grow extended part
sfdisk /dev/sdX < sdX.new # maybe with --force
partprobe /dev/sdX
Grow luks container
cryptsetup luksDump /dev/sdX5 > sdX.luksdump
cryptsetup luksOpen /dev/sdX5 crypt
cryptsetup status crypt
cryptsetup --verbose resize crypt
cryptsetup status crypt
Reboot needed ?
Grow PV
pvresize /dev/mapper/crypt
pvs
Grow LV
vgchane -a y criddy
lvextend -L +20G /dev/criddy/root
lvs
Grow Filesstem
fsck.ext4 -f /dev/criddy/root
resize2fs /dev/criddy/root
Done !
Resize luks on plain partition
sudo parted /dev/sdb
resizepart
2
100%
quit
sudo /home/varac/bin/ultrabay mount
sudo umount /media/varac/cryptbackup
sudo cryptsetup status /dev/mapper/cryptbackup
sudo cryptsetup --verbose resize cryptbackup
sudo cryptsetup status /dev/mapper/cryptbackup
sudo e2fsck -f /dev/mapper/cryptbackup
sudo resize2fs -p /dev/mapper/cryptbackup