Copy Your Linux Install to a Different Partition or Drive

If you need to move your Linux installation to a different hard drive or partition (and keep it working) and your distro uses grub this tech tip is what you need.

To start, get a live CD and boot into it. I prefer Ubuntu for things like this. It has Gparted. Now follow the steps outlined below.

Copying

  • Mount both your source and destination partitions.
  • Run this command from a terminal:
      $ sudo cp -afv /path/to/source/* /path/to/destination
    
    Don’t forget the asterisk after the source path.
  • After the command finishes copying, shut down, remove the source drive, and boot the live CD again.

Configuration

  • Mount your destination drive (or partition).
  • Run the command “gksu gedit” (or use nano or vi).
  • Edit the file /etc/fstab. Change the UUID or device entry with the mount point / (the root partition) to your new drive. You can find your new drive’s (or partition’s) UUID with this command:
      $ ls -l /dev/disk/by-uuid/
    
  • Edit the file /boot/grub/menu.lst. Change the UUID of the appropriate entries at the bottom of the file to the new one.

Install Grub

  • Run sudo grub.
  • At the Grub prompt, type:
      find /boot/grub/menu.lst
    
    This will tell you what your new drive and partition’s number is. (Something like hd(0,0))
  • Type:
      root hd(0,0)
    
    but replace "hd(0,0)" with your partition’s number from above.
  • Type:
      setup hd(0)
    
    but replace "hd(0)" with your drive's number from above. (Omit the comma and the number after it).

That’s it! You should now have a bootable working copy of your source drive on your destination drive! You can use this to move to a different drive, partition, or filesystem.

Load Disqus comments

Corporate Patron

Linode Logo

 

Pulseway Logo

Limited Time Offer

September Cover

 

Take Linux Journal for a test drive. Download our September issue for FREE.

Topic of the Week

Cloud

The cloud has become synonymous with all things data storage. It additionally equates to the many web-centric services accessing that same back-end data storage, but the term also has evolved to mean so much more.