Storage: partitions and LVM
Goal
The typical exam scenario: "add a disk, create a 2 GB LV, mount it on /data persistently, then extend it to 3 GB."
The LVM chain
lsblk
pvcreate /dev/vdb
vgcreate vg_data /dev/vdb
lvcreate -L 2G -n lv_data vg_data
mkfs.xfs /dev/vg_data/lv_data
mkdir -p /data
mount /dev/vg_data/lv_data /data
Persistence: /etc/fstab
/dev/vg_data/lv_data /data xfs defaults 0 0
Always check with mount -a before rebooting: a bad fstab can prevent boot (you end up in rescue).
Robust alternative: UUID=$(blkid -s UUID -o value /dev/vg_data/lv_data) then UUID=... /data xfs defaults 0 0.
Grow online
lvextend -L 3G /dev/vg_data/lv_data
xfs_growfs /data # XFS grows while mounted
# ext4 instead: resize2fs /dev/vg_data/lv_data
Shrinking
XFS cannot shrink. To shrink an ext4 LV: umount, e2fsck -f, resize2fs (filesystem first), then lvreduce.
Verify
lsblk -f; df -h /data; vgs; lvs
findmnt /data