Tool for semi-cloning a hard drive: recommendations?
Phil Meyer
pmeyer at themeyerfarm.com
Fri Jan 11 20:50:26 UTC 2008
Dan Thurman wrote:
> On Friday 11 January 2008 10:52:50 am Phil Meyer wrote:
>
>> Dan Thurman wrote:
>>
>>> Is there a [Fedora/Linux] clone/partition tool that will clone a hard
>>> drive with features that allows one to specify any partition size to the
>>> target new drive? For example, the original drive may have a partition
>>> with a size of say, 10GB and instead of a direct clone, I'd like to
>>> specify a larger target partition size of say, an increase of 25GB?
>>>
>>> As a feature, I'd also like the capability if need be, to be able to
>>> change the source drive's partition sizes and to be able to move
>>> partitions around so as close partition gaps? System Commander was such
>>> a tool for windoes but is there one for Fedora/Linux?
>>>
>>> Any suggestions?
>>>
>>>
>> Copying the contents of one drive to another is as simple as:
>> cp -a <source> <target>
>> Or there is the most correct way:
>> cd <source>
>> find . -depth -print | cpio -pdmu <target>
>> If both file systems are LVM or hardware raid, then that solves the
>> other part of your question.
>> But lets look at a specific example since you did not provide one:
>> Lets assume that /var keeps filling up and its currently on / which is a
>> fixed partition.
>> You have hardware based raid from a SAN or new shoebox.
>> Use whatever tools are appropriate to create <new volume>.
>> Mount the new raid device on /mnt
>> mount <new volume> /mnt
>> Quiesce applications
>> cd /var
>> find . -depth -print | cpio -pdmu /mnt
>> umount /mnt ; mv /var /foo ; mkdir /var ; mount <new volume> /var
>> revise /etc/fstab to correct the new /var
>> restart apps or reboot
>> rm -fr /foo
>> You need to MOVE /var because there will surely be something running
>> with a file open in /var
>> You need to be quick making the changeover to the new /var, thus the
>> commands all on the same command line.
>> Don't remove the old /var until you are positive that all apps that use
>> /var have been restarted. Sometimes a reboot will be necessary. If
>> unsure, reboot.
>> Tried and tested many times. :)
>> Good Luck!
>>
>>
>
> First, thanks for your tips! I am sincere here and please do not be offended
> if I come across as an ignorant idiot, of which I can be at times.
>
> What happens when you have a multiboot drive, of which there are windoes of
> many variants (98,2K,XP,...), Solaris, Linux(Fedora,Ubuntu,...)?
>
> Which is why it is not so simple. :-/
>
> Also - manually "walking through" each partition of the source drive and
> manually creating/copying partitions to the target drive could be quite a
> chore I think, and getting all of the MBRs for each partition could be a
> nightmare?
>
> Which is why I said: "semi-clone" tool...
>
> I must be joking, right? Unfortunately, no. Am I asking for a "pie in the
> sky"? Maybe.
>
> But then that is why I am asking - although you are absolutely right, I did
> not 'specify' the conditions and I apologize for that - must be getting old
> at my age and forget important details. *sigh*
>
>
No worries, I know about getting old. :)
Remember, dd originally meant 'disk duplicator'.
There has been much discussion here recently about what dd can and
cannot do.
Maybe I can sum up. :)
1. Target drive cannot be smaller than the source drive, period.
2. inode and/or other fs related resources will be sized to the old drive.
This is only problematic when going to a much larger drive, or when the
drive contains mostly small files.
3. udev/hal/+friends do not like foreign disk drives, and will duplicate
some devices, causing new eth, sd and other devices. It is fine, and
does mostly the right things, but may come as a surprise. Windows
almost NEVER works from a cloned drive, sorry. For Windows, you really
need a backup or 'ghost' type program.
4. Moving a 'cloned' bootable drive to another host does not guarantee
it will be bootable on the new host. A rescue on the new host may still
be necessary to reinstall grub.
5. Trying to 'use' a cloned drive on the original host while the
original drive is present is problematic due to the way Fedora mounts
partitions by LABEL. Other Linuxen use the hard drive id (UUID, I
think) just for this purpose.
Those are the CAVEATS that come to mind, but with a bit of care, cloning
with dd works just fine for ufs (Solaris) ext3/reiser, etc.
One last thing: its best to use a proper bs (block size) argument for
dd so the sector boundaries will be honored. On drives with multiple fs
types, you may need to punt back to the lowest common denominator which
is likely 1k. Using block writes instead of single byte writes is also
a bit faster.
Good Luck!
More information about the fedora-list
mailing list