Ok, I've done this quite a few times, going back as far as NetBSD 1.x, up to 6.1.2 as is the latest version I've tried as of now. Here I'm using a NetBSD-6.1.1-i386 as example.

The basic of it is fairly simple, the system really consist of 3 parts.

  1. NetBSD Kernel
  2. NetBSD Software
  3. pkgsrc software in /usr/pkg

And that's pretty much the order I upgrade it in. If it's a really tricky upgrade, then it's because there's not enough room on the system to work with, even though it usually doesn't require much space, around 213MB for the binary i386 set, around 243MB for the binary amd64 set, and then some room to unpack it in. I find that it usually grows to something like 3 times it's packed size, so I usually try to have around 1GB of room spare on a system that I want to allow myself to upgrade.

So I always start by checking for available space.

$ df -h
Filesystem Size Used Avail %Cap Mounted on
/dev/wd0a 7.3G 1.8G 5.1G 26% /
tmpfs 128M 24M 104M 18% /var/log
kernfs 1.0K 1.0K 0B 100% /kern
tmpfs 16M 196K 16M 1% /var/db/nginx

Output like that meens I'm good to go.

First there's what's to do with the kernel, for as long as possible I try and see if I can have a way of going back, and this is very important with the kernel in my experience. I've had systems that ran just fine on one kernel, and really didn't get along with the new version. So I always and up doing this little dance.

$ su -
password:
# cd /
# ls -la
drwxr-xr-x 25 root wheel 512 Nov 28 13:11 .
drwxr-xr-x 25 root wheel 512 Nov 28 13:11 ..
-rw-r--r-- 2 root wheel 974 Sep 1 2006 .cshrc
drwxr-xr-x 2 root wheel 512 Aug 15 10:44 altroot
drwxr-xr-x 2 root wheel 1024 Aug 15 11:02 bin
-r--r--r-- 1 root wheel 55252 Apr 17 2009 boot
drwxr-xr-x 5 root wheel 34816 Nov 1 09:12 dev
drwxr-xr-x 27 root wheel 2560 Dec 14 00:50 etc
drwxr-xr-x 3 root wheel 512 Apr 18 2013 home
dr-xr-xr-x 4 root wheel 512 Dec 22 01:10 kern
dr-xr-xr-x 3 root wheel 512 Nov 28 13:11 lan
drwxr-xr-x 2 root wheel 2560 Aug 15 11:02 lib
drwxr-xr-x 3 root wheel 512 Aug 15 10:44 libdata
drwxr-xr-x 5 root wheel 512 Aug 15 11:02 libexec
drwxr-xr-x 2 root wheel 512 Aug 15 10:44 mnt
-rwxr-xr-x 1 root wheel 12496924 Nov 9 2012 netbsd
drwxr-xr-x 2 root wheel 512 Apr 17 2009 proc
drwxr-xr-x 2 root wheel 3072 Aug 15 11:02 rescue
drwxr-xr-x 4 root wheel 512 Dec 19 22:55 root
drwxr-xr-x 2 root wheel 3072 Aug 15 11:02 sbin
drwxr-xr-x 3 root wheel 512 Aug 15 10:52 stand
drwxrwxrwt 3 root wheel 512 Dec 21 04:33 tmp
drwxr-xr-x 16 root wheel 512 Aug 15 10:44 usr
drwxr-xr-x 25 root wheel 512 Aug 15 10:44 var
# cp netbsd netbsd.o
# ls -la netbsd*
-rwxr-xr-x 1 root wheel 12496924 Nov 9 2012 netbsd
-rwxr-xr-x 1 root wheel 12496924 Dec 22 01:12 netbsd.o

Now I know I can always fall back to the "old" kernel and just postpone upgrading till I want to spend some time trying to make this particular system run me desired version of NetBSD.

