Toralf Lund wrote: > Hi, > > I just found myself having to set up a new CentOS 6 system with a nearly > identical configuration to an existing host, so I thought I would just > > 1. Do a minimal install to set up partitions etc. on the new system. > 2. Create an image of the existing system using Clonezilla > (http://www.clonezilla.org) > 3. Run a Clonezilla restore on the new system. > > - as I though it would be a lot simpler than replicating the exact > package selection, installing the same users, doing the same manual > config edits (which are required) etc. > > It turns out that it wasn't quite as easy, though. The problem is that > the system use LVM2 volumes for the filesystems, and the new host has a > slightly smaller disk than the other, and Clonezilla seems unable to > restore to a volume that's smaller than the one that was cloned - even > if the actual data fits. > > I guess I could temporarily reduce the LVM volume sizes on the existing > units and clone again, but I'd rather not if I can avoid it. Just > copying file-by-file could be an option, too, but I somehow feel less > comfortable doing that than the above; there is something about the way > I could end up with a mixture of my "minimal install" and the "cloned" > data, I suppose. > > Does anyone have any other ideas about how I might achieve what I want? Manually clone it. On the new machine: mkdir /new mkdir /boot/new rsync -HPavzx --exclude=/old --exclude=/var/log/wtmp $machine:/. /new/. rsync -HPavzx $machine:/boot/. /boot/new/. where $machine is the system you're cloning from. You might want to exclude other logfiles. To prevent problems with the Ethernet interfaces: rsync -HPavzx /etc/sysconfig/network-scripts/ifcfg-eth* /new/etc/sysconfig/network-scripts rsync -HPavzx /etc/sysconfig/hwconf /new/etc/sysconfig rsync -HPavzx /boot/grub/device.map /boot/new/grub/ rsync -HPavzx /etc/udev/rules.d/70-persistent-net.rules /new/etc/udev/rules.d/ Clean log files - you don't really want any of the old systems: find /new/var/log/ -type f -exec cp /dev/null {} \; Copy the original SSH keys - you do *not* want the keys of the system you're cloning from: rsync -HPavzx /etc/ssh/ssh_host* /new/etc/ssh Now rotate: zsh, because it lets you load it's builtin-s, so mv works zsh zmodload zsh/files cd /boot mkdir old mv * old mv old/lost+found . mv old/new/* . # Root partition. cd / mkdir old mv * old mv old/lost+found . #mv old/root . -- WHY? mv old/scratch . mv old/new/* . sync sync Also you might want to touch /.autorelabel to shut up selinux. Note that this assumes the same CPU, etc, Otherwise, you might need to make a new initrd. mark