NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: upgrade in-place process?



    Date:        Fri, 18 Oct 2019 07:25:20 +0100
    From:        Sad Clouds <cryintothebluesky%gmail.com@localhost>
    Message-ID:  <20191018072520.32a5cc2ac89546279dea20a6%googlemail.com@localhost>

  | I don't use Xen much, so not sure if the upgrade is slightly different,
  | but I imagine there is no difference for userland.

You're right, there isn't - depending upon how the Dom0 boots the DomU
the kernel and /boot* stuff might be different (or might not be), but the
rest of a DomU userland is just NetBSD.

  | I usually follow these steps:
  |
  | Backup all your existing config files in /etc and anywhere else.

In that include /var/cron /var/backups /var/mail (if you care) /var/tmp
(for vi recovery files mostly) and anything else there that looks like
it might be useful.   None of this should be touched by the upgrade, and
if you make sure it is all properly backed up so you can recover if
something goes wrong, then nothing will, and the backup will have been
wasted time.   Fail to backup and some kind of disaster will hit...

In general, backup *everything* that you want to survive the upgrade
(and move the backups somewhere off the system, and after they're
moved, verify that you can copy them back, and use them - in /tmp or
somewhere, extract one or two files from each using restore in interactive
mode).   Again, spending the time to do that means that you aren't
likely to actuially need them (and no, it isn't just superstition, people
willing to do things carefully this way are more likely to be careful
through the entire procedure, the "It'll be OK, I'll just do this quickly"
type of person is the one who messes things up).

  | 1. Install new kernel, reboot and make sure it boots.

It sounded as if that had already been done.

  | 2. Download all .tgz sets to some local folder.

That can happen one at a time if you're short on space, i.e. download
one, unpack it (do base.tgz first, after that the order doesn't really
matter).

  | 3. Extract all sets into / APART from etc.tgz and xetc.tgz and kernel,
  | otherwise it'll overwrite you config settings in /etc. So the commands
  | would be:

To do this, use the commands in /rescue and don't overwrite that,
so to extract base, you can

	cd /
	PATH=/rescue
	exec sh
	echo $PATH     # make sure it is still just /rescue or update it again
	tar tzf /path/to/base.tgz | grep ^rescue/ > /tmp/rescue-files
	tar xz -X /tmp/rescue-files -f /path/to/base.tgz

and then

  |   # for i in base comp games man misc modules tests text (... and so on)
  |   do
  |   tar -zxpf /path_to_sets/$i.tgz
  |   done

but omit base from there.    You can go back and extract the new /rescue
sometime later after you're sure all the new stuff is working (it isn't
used unless you deliberately make it happen).   In HEAD rescue is a set
of its own (very good idea doing that ... sorry, I forget whose it was,
and who did all the work, but thanks!)

If you have space, after you're running using /rescue/sh with just
/rescue in your PATH (do check that), I would

	mv bin bin.old
	mv sbin sbin.old
	mv libexec libexec.old
	mv lib lib.old
	(etc ... but do not move /etc)

(etc) and then extract - simply because that makes it much easier to
revert to the old setup if needed - move /lib and /usr/lib last, and
if needed, restore them first.   If there isn't space to save everything
this way, but some can be, then save /lib /sbin and /libexec so those
can be restored quickly, and then /bin (etc).   Remember that the new
system will consume more space than the current one, so when you check
the space occupied by each of these directories to see what you can
afford to save, allow for needing about 40% more empty space than what
is currently used (how much depends upon which system you had, and are
moving to - but things to get both added and grow).

  | 4. Run "etcupdate". See the man page, but I normally do something like:
  |   # etcupdate -al -s /path_to_sets/etc.tgz -s /path_to_sets/xetc.tgz

Or do the equivalent manually, which will take a lot longer, but will
also provide the opportunity to clean up dead wood that has been
forgotten in the years (it must be) since a 6.1 system would have been
installed.   Manually means extract the etc sets elsewhere, and then go
through file by file, comparing them, seeing what the differences are,
and deciding for every difference which version you want, then merging
the files (or where you simply want the new one, which will be most of
the files probably, just copy it - use cp -p if you do that, so the file
ends up just the same as if it has been extracted by tar).

Fortunately aside from /etc/passwd and /etc/group there's usually not
a lot of urgency to handle all of this (you might need new _xxx users
to be added to /etc/passwd for the system to start properly.)

kre



Home | Main Index | Thread Index | Old Index