I have a Debian system which has been set up quite a long time ago with default partition sizes as suggested by the installer. Turns out that the root and /usr partitions are too small for my needs. For instance, I don't have enough space to install a new kernel.
Disk layout is as follows:
# df|grep sdb
/dev/sdb1 264445 235155 15637 94% /
/dev/sdb9 472007120 292643816 155386696 66% /home
/dev/sdb8 381138 27042 334418 8% /tmp
/dev/sdb5 4806904 4276636 286084 94% /usr
/dev/sdb6 2885780 845500 1893692 31% /var
# fdisk -l /dev/sdb
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c26ca
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 34 273073+ 83 Linux
/dev/sdb2 35 60801 488110927+ 5 Extended
/dev/sdb5 35 642 4883728+ 83 Linux
/dev/sdb6 643 1007 2931831 83 Linux
/dev/sdb7 1008 1053 369463+ 82 Linux swap / Solaris
/dev/sdb8 1054 1102 393561 83 Linux
/dev/sdb9 1103 60801 479532186 83 Linux
I would like to shrink the /home partion (which is located at the "end" of the disk) by cutting about 10 GB from the beginning and then giving 5 GB each to the root partition and /usr. This would mean to move /dev/sdb[2-8] to make room for the additional space for root and /usr.
The system is console-only.
Is there a way to do these changes without loosing data on root, /usr, /var and /home?