dd and cp -a

Karl Larsen k5di at zianet.com
Thu Aug 30 11:52:12 UTC 2007


Steve Siegfried wrote:
> Karl Larsen wrote:
>   
>>     I have this computer on /dev/sda and the new hard drive is /dev/sdb. 
>> This F7 is all in /dev/sda6 and I want to copy /dev/sda6 to /dev/sdb5. I 
>> tried dd but it failed I think because /dev/sdb5 is smaller 10 GB than  
>> /dev/sda6 which is 30 GB. It ended with an error message.
>>
>>     So back to cp -a but there is a hitch. I redid /sdb5 with another 
>> ext3 file system and I can mount it to /mnt on this computer. So it is 
>> easy to cp all from /dev/sda6 to /dev/sdb5 but, with a simple # cp -a / 
>> /mnt it will do all that fine but then want to copy /mnt to the new 
>> /dev/sdb5.
>>
>>     Does anyone know a secret that will work? I will read man cp again :-)
>>
>>     
>
>  1 - make sure the target partition (/dev/sdb5 from the looks of things) is
>      AS LARGE OR LARGER than /dev/sda6.
>
>        You can do this check by:
>         $ su                      # become root
>         # fdisk /dev/sda
>         ...
>         Command (m for help): p   # you enter the "p" part at the end
>         ...
>         Command (m for help): q   # you enter the "q" part at the end
>         # fdisk /dev/sdb
>         ...
>         Command (m for help): p   # you enter the "p" part at the end
>         ...
>         Command (m for help): q   # you enter the "q" part at the end
>         # 
>
>      then compare the "Blocks" column entry for /dev/sda6 and /dev/sdb5,
>      making sure the one for sdb5 is larger.
>
>  2 - Make a clean partition on /dev/sdb5:
>         # mkfs -t ext3 /dev/sdb5
>
>  3 - Check the partition you just made:
>         # fsck -f /dev/sdb5
>
>  4 - Mount the new partition:
>         # mount /dev/sdb5 /mnt
>
>  5 - Copy over everything from sda6 to sdb5
>         # cd $MOUNT_POINT_FOR_sda6    # probably "/"
>         # find . -mount -print | grep -v '^./lost+found' | cpio -pdumva /mnt
>
>
> Cpio will preserve any hard and soft links it finds and will also
> correctly copy any device nodes.  I'm not totally sure you can say that
> about "cp -a".  As above, the find command piped into cpio will also
> preserve any mount points, but not try to copy the stuff inside the
> mount point.  Note also the "grep -v '^./lost+found" part of the pipe
> prevents copying over any bad/orphaned files from sda6 to sdb5.
>
> BTW: using dd(1) on two different partitions usually results in the "of="
> partition thinking it's the same size as the "if=" partition.  When the
> "of=" partition is the smaller of the two, this means trouble later on.
> When the "of=" partition is the larger of the two, you'll end up wasting
> some disk space.  Most of this kind of issue is fixable in file-system
> editors, but these are pretty much "guru only" sorts of tools, too.
>
>
> Hope this helps'idly,
>
> -S
>
>   
    Thank you. I used the DD if= of= and it worked just fine. A real 
experience that worked. I should have no sim-link problems with dd. It 
just got 150 byte chunks of the from and stuck it in the to.

    Today I will put the copy in place of this and make sure it runs ect.



-- 

	Karl F. Larsen, AKA K5DI
	Linux User
	#450462   http://counter.li.org.




More information about the users mailing list