Somewhat complex re: moving and resizing partitions
Currently I have two drives:
/dev/sda, laid out like so:
and here's a more "artful" representation:
/dev/sda (147 GB actual)
|_ sda1 = Windows XP (25 GB)
|_ sda2 = Root of Linux install [/] (20 GB)
|_ sda3 = Extended partition
|_ sda5 = Swap (1 GB)
|_ sda6 = Linux /home (101 GB)
and I also have a brand new 750GB drive that has nothing on it at present. For argument's sake let's call it /dev/sdb.
WinXP Linux / Linux /home
I want to keep my current OS environments exactly as they are because it took me a long darn time to install and customize them. What I want to do is this:
- Move the swap space to the beginning of /dev/sdb.
- Move /home to /dev/sdb using all the remaining space.
- Erase my current /home partition on /dev/sda6.
- "Slide" my / partition (/dev/sda2) to start at about the 120GB mark, and extend it to the end of the drive to take up the remaining free space.
- Extend my Windows partition to fill the space left by moving the Linux partitions.
In the end it should look like this:
NOTE: I have two other drives, not part of this mix, that currently hold all my backups. Thus I'm willing to live a bit dangerously; if I hose /home, no biggie. If I hose XP or the Linux root, sort of biggie but I can live with reinstalling if I absolutely have to.
WinXP Linux /
swap Linux /home
I am completely comfortable with using [insert favorite LiveCD here] and the command line to do whatever needs to be done to make this work. What I need to know is:
1. Is this even do-able? The part I'm most concerned about is moving the root Linux partition, and I'm aware of the pitfalls of moving partitions.
2. If it is workable, what changes do I need to make to ensure that grub knows where to find the OSes?
If you have better solutions or suggestions that will keep the installations intact, by all means please share them, even if what you suggest takes a week to finish. I'd rather use my time to learn more about partitioning instead of reinstalling and re-customizing OS environments.