Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a job to clone an entire Ubuntu system to many new PCs; including RVM, Rails, ..., all the binaries, libraries, packages on the existing Ubuntu system should migrate to the new PCs.

Is there any tool that you can recommend?

Does Ubuntu have something similar to the Time Machine for Mac OS?

Another question is that if all of my PCs are based on Intel's product in recent years.

Such as Ivy Bridge , Sandy Bridge, Haswell,..., varies from I3 to I7.

Can I still use the Clonezilla, Because I thought the most troublesome tasks is to install and compiling all the packages I have installed.

Thanks in advance

share|improve this question
    
Acronis will do the job nicely I believe... the thing about cloning though is that you have to make sure the hardware is identical or it probably won't work... –  TheX Nov 15 '13 at 16:26
    
If you have any commercial software, licensing might be an issue. –  Scott Nov 15 '13 at 17:44
    
possible duplicate of Linux cloning tools –  Mokubai Nov 17 '13 at 9:05
add comment

closed as off-topic by Moses, Scott, Tog, Carl B, Mokubai Nov 17 '13 at 9:05

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product, service, or learning material recommendations are off-topic because they tend to become obsolete quickly. Instead, describe your situation and the specific problem you're trying to solve. Here are a few suggestions on how to properly ask this type of question." – Moses, Tog, Carl B
If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

up vote 0 down vote accepted

If your machines are identical/very similar, a very simple solution may work (and we used it a lot of times to manage our 100+ fleet of computers). If your machines vary it still can work quite well with Ubuntu; the only critical thing that I can think of is processor architecture - you just cannot boot non-compatible arch no matter how hard you try. Any machine variation may require some post-installation adjusting.

Boot original system from livecd and just tar the contents of your disk and extract them to newly created partitions. You only have to watch out for three things:

  • /etc/fstab
  • partition order
  • bootloader

In detail it looks something like that (on a livecd, on root)

mkdir /mnt/orig
mount /dev/${original_system_partition} /mnt/orig
cd /mnt/orig

Now edit etc/fstab to use /dev/sd${something} instead of UUIDs.

tar cpvf /media/Pendrive/image.tar .

Now just remember to umount the pendrive (or any removable drive) properly (it may take some time).


Now boot the target system from livecd and (on root):

  • Create partitions
mkdir /mnt/target
mount /dev/${target_root_partition} /mnt/target
cd /mnt/target
tar xvf /media/Pendrive/image.tar
mount -o bind /dev/ /mnt/target/dev
mount -t proc none  /mnt/target
mount -t sys  none  /mnt/sys
chroot . /bin/bash
update-grub2        (inside chroot environment)
exit

Now you're done.

If you have really a lot of computers you may want to make a bootable pendrive with a script to save you from repetetive work. After some getting used to, the manual method is pretty fast.

You may also try to copy entire disk or partitions using dd. I haven't tried that before but it seems reasonable too. This way you may be able to avoid rewriting mbr on every machine.

If you want more robust solution there is Clonezilla which is doing something very similar AFAIK.

If you have software that "doesn't like" changing machines (for example, it depends on some hardware UUID), you may be out of luck - it may require some work after the cloning or just fail completely for practical purposes.

Also, instead of cloning, you can create a script to set up every machine. This approach has number of advantages. Most notably:

  • For simple tasks it is ofter much simpler and/or faster.
  • Your machines can vary a lot and you can handle it well.
  • It is very clear what was done looking at the script.
  • If you need multiple systems you can have different script with a common base to minimize work.
  • It may work with software which breaks with simple-minded copying.
  • It is easier to keep your system clean with script even after serious modifications.
  • You can version control the script.
share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.