And another etch upgrade as Debian Etch approaches stable! For this server, having downtime happen earlier (before people come into the office) was the priority.

Step 0: Edited my /etc/apt/sources.list, changing sarge to etch (as an aside, not sure why anyone would use "stable" in their sources.list - seems like an invitation to upgrade a distribution without meaning to).

Step 1: Upgrade the kernel

apt-get install linux-image-2.6-686

Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
busybox initramfs-tools klibc-utils libc6 libc6-dev libklibc libselinux1
libsepol1 libvolume-id0 linux-image-2.6.18-4-686 locales lsb-base makedev
module-init-tools tzdata udev
Suggested packages:
glibc-doc manpages-dev linux-doc-2.6.18
Recommended packages:
libc6-i686
The following packages will be REMOVED:
base-config hotplug initrd-tools kernel-image-2.6.8-2-386
The following NEW packages will be installed:
busybox initramfs-tools klibc-utils libklibc libselinux1 libsepol1
libvolume-id0 linux-image-2.6-686 linux-image-2.6.18-4-686 lsb-base tzdata
udev
The following packages will be upgraded:
libc6 libc6-dev locales makedev module-init-tools
5 upgraded, 12 newly installed, 4 to remove and 238 not upgraded.
Need to get 29.3MB of archives.
After unpacking 11.3MB of additional disk space will be used.
Do you want to continue? [Y/n]

Ok, sounds good.

But wait...

Removing kernel-image-2.6.8-2-386 ...

You are running a kernel (version 2.6.8-2-386) and attempting to remove
the same version. This is a potentially disastrous action. Not only
will /boot/vmlinuz-2.6.8-2-386 be removed, making it impossible to boot
it, (you will have to take action to change your boot loader to boot
a new kernel), it will also remove all modules under the directory
/lib/modules/2.6.8-2-386. Just having a copy of the kernel image is not
enough, you will have to replace the modules too.

I repeat, this is very dangerous. If at all in doubt, answer
no. If you know exactly what you are doing, and are prepared to
hose your system, then answer Yes.
Remove the running kernel image (not recommended) [No]?

I guess I missed that part about removing the kernel. Why does it need to remove the existing kernel??? Ah - it's trying to remove initrd-tools. Well, I said No to the prompt above (I guess I had no choice).

Then I ran:

apt-get -f install

And got:

mayfirst@peewee:~$ sudo apt-get -f install
Reading Package Lists... Done
Building Dependency Tree... Done
Correcting dependencies... Done
The following extra packages will be installed:
initrd-tools libc6 libc6-dev libdevmapper1.02 libselinux1 libsepol1 locales
tzdata
Suggested packages:
glibc-doc manpages-dev
The following NEW packages will be installed:
initrd-tools libdevmapper1.02 libselinux1 libsepol1 tzdata
The following packages will be upgraded:
libc6 libc6-dev locales
3 upgraded, 5 newly installed, 0 to remove and 240 not upgraded.
Need to get 70.7kB/12.0MB of archives.
After unpacking 3568kB of additional disk space will be used.
Do you want to continue? [Y/n]

Ok, sounds good. I know I said that before when it really didn't sound good, but this time I meant it.

So then I tried (again):

mayfirst@peewee:~$ sudo apt-get install linux-image-2.6-686

And got:

mayfirst@peewee:~$ sudo apt-get install linux-image-2.6-686
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
busybox initramfs-tools klibc-utils libklibc libvolume-id0
linux-image-2.6.18-4-686 lsb-base makedev module-init-tools udev
Suggested packages:
linux-doc-2.6.18
Recommended packages:
libc6-i686
The following NEW packages will be installed:
busybox initramfs-tools klibc-utils libklibc libvolume-id0
linux-image-2.6-686 linux-image-2.6.18-4-686 lsb-base udev
The following packages will be upgraded:
makedev module-init-tools
2 upgraded, 9 newly installed, 0 to remove and 238 not upgraded.
Need to get 0B/17.3MB of archives.
After unpacking 52.4MB of additional disk space will be used.
Do you want to continue? [Y/n]

Oh good. No kernels being removed.

Ack - I wish I had added --purge to my original apt get command so that hotplug could have been purged. Ok, next time.

Step 2: reboot, to get that out of the way early on

Wow, it comes right back up. I guess I'll always be impressed when that happens.

Step 3: Upgrade Samba (after which people will be able to login)

apt-get install samba

Which returns:

mayfirst@peewee:~$ sudo apt-get install samba
Password:
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libcupsys2 libgcrypt11 libgnutls13 libgpg-error0 libkrb53 libncurses5
libopencdk8 libpopt0 libreadline5 libtasn1-3 readline-common samba-common
smbclient
Suggested packages:
cupsys-common rng-tools gnutls-bin krb5-doc krb5-user samba-doc smbfs
Recommended packages:
libtasn1-3-bin smbldap-tools
The following packages will be REMOVED:
libcupsys2-gnutls10
The following NEW packages will be installed:
libcupsys2 libgnutls13 libreadline5 libtasn1-3 readline-common
The following packages will be upgraded:
libgcrypt11 libgpg-error0 libkrb53 libncurses5 libopencdk8 libpopt0 samba
samba-common smbclient
9 upgraded, 5 newly installed, 1 to remove and 228 not upgraded.
Need to get 11.2MB of archives.
After unpacking 7197kB of additional disk space will be used.
Do you want to continue? [Y/n]

Oh dear. Looks like a samba configuration change:

Chaining passdb backends is not supported
Beginning with version 3.0.23, samba no longer supports chaining
multiple backends in the "passdb backend" parameter.  It appears that
your smb.conf file contains a passdb backend parameter consisting of a
list of backends.  The new version of samba will not work until you
correct this.

I had no idea I was doing something as unsupported as chaining backends.

My smb.conf file contains:

passdb backend = tdbsam

Which looks to me like jut one backend. I think I should file this as a bug.

And, samba seems to be functioning properly.

Step 4: Upgrade the rest

sudo apt-get dist-upgrade