automatic dump and restore over
Matthew Seaman
m.seaman at infracaninophile.co.uk
Sun Jan 11 04:51:21 PST 2004
On Sun, Jan 11, 2004 at 12:00:12PM +0100, Rickard Dahlstrand wrote:
> All the servers is installed with one partition for /, one for /var/. When I do the initial install I move the /etc to /var/etc and synlink /etc to point at /var/etc. This should make the / partition exactly the same on all the servers.
If you move /etc like this, you'll make the machines so treated
unbootable. There's critical stuff in /etc that has to be in the root
partition for the boot process to be able to find it.
> On the reference server (where I do all the upgrades) I then use dump to create a file from the / partition. This file is the zipped and moved to my laptop from installation on all the other servers.
>
> The laptop is then connected to the same network as the server that needs upgrading. The laptop is running DHCP, TFTP and NFS services.
>
> All servers are set to boot using PXE and once I reboot it the server boots an image from the laptop containing a picobsd dist with a modified startup script.
>
> This script automatically mounts the hard drive on the server and a directory on the laptop containing the dump-file from the reference server. Then it uses restore to write the dump-file over the / partition on the server.
>
> After the upgrade is complete I reboot the server without the DHCP server active and the server should boot using the new / partition.
>
> Can this work? I have read that dump/restore is the best solution for backing up disks. Could there be any problems using restore on a partition already allocated?
It strikes me as a lot more complicated than the recommended method,
which is to designate one machine as a 'build box', where you build
all of the OS and kernels you need. You then NFS export /usr/src and
/usr/obj and mount them on the machine you want to update. Then you
can use 'make installkernel', 'make installworld' and 'mergemaster' to
do the update. Possibly with a few other steps here and there -- for
full instructions start with:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/small-lan.html
However, if you decide to stick with your first idea, then I'd make
a few changes:
i) Copy the contents of /etc to your /var as a backup. Leave the
original /etc in place on the root partition. If you're going
to be doing this sort of thing regularly, then you can set up a
cron(8) job: the net/rsync port will let you do the copies very
efficiently.
ii) Before you rewrite your root partition, you should run newfs(8)
on it to blank it. restore(8) can overwrite a populated
partition, but it works best given an empty filesystem.
iii) After you've restored your example root partition, copy back
the contents of /etc. Note that this will wipe out any updates
to files within /etc which came as part of the upgrade.
mergemaster(8) will help you fix things up, or you can be
selective about what contents of /etc you actually keep backed
up
--
Dr Matthew J Seaman MA, D.Phil. 26 The Paddocks
Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey Marlow
Tel: +44 1628 476614 Bucks., SL7 1TH UK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20040111/ec1ba626/attachment.bin
More information about the freebsd-questions
mailing list