Reduce disk

Lars J├Ânsson 2019-11-26

Reducing a logical partition to be able to remove a physical partition.

Scenario

The root partition is located on a logical partition that include two physical partitions. The whole root partition fits inside the first physical partition and the other phycal partition can be removed.

Boot the Live CD

The instructions requires tha the system is booted with a Live CD. The partition to reduce cannot be mount when reducing the size.

Install system storage manager

The system storage manager (ssm) reduces the disk in one go. It can be done by using using the separated commands e2fsck, resize2fs and lvreduce, but ssm simplifies the task.

Install the system storage manager.

# dnf install system-storage-manager

Reduce the logical partition

Reduce the logical partition. Ensure that the new size is smaller than the size of the physical partition.

# ssm resize -s 9G /dev/fedora/root 

Remove the unused physical partition from the volume group.

# vgreduce fedora /dev/sda3 

Remove the physical partition from available physical volumes.

# pvremove /dev/sda3 

Optionally add the unused space in the fedora volume group (/dev/sda2) to the logical root partition.

# lvextend -l +100%FREE /dev/fedora/root

Remove the partition from the partition table

# parted /dev/sda print free
Number  Start   End     Size    Type     File system  Flags
        1024B   1049kB  1048kB           Free Space
 1      1049kB  1075MB  1074MB  primary  ext4         boot
 2      1075MB  12,9GB  11,8GB  primary               lvm
 3      12,9GB  32,2GB  19,3GB  primary               lvm

# parted /dev/sda rm 3

Use the freed up disk space (optional)

The disk space previuosly used by /dev/sda3 can be used to extend the physical partition /dev/sda2.

Extend /dev/sda2.

# parted /dev/sda resizepart 2 100%
# parted /dev/sda print free
Number  Start   End     Size    Type     File system  Flags
        1024B   1049kB  1048kB           Free Space
 1      1049kB  1075MB  1074MB  primary  ext4         boot
 2      1075MB  32,2GB  31,1GB  primary               lvm

Add the increased size of the physical partition to the physical volumes.

# pvresize /dev/sda2 

Extend the logical root partition.

# lvextend -l +100%FREE /dev/fedora/root
# resize2fs /dev/fedora/root 

Chack that the new space is available.

# mount /dev/fedora/root /mnt/
# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 963M     0  963M   0% /dev
tmpfs                    994M  4,0K  994M   1% /dev/shm
tmpfs                    994M  1,4M  992M   1% /run
/dev/sr0                 1,8G  1,8G     0 100% /run/initramfs/live
/dev/mapper/live-rw      6,4G  5,6G  790M  88% /
tmpfs                    994M   80K  994M   1% /tmp
vartmp                   994M     0  994M   0% /var/tmp
tmpfs                    199M  9,1M  190M   5% /run/user/1000
/dev/mapper/fedora-root   28G  8,2G   18G  32% /mnt
# umount /mnt