How do I move a Linux installation between partitions?

I would say there is one thing you missed.

  1. boot using a boot CD (let's say it's the OpenSUSE boot CD)

    1a. copy all of the files from one drive to the other

  2. modify /etc/fstab (change mount points to new partitions)

  3. modify /boot/grub/menu.conf (change boot partition)
  4. reinstall grub

I would say if you set up the partition on the new drive to be compatible with the old setings, this should be pretty straightforward. It might be a little more complicated if you have to edit the mount point locations inside of the OS files. I would recommend keeping the partitions similar enough that all you must do is boot, mount the new drive, copy, change boot partition, re-install grub on new drive. remove old drive and you are done!


You need to copy files as Axxmasterr pointed out. Everything else looks right to me. Others have followed a very similar path: Moving a GNU/Linux installation to a new partition

Be careful with the cp command you use to copy files over. Use the -a option to ensure correct behaviour when you hit symlinks and preserve ownership information.

Some folks have used tar instead of cp to copy the files over to the new partition:

$ cd sourcedir; tar --create --file=- . | (cd targetdir; tar --extract --file=-)

As suggested in the link at the start, you may want to leave the old entry in the grub file and just add a new one, in case you need to revert.

Good luck!