Hack 61 Migrate to a New Hard Drive

 < Day Day Up > 

figs/moderate.gif figs/hack61.gif

Move your complete system to a new hard drive .

Not only do hard drives hold your programs and data, but they fill up and run out of free space sooner than you would like. When this happens, it's time to buy a larger hard drive and migrate the system. While there are many different ways to copy files from one hard drive to another, some work better than others when transferring the full / directory. This hack outlines a method to transfer full systems and partitions from one machine to another.

6.11.1 Why This Can Be Complicated

When you copy a full Linux system from one partition to another, there are a few issues you need to consider:

Preserve permissions

If your files aren't owned by the same people and have the same permissions, your new system probably does not run as expected.

Properly handle special files

Certain methods of copying a system don't properly handle the /dev and /proc filesystems. As a result, you boot on the new drive only to find you have no device entries listed.

Span filesystems

When you copy one filesystem to another, especially the root filesystem, you don't want to span across filesystems. For example, if you have a new hard drive mounted at /mnt/temp and you recursively copy / to /mnt/temp and allow filesystem spanning, you could end up with /mnt/temp copied into /mnt/temp/mnt/temp and /mnt/temp/mnt/temp copied to /mnt/temp/mnt/temp/mnt/temp (not to mention the rest of the filesystem you have copied to /mnt/temp ). To avoid this, most copy programs have an option to copy only the mounted filesystem it is started from without continuing to other mounted filesystems.

Knoppix removes some of these complications. For instance, if you are booting on top of a system, you no longer have to worry about whether the copy method spans filesystems, because each filesystem is mounted under /mnt only when you choose to mount it.

6.11.2 What to Do

The best method to copy the / filesystem combines find with cpio (both are utilities that are standard on any Linux distribution, including Knoppix). This example transfers a Linux installation from a single-root partition on /dev/hda1 to /dev/hdb1 , which is a freshly formatted partition that becomes the new root partition:

 knoppix@tty0[knoppix]  sudo mount  /mnt/hda1   knoppix@tty0[knoppix]  sudo mount -o rw  /mnt/hdb1   knoppix@tty0[knoppix]  cd  /mnt/hda1   knoppix@tty0[hda1]  sudo sh -c "find ./ -xdev -print0  cpio -pa0V  /mnt/hdb1    "  

This example uses /mnt/hda1 and /mnt/hdb1 , but you should change those values to the two partitions you are using. When you run this command, it recursively copies everything on the /mnt/hda1 filesystem, without crossing over into other mounted partitions. It properly handles any special files, and it completely preserves permissions. For each file that is copied, this command prints out a single dot to the screen, so you get a sense of the progress. If you want more specific information on the progress, use the watch command in a different terminal:

 knoppix@tty0[knoppix]  watch df  

The watch command runs df every two seconds and allows you to compare the used and available space on both the old and new partitions.

If you have other filesystems mounted on other partitions, you simply repeat the command and replace hda1 and hdb1 with the new partitions you want to copy from and migrate to, respectively.

After the partitions have been migrated , edit the /etc/fstab file on the new partition if any partition numbers have changed. Remember to change /etc/fstab entries to reflect the partition letters the new drive has once it is moved to its final bus location, not the partition letter it is currently assigned.

You must also restore the boot loader to the new partition. Follow the steps in [Hack #2] or [Hack #53] , depending on your boot loader. Once the boot loader is restored, halt the machine, swap the old drive with the new drive, and boot the machine from the new partition and make sure everything has copied over correctly before wiping the old drive and using it for something else.

I have used this method to copy numerous systems from one drive to another, to transfer to a larger partition or a new filesystem, and even to move to software RAID5 (and back). While the options passed to find and cpio seem daunting at first, I have found this command so useful that it has become engrained in my memory. I usually run this command directly from the system being copied in single- user mode, but it's not necessary. When you use Knoppix, you also don't have to worry about whether files have changed since you started copying them. In addition, while the files are copying, you can browse the Web or play games if watching df output bores you.

 < Day Day Up > 

Knoppix Hacks. 100 Tips and Tricks
Knoppix Hacks. 100 Tips and Tricks
Year: 2004
Pages: 166

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net