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>