Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jun 2002 17:09:37 -0400
From:      Justin L.Boss <jlboss@cox.net>
To:        Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Re: copy one drive to another
Message-ID:  <20020627210938.MYDL1975.lakemtao03.cox.net@smtp.east.cox.net>

next in thread | raw e-mail | index | archive | help
Thanks, You have answered my questions before and your always right on. Thanks
> 
> From: Matthew Seaman <m.seaman@infracaninophile.co.uk>
> Date: 2002/06/27 Thu PM 04:46:32 EDT
> To: "Justin L.Boss" <jlboss@cox.net>
> CC: freebsd-questions@FreeBSD.ORG
> Subject: Re: copy one drive to another
> 
> On Thu, Jun 27, 2002 at 11:51:49AM -0400, Justin L.Boss wrote:
> 
> > i'm trying to copy one drive to another. The drives are not the same
> > size, so i'm trying to decide which would be the best way to do it.
> 
> You want to copy the contents of disk ad0 onto disk ad1 
> 
> > dd if=/dev/ad0 of=/dev/ad1
> 
> This can only ever work if ad1 is the same size or bigger than ad0.
> The filesystems you create on ad1 will be exactly the same size as the
> original on ad0, so if ad1 is bigger you will waste some space.
> 
> The great advantage of using dd(1) is that you should be able to copy
> foreign filesystems, even if they are unmountable under FreeBSD.
> 
> > dump -0 -f /dev/ad1 /dev/ad0
> 
> This is probably the best approach, although it's a bit more complex
> than you've indicated.
> 
> First of all, dump works on file systems, not disk devices.  You
> should create disk slices, partitions and filesystems on ad1 to match
> the originals on ad0 (ie. of sufficient size to contain all the data
> you're copying over).  You can use fdisk(8) to create slices,
> disklabel(8) to generate partitions and newfs(8) to build filesystems
> on those partitions.  Or you can use /stand/sysinstall to do the whole
> setup.
> 
> Now, for the actual copying.  Copy each filesystem in turn, by piping
> the output of dump(8) into restore(8).  You need to mount the target
> filesystems before you do the restore:
> 
> eg.
> 
>    newfs /dev/ad1s1a
>    mount /dev/ad1s1a /mnt
>    cd /mnt
>    dump -0 -f - /dev/ad0s1a | restore -rf -
>    umount /mnt
> 
> > tar -cf /dev/ad1 /
> 
> tar(1) can be used as an alternative.  Again, you're going to be
> copying filesystems rather than the whole disk.  Prepare pristine new
> file systems on /dev/ad1 as for the dump/restore method.  Assuming,
> for example, that you've mounted your /usr partition on /dev/ad0s1f,
> and you want to copy it over to /dev/ad1s1f:
> 
>    newfs /dev/ad1s1f
>    mount /dev/ad1s1f /mnt
>    cd /usr
>    tar -lcf - . | ( cd /mnt ; tar -cvpf - )
>    umount /mnt
> 
> Some general remarks: dump/restore will give you the most faithful
> copy of your data.  Be careful if using tar(1) that you don't
> accidentally include the target directory into the source of what
> you're copying, or you'll end up with a huge mess.  Use the -l flag to
> limit the copy to one partition.
> 
> There's no point trying to copy swap areas by these means: it won't
> work.  Just mark the partition as swap using disklabel(8).
> 
> 	Cheers,
> 
> 	Matthew
> 
> -- 
> Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
>                                                       Savill Way
> Tel: +44 1628 476614                                  Marlow
> Fax: +44 0870 0522645                                 Bucks., SL7 1TH UK
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020627210938.MYDL1975.lakemtao03.cox.net>