* DISCLAIMER: this is my personal note. use at your own risk. * My home machine is running Devuan - note: mount | grep -v -E "/sys|tmpfs|proc|devpts|gvfs" - current disk layout on /dev/sda (GPT): = p1: UEFI partition (fat32) 127M (1M offset) = p2: Root partition (ext4) 30G = p3: Home partition (ext4) ~898G = p4: Swap partition (swap) 4G @ TASK: Create a new lv from slice of p3 - make sure basic lvm terms/concepts are covered = volume group (vg) = physical volume (pv) [aix:pv MUST BE a disk] = physical element/extent (pe) [aix:pp=physical partition] = logical volume (lv) = logical element/extent (le) [aix:lp=logical partition] - need to unmount /home = login as root and make sure no user logged in - target disk layout: = p1: UEFI partition (fat32) 127M (1M offset) = p2: Root partition (ext4) 30G = p3: Home partition (ext4) 600G = p4: Xtra partition (lvm) ~298G = p5: Swap partition (swap) 4G - current p3 content is <500G * repartition disk to create space for new lv # umount /home # e2fsck -f /dev/sda3 # resize2fs -p /dev/sda3 500G # swapoff /dev/sda4 # gdisk /dev/sda > delete /dev/sda4 > note /dev/sda3 starting sector > delete /dev/sda3 > create new /dev/sda3 (linux:8300) = make sure use same starting sector = specify size +600G > create new /dev/sda4 (linux lvm:8e00) = default starting sector = specify -4G to leave space for swap > create new /dev/sda5 (swap:8200) = should have 4G remaining > exit * reclaim /dev/sda3 space (600G) # resize2fs -p /dev/sda3 * edit /etc/fstab accordingly - e.g. specify new uuid for swap & /dev/sda3 * restore swap # swapon -a - OR, 'swapon /dev/sda5' * install lvm - using lvm2 implementation (uses device mapper) # apt install lvm2 * create pv # pvcreate /dev/sda4 * create volume group vg # vgcreate xtravg /dev/sda4 * playing around (create/remove lv) # lvcreate -L 100G -n store xtravg # lvcreate -l +100%FREE -n movie xtravg # lvremove movie # lvremove store * create single lv on vg # lvcreate -l +100%FREE -n share xtravg # vgdisplay xtravg * create ext4 fs on lv # mkfs.ext4 -L LVMSHARE /dev/xtravg/share * create a mountpoint for the new lv # mkdir /ext * check entry in /dev/mapper/ = should have xtravg-share * add entry in fstab = e.g. /dev/mapper/xtravg-share /ext ext4 defaults 0 2 * manually mount # mount /ext @ TASK: Add new disk to existing lv - got a new disk, using whole disk (1TB) - extend existing lv # pvcreate /dev/sdb # vgdisplay xtravg # vgextend xtravg /dev/sdb # vgdisplay xtravg * use all newly available space # lvextend -l +100%FREE /dev/xtravg/share @ TASK: Remove PV from VG - need to use original /dev/sda4 for something else - note: pvs -o+pv_used - PV is in use, so need to free up # umount /ext # e2fsck -f /dev/xtravg/share # resize2fs -p /dev/xtravg/share 800G # lvreduce -L 850G /dev/xtravg/share * reclaim space # resize2fs -p /dev/xtravg/share * check usage # pvs -o+pv_used - OR, pvdisplay * IF any PEs still in use # pvmove /dev/sda4 * remove pv from vg # vgreduce xtravg /dev/sda4 * remove pv from system (no longer id as pv) # pvremove /dev/sda4 * reclaim all lv space # lvextend -l +100%FREE /dev/xtravg/share # resize2fs -p /dev/xtravg/share