Если свап-раздел рядом с системным, то я-бы посоветовал удалить свап-раздел, на освободившееся пространство растянуть системный раздел, создать свап-файл.
Нужно диск размечать по правилу от большего к меньшему: home, root, swap, esp. Если у тебя системный раздел первее, то при попытке расширить того же хомяка, все блоки будут смещены взад, те сколько он занимал, столько данных и запишется по новой. Используй Btrfs там нет разделов, но есть подтома у которых динамический размер ЛИБО можно использовать LVM с его логическими разделами, где один раздел может занимать, например, первые N секторов, M секторов посередине и O где-то в конце, при изменении размера логических разделов данные не перезаписываются.