Re: upgrade in-place process?

2019-10-18 Thread Robert Elz
Date:Fri, 18 Oct 2019 07:25:20 +0100
From:Sad Clouds 
Message-ID:  <20191018072520.32a5cc2ac89546279dea2...@googlemail.com>

  | 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



Re: upgrade in-place process?

2019-10-18 Thread Sad Clouds
On Fri, 18 Oct 2019 13:13:33 +1100
"Malcolm Herbert"  wrote:

> I have a VM with a provider that uses Xen under the hood.  Recently
> my VM suffered an outage which I believe may have been due to an
> upgrade of their platform to Xen 4.4.4 (or so dmesg says it is now).
> 
> My previous OS was (iirc) 6.1 and in order to get it to boot at all,
> the admin there has upgraded my kernel to 8.1_RC1 ...
> 
> I'm ok with this, but at some point I'll need to also upgrade all the
> userland binaries and I'm wondering the best method might be ... is
> there any documentation on how best to perform these steps?
> 
> Unfortunately although I do have the ability to start and stop the
> VM, I can't manipulate the VM config beyond asking their admin to
> boot my VM from a particular kernel image ... 
> 
> Should I ask that they boot from (say) the 8.1
> netbsd-INSTALL_XEN3_DOMU.gz image and then go through the upgrade via
> that (I do have access to the console)?  Once that's done I can then
> ask that they boot from the regular 8.1 netbsd-XEN3_DOMU.gz
> 
> Regards,
> Malcolm
> 
> -- 
> Malcolm Herbert
> m...@mjch.net

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

I usually follow these steps:

Backup all your existing config files in /etc and anywhere else.

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

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

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:
  # cd /
  # for i in base comp games man misc modules tests text (... and so on)
  do
  tar -zxpf /path_to_sets/$i.tgz
  done

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


upgrade in-place process?

2019-10-17 Thread Malcolm Herbert
I have a VM with a provider that uses Xen under the hood.  Recently my VM 
suffered an outage which I believe may have been due to an upgrade of their 
platform to Xen 4.4.4 (or so dmesg says it is now).

My previous OS was (iirc) 6.1 and in order to get it to boot at all, the admin 
there has upgraded my kernel to 8.1_RC1 ...

I'm ok with this, but at some point I'll need to also upgrade all the userland 
binaries and I'm wondering the best method might be ... is there any 
documentation on how best to perform these steps?

Unfortunately although I do have the ability to start and stop the VM, I can't 
manipulate the VM config beyond asking their admin to boot my VM from a 
particular kernel image ... 

Should I ask that they boot from (say) the 8.1 netbsd-INSTALL_XEN3_DOMU.gz 
image and then go through the upgrade via that (I do have access to the 
console)?  Once that's done I can then ask that they boot from the regular 8.1 
netbsd-XEN3_DOMU.gz

Regards,
Malcolm

-- 
Malcolm Herbert
m...@mjch.net