Time to fetch, unpack and run the new kernel. I usually run the upgrade from a directory called I that I place in / while upgrading. (and no, the transfer speeds are not from ftp.netbsd.org, they're from a local mirror)

# cd /
# mkdir I
# cd I
# ftp -a ftp.netbsd.org

And here it dawned on me that this particular machine doesn't have IPv6.. Gotta fix that some day.

Trying 2001:470:1f05:3d::21:21 ...
ftp: Can't connect to \`2001:470:1f05:3d::21:21': No route to host
Trying 199.233.217.249:21 ...
Connected to ftp.netbsd.org.
220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20100320) ready.
331 Guest login ok, type your name as password.
230-
The NetBSD Project FTP Server located in San Jose, CA, USA
1 Gbps connectivity
WELCOME! /( )\`
\\ \\\_\_\_ / |
+--- Currently Supported Platforms ----+ /- \_ \`-/ '
| acorn\[26,32\], algor, alpha, amd64, | (/\\/ \\ \\ /\\
| amiga\[,ppc\], arc, atari, bebox, | / / | \` \\
| cats, cesfic, cobalt, dreamcast, | O O ) / |
| evb\[arm,mips,ppc,sh3\], hp\[300,700\], | \`-\^--'\`< '
| hpc\[arm,mips,sh\], i386, | (\_.) \_ ) /
| ibmnws, iyonix, luna68k, | .\_\_\_/\` /
| mac\[m68k,ppc\], mipsco, mmeye, | \`-----' /
| mvme\[m68k,ppc\], netwinders, | <----. \_\_ / \_\_ \\
| news\[m68k,mips\], next68k, ofppc, | <----|====O)))==) \\) /====
| playstation2, pmax, prep, sandpoint, | <----' \`--' \`.\_\_,' \\
| sbmips, sgimips, shark, sparc\[,64\], | | |
| sun\[2,3\], vax, x68k, xen | \\ /
+--------------------------------------+ \_\_\_\_\_\_( (\_ /
\\\_\_\_\_\_
See our website at http://www.NetBSD.org/ ,' ,-----' | \\
We log all FTP transfers and commands. \`--{\_\_\_\_\_\_\_\_\_\_) (FL)
\\/
230-
EXPORT NOTICE

Please note that portions of this FTP site contain cryptographic
software controlled under the Export Administration Regulations (EAR).

None of this software may be downloaded or otherwise exported or
re-exported into (or to a national or resident of) Cuba, Iran, Sudan,
North Korea, Syria or any other country to which the U.S. has
embargoed goods.

By downloading or using said software, you are agreeing to the
foregoing and you are representing and warranting that you are not
located in, under the control of, or a national or resident of any
such country or on any such list.
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 CWD command successful.
ftp> cd NetBSD
250-
EXPORT NOTICE

Please note that portions of this FTP site contain cryptographic
software controlled under the Export Administration Regulations (EAR).

None of this software may be downloaded or otherwise exported or
re-exported into (or to a national or resident of) Cuba, Iran, Sudan,
North Korea, Syria or any other country to which the U.S. has
embargoed goods.

By downloading or using said software, you are agreeing to the
foregoing and you are representing and warranting that you are not
located in, under the control of, or a national or resident of any
such country or on any such list.
250-
Please read the file README
it was last modified on Sat Aug 17 18:31:16 2013 - 127 days ago
Please read the file README.export-control
it was last modified on Thu Sep 12 06:12:26 2013 - 101 days ago
Please read the file README.sup
it was last modified on Sat Oct 13 17:32:33 2012 - 434 days ago
250 CWD command successful.
ftp> cd NetBSD-6.1.1
250-
Please read the file README.files
it was last modified on Thu Aug 15 04:35:28 2013 - 129 days ago
250 CWD command successful.
ftp> cd i386
250 CWD command successful.
ftp> cd binary
250 CWD command successful.
ftp> cd sets
250 CWD command successful.
ftp> prom
Interactive mode off.
ftp> mget \*tgz
local: base.tgz remote: base.tgz
229 Entering Extended Passive Mode (|||65267|)
150 Opening BINARY mode data connection for 'base.tgz' (36947364
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
36081 KiB 14.18 MiB/s 00:00 ETA
226 Transfer complete.
36947364 bytes received in 00:02 (12.18 MiB/s)
local: comp.tgz remote: comp.tgz
229 Entering Extended Passive Mode (|||65266|)
150 Opening BINARY mode data connection for 'comp.tgz' (60465707
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
59048 KiB 13.54 MiB/s 00:00 ETA
226 Transfer complete.
60465707 bytes received in 00:04 (12.35 MiB/s)
local: etc.tgz remote: etc.tgz
229 Entering Extended Passive Mode (|||65265|)
150 Opening BINARY mode data connection for 'etc.tgz' (411155 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
401 KiB 15.33 MiB/s 00:00 ETA
226 Transfer complete.
411155 bytes received in 00:00 (2.15 MiB/s)
local: games.tgz remote: games.tgz
229 Entering Extended Passive Mode (|||65264|)
150 Opening BINARY mode data connection for 'games.tgz' (3107087
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
3034 KiB 15.18 MiB/s 00:00 ETA
226 Transfer complete.
3107087 bytes received in 00:00 (11.59 MiB/s)
local: kern-GENERIC.tgz remote: kern-GENERIC.tgz
229 Entering Extended Passive Mode (|||65263|)
150 Opening BINARY mode data connection for 'kern-GENERIC.tgz' (5910368
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
5771 KiB 15.06 MiB/s 00:00 ETA
226 Transfer complete.
5910368 bytes received in 00:00 (12.10 MiB/s)
local: kern-MONOLITHIC.tgz remote: kern-MONOLITHIC.tgz
229 Entering Extended Passive Mode (|||65262|)
150 Opening BINARY mode data connection for 'kern-MONOLITHIC.tgz'
(5897224 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
5759 KiB 14.83 MiB/s 00:00 ETA
226 Transfer complete.
5897224 bytes received in 00:00 (12.51 MiB/s)
local: kern-XEN3PAE\_DOM0.tgz remote: kern-XEN3PAE\_DOM0.tgz
229 Entering Extended Passive Mode (|||65261|)
150 Opening BINARY mode data connection for 'kern-XEN3PAE\_DOM0.tgz'
(5042488 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
4924 KiB 11.54 MiB/s 00:00 ETA
226 Transfer complete.
5042488 bytes received in 00:00 (8.22 MiB/s)
local: kern-XEN3PAE\_DOMU.tgz remote: kern-XEN3PAE\_DOMU.tgz
229 Entering Extended Passive Mode (|||65260|)
150 Opening BINARY mode data connection for 'kern-XEN3PAE\_DOMU.tgz'
(2034905 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
1987 KiB 13.42 MiB/s 00:00 ETA
226 Transfer complete.
2034905 bytes received in 00:00 (8.92 MiB/s)
local: kern-XEN3\_DOM0.tgz remote: kern-XEN3\_DOM0.tgz
229 Entering Extended Passive Mode (|||65259|)
150 Opening BINARY mode data connection for 'kern-XEN3\_DOM0.tgz'
(5023264 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
4905 KiB 13.81 MiB/s 00:00 ETA
226 Transfer complete.
5023264 bytes received in 00:00 (10.73 MiB/s)
local: kern-XEN3\_DOMU.tgz remote: kern-XEN3\_DOMU.tgz
229 Entering Extended Passive Mode (|||65258|)
150 Opening BINARY mode data connection for 'kern-XEN3\_DOMU.tgz'
(2026936 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
1979 KiB 16.19 MiB/s 00:00 ETA
226 Transfer complete.
2026936 bytes received in 00:00 (9.86 MiB/s)
local: man.tgz remote: man.tgz
229 Entering Extended Passive Mode (|||65257|)
150 Opening BINARY mode data connection for 'man.tgz' (10311207 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
10069 KiB 13.74 MiB/s 00:00 ETA
226 Transfer complete.
10311207 bytes received in 00:00 (11.39 MiB/s)
local: misc.tgz remote: misc.tgz
229 Entering Extended Passive Mode (|||65256|)
150 Opening BINARY mode data connection for 'misc.tgz' (3576389 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
3492 KiB 14.50 MiB/s 00:00 ETA
226 Transfer complete.
3576389 bytes received in 00:00 (10.41 MiB/s)
local: modules.tgz remote: modules.tgz
229 Entering Extended Passive Mode (|||65255|)
150 Opening BINARY mode data connection for 'modules.tgz' (2229249
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
2177 KiB 13.93 MiB/s 00:00 ETA
226 Transfer complete.
2229249 bytes received in 00:00 (9.16 MiB/s)
local: tests.tgz remote: tests.tgz
229 Entering Extended Passive Mode (|||65254|)
150 Opening BINARY mode data connection for 'tests.tgz' (13125392
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
12817 KiB 13.67 MiB/s 00:00 ETA
226 Transfer complete.
13125392 bytes received in 00:01 (11.36 MiB/s)
local: text.tgz remote: text.tgz
229 Entering Extended Passive Mode (|||65253|)
150 Opening BINARY mode data connection for 'text.tgz' (3440038 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
3359 KiB 14.79 MiB/s 00:00 ETA
226 Transfer complete.
3440038 bytes received in 00:00 (10.37 MiB/s)
local: xbase.tgz remote: xbase.tgz
229 Entering Extended Passive Mode (|||65252|)
150 Opening BINARY mode data connection for 'xbase.tgz' (7754716
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
7572 KiB 13.42 MiB/s 00:00 ETA
226 Transfer complete.
7754716 bytes received in 00:00 (10.72 MiB/s)
local: xcomp.tgz remote: xcomp.tgz
229 Entering Extended Passive Mode (|||65251|)
150 Opening BINARY mode data connection for 'xcomp.tgz' (17249380
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
16845 KiB 13.81 MiB/s 00:00 ETA
226 Transfer complete.
17249380 bytes received in 00:01 (11.81 MiB/s)
local: xetc.tgz remote: xetc.tgz
229 Entering Extended Passive Mode (|||65250|)
150 Opening BINARY mode data connection for 'xetc.tgz' (21007 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
21007 71.29 MiB/s 00:00 ETA
226 Transfer complete.
21007 bytes received in 00:00 (107.83 KiB/s)
local: xfont.tgz remote: xfont.tgz
229 Entering Extended Passive Mode (|||65249|)
150 Opening BINARY mode data connection for 'xfont.tgz' (32782643
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
32014 KiB 14.29 MiB/s 00:00 ETA
226 Transfer complete.
32782643 bytes received in 00:02 (12.59 MiB/s)
local: xserver.tgz remote: xserver.tgz
229 Entering Extended Passive Mode (|||65248|)
150 Opening BINARY mode data connection for 'xserver.tgz' (8884759
bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
8676 KiB 15.09 MiB/s 00:00 ETA
226 Transfer complete.
8884759 bytes received in 00:00 (12.48 MiB/s)
\[/code\]

And I also get the MD5 file, for a quick sanity check.

\[code light="true" collapse="true" title="downloading-md5"\]
ftp> get MD5
local: MD5 remote: MD5
229 Entering Extended Passive Mode (|||65225|)
150 Opening BINARY mode data connection for 'MD5' (1074 bytes).
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
1074 9.22 MiB/s 00:00 ETA
226 Transfer complete.
1074 bytes received in 00:00 (5.60 KiB/s)
ftp> quit
221-
Data traffic for this session was 226242352 bytes in 21 files.
Total traffic for this session was 226251490 bytes in 23 transfers.
221 Thank you for using the FTP service on ftp.NetBSD.org.

Having downloaded it all, a quick sanity check is in order.

# md5 -c MD5
#

And since there was no output from the md5 command, we know it's all good.. It'll say something like this if there's a problem.

# md5 -c MD5
(MD5) kern-XEN3PAE\_DOM0.tgz: FAILED

In that case, re-download..

And now everything is ready for the new kernel.

# cd /
# progress -z -f I/kern-GENERIC.tgz pax -rpe
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
12860 KiB 17.78 MiB/s 00:00 ETA
# progress -z -f I/modules.tgz pax -rpe
100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
5890 KiB 283.70 KiB/s 00:00 ETA
# reboot

If this goes well, we're almost there, time to get the operating system in place.

# cd /
# set -o braceexpand
# for file in I/{b,c,g,ma,mi,t,x}\*tgz ; do progress -p "\$file: " -z
-f \$file pax -rpe ; done
I/base.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
100 MiB 43.86 MiB/s 00:00 ETA
I/comp.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
189 MiB 47.48 MiB/s 00:00 ETA
I/games.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
7470 KiB 37.36 MiB/s 00:00 ETA
I/man.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
48120 KiB 56.85 MiB/s 00:00 ETA
I/misc.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
13170 KiB 49.04 MiB/s 00:00 ETA
I/tests.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
32880 KiB 40.89 MiB/s 00:00 ETA
I/text.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
14740 KiB 54.50 MiB/s 00:00 ETA
I/xbase.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
23670 KiB 50.81 MiB/s 00:00 ETA
I/xcomp.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
58160 KiB 49.20 MiB/s 00:00 ETA
I/xetc.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
130 KiB 17.83 MiB/s 00:00 ETA
I/xfont.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
75470 KiB 47.38 MiB/s 00:00 ETA
I/xserver.tgz: 100%
|\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*|
23080 KiB 41.31 MiB/s 00:00 ETA
#

Now we have all the binaries in place, now for the really dangerous part of this, making everything in /etc up to date, and some other cool bits.

# cd /
# postinstall -s I/etc.tgz fix
Note: Creating temporary directory /tmp/\_postinstall.9773.0/etc.tgz
Note: Extracting files from I/etc.tgz
Source directory: /tmp/\_postinstall.9773.0/etc.tgz
(extracted from: 'I/etc.tgz')
Target directory: /
bluetooth fix:
ddbonpanic fix:
defaults fix:
(Checking for pf.boot.conf from
/tmp/\_postinstall.9773.0/etc.tgz/etc/defaults instead of
/tmp/\_postinstall.9773.0/etc.tgz/u
sr.sbin/pf/etc/defaults)
dhcpcd fix:
(Checking for dhcpcd.conf from /tmp/\_postinstall.9773.0/etc.tgz/etc
instead of /tmp/\_postinstall.9773.0/etc.tgz/external/bs
d/dhcpcd/dist)
envsys fix:
fontconfig fix:
gid fix:
gpio fix:
hosts fix:
iscsi fix:
makedev fix:
(Checking for MAKEDEV from /tmp/\_postinstall.9773.0/etc.tgz/dev instead
of /tmp/\_postinstall.9773.0)
(Checking for MAKEDEV.local from /tmp/\_postinstall.9773.0/etc.tgz/dev
instead of /tmp/\_postinstall.9773.0/etc.tgz/etc)
motd fix:
mtree fix:
named fix:
pam fix:
periodic fix:
pf fix:
(Checking for pf.os from /tmp/\_postinstall.9773.0/etc.tgz/etc instead
of /tmp/\_postinstall.9773.0/etc.tgz/dist/pf/etc)
pwd\_mkdb fix:
rc fix:
ssh fix:
(Checking for moduli from /tmp/\_postinstall.9773.0/etc.tgz/etc instead
of /tmp/\_postinstall.9773.0/etc.tgz/crypto/external/
bsd/openssh/dist)
wscons fix:
x11 fix:
xkb fix:
uid fix:
varrwho fix:
tcpdumpchroot fix:
atf fix:
(Checking for NetBSD.conf from /tmp/\_postinstall.9773.0/etc.tgz/etc/atf
instead of /tmp/\_postinstall.9773.0/etc.tgz/external/bsd/atf/etc/atf)
(Checking for atf-run.hooks from
/tmp/\_postinstall.9773.0/etc.tgz/etc/atf instead of
/tmp/\_postinstall.9773.0/etc.tgz/external/bsd/atf/dist/atf-run/sample)
catpages fix:
obsolete fix:
ptyfsoldnodes fix:
ptyfs is not in use
postinstall fixes passed: bluetooth ddbonpanic defaults dhcpcd envsys
fontconfig gid gpio hosts iscsi makedev motd mtree named pam periodic pf
pwd\_mkdb rc ssh wscons x11 xkb uid varrwho tcpdumpchroot atf catpages
obsolete ptyfsoldnodes
postinstall fixes failed:

One thing might not be apparent, the [code]postinstall fixes failed:[/code] line is actually saying that nothing failed, if there were something that wasn't fixed they will be listed after failed and not after passed. The challenge is to make it so that there's nothing failed.

Last thing that's needed is to get the packages up to date. I've really come to enjoy using pkgin for all of this which really makes my life easier. So let's pretend it's on a system that doesn't have pkgin yet.

# env PKG_PATH=ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.1/All pkg_add pkgin
# echo ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/\\\$arch/\\\$osrelease/All >/usr/pkg/etc/pkgin/repositories.conf
# pkgin -y up

And sometimes I feel like a bit of a daredevil, sometimes I play it safe.. It's all in the -y parameter that if it's there doesn't give you a chance to see what goes on.

# pkgin -y fug

And here I like to finish off with a reboot, checking to see if there's anything that might need last minute help.


Comments

comments powered by Disqus