Хм, а разве GPartEd не поддерживает копирование разделов? Дело в том, что копирование/перемещение таких относительно небольших разделов будет идти быстрее, чем изменение их размера. Можно сделать так:
1. Переместить swap в конец свободной области.
2. Переместить sda3, поставиви его перед swap.
3. Изменить размер sda2 до необходимого.
4. Переместить sda3, поставив его сразу после sda2.
5. При необходимости поставить swap сразу после sda3.
При большем количестве операций они выполнятся быстрее, но с соблюдением одного условия - положение раздела после перемещения не должно накладываться на положение раздела до перемещения.
Кстати, если в конфиге загрузчика и fstab разделы определяются по UUID, а не по имени, ты даже можешь сменить тип - например, сделать из первичного раздела логический диск.
P.S. Это из личного опыта.