Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Feb 2008 21:45:42 -0500
From:      Jerry McAllister <jerrymc@msu.edu>
To:        Fira <muarwi@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Question about restore
Message-ID:  <20080204024542.GA4721@gizmo.acns.msu.edu>
In-Reply-To: <465d309c0802020528g6e1df120hd1ac703a28940edf@mail.gmail.com>
References:  <465d309c0802020528g6e1df120hd1ac703a28940edf@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 02, 2008 at 08:28:37PM +0700, Fira wrote:

> Hi list,
> 
> I want to migrate one of my server (machine A) into another (machine B). My
> choice is using 'dump' and 'restore'. I've dumped all of my filesystem into
> third machine (machine C)  over ssh. All went fine.
> Then, I want to restore it into machine B. This machine is newly fresh, no
> freebsd inside. My plan is restore the dump file into it by using installer
> CD. I use the cd/dvd fixit mode. At this time, my confusion begun. To
> restore it,  I need to create the slice.  I  did 'fdisk' and 'disklabel'
> from sysinstall. But it failed. I followed tutorial from
> http://devpit.org/wiki/Dump_and_Restore_over_SSH [of course with some
> adjustment], but I still failed.
> 
> My question is, how is the right way to do the restore in a system that
> hasn't been installed with freebsd at all? From what I get in google, every
> restore example is done on a system that has been installed an OS.

I am not sure what didn't happen or if you left something out of your 
description, but I will take a shot here.

First, You also don't mention the FreeBSD version you are working with, 
but 'disklabel' has been replaced with 'bsdlabel' several versions ago.

Next, although you say you used fdisk to create slices and bsdlabel[disklabel]
(presumably to create partitions) you don't mention using newfs to create
filesystems on the partitions.  

Then, you do not mention creating any mount points for the new 
filesystems/partitions.

These can all be done using sysinstall on the install CD and that can
be a good way to do it.   You tend to forget fewer steps, because it
keeps track of them for you.   It is not a bad thing to just do a very basic
install of the version you want and with the partitions created to the
size you want.   Then restore the backups right over it.   

Or, maybe better than that, just create the slice/partitions/filesystems 
with sysinstall and then get out of it and boot again and go into 
the 'fixit' sell.  That will have enough to do everything.   If you use 
sysinstall this way, you will still manually need to create mount points
and mount the new filesystems.

So, here is the general procedure - presuming you are using the disk
only for FreeBSD.  Dual boot is similar, but you need to specify a couple
of things differently.

Boot the install disk and bring up either the fixit or sysinstall.

Use fdisk (or sysinstall) to create a single slice that is marked
as bootable.  Also write the standard FreeBSD MBR.

    fdisk -BI da0      (presuming your disk is da0 (SCSI)  
                         would be ad0 if IDE/STAT)

Use bsdlabel to create a boot sector on the disk and the partitions.

    bsdlabel -w -B da0s1   (Initializes the slice and writes boot sector)

    bsdlabel -e da0s1      (Brings up edit mode to edit the partition table)

Then use newfs to create filesystems on all partitions except swap.

    newfs /dev/da0s1a      (for partition a which will be mounted as /  (root)
                            partition 'b' will be swap
                            partition 'c' is special to describe the slice
                             and is unused for actual partitions
    newfs /dev/da0s1d      (for the 'd' partition - maybe /tmp)
    newfs /dev/da0s1e      (for 'e' partition - maybe /usr)
       etc  as needed       for all partitions

The above may be done by sysinstall.
The rest needs to be done from fixit or a running system - i'd recommend fixit

Now create mount points for each partition -- note that in the fixit disk
your main/root writable filesystem that the fixit is running from is
in memory and not on disk, so if you reboot before completing stuff, 
the mount points will disappear.

    mkdir /newroot         for partition a  which will become your root
    mkdir /newusr          for partition e, /usr in my example
      etc as needed

Mount the partitions
    mount /dev/da0s1a /newroot
    mount /dev/da0s1e /newusr
      etc  as needed

Now you are ready to do the restores.

Still from the fixit disk
    cd /newroot
    restore -rf      plus you add all your piping from the 
                     place you have the dump stored.
    cd /newusr
    restore -rf  pluss all the pipings.

You should now be able to reboot and run the new machine.

Now, if you are not using the latest FreeBSD, I would suggest that
you boot the latest (6.3) version and build the whole new system
with that and instead of just restore the dumps as is, make a nice
big extra partition/filesystem, restore each dump there and  then
pick and choose out of it what you want to add back in to the new
whole system.  That would mostly be just some configuration stuff
in the systems areas (root and /usr) and then your user storage, maybe
living in /home or whereever you had it.

////jerry



> 
> Thanks a lot guys!
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080204024542.GA4721>