The dangers of BFU
I pulled across build 26 and the latest nightly bfu archives to upgrade my laptop and workstation. The laptop bfu went swimmingly... once I remembered to remove my existing SUNWzfs package installation and install the binaries from the bfu archive.
Unfortunately I had a problem with my workstation when I updated it this morning. For some reason my conflict resolution procedure hadn't quite worked. I was getting panics on boot before being able to mount /..... so my type-6 usb keyboard driver wasn't being loaded and I couldn't do anything in kmdb like look at the panic string because the stack was more than 24 lines long! Bit of a problem there.
So I booted off my installation dvd, mounted my root partition under /mnt and had a trawl through /mnt/etc. There were two files listed in the bfu conflicts report which I thought I had fixed up correctly: /etc/name_to_major and /etc/driver_aliases.
Normally I use a procedure something like this to munge the new version and my installed version of those files:
# awk '{print $2,$1}' etc/name_to_major /etc/name_to_major |sort -n |uniq > /tmp/name_to_major
[ fire up vi on /tmp/name_to_major, check that everything looks correct ]
# mv /tmp/name_to_major /etc/name_to_major
And that's been successful for months.
Not this time, and the "fault" (if any should be ascribed) is in the package defaults for SUNWzfs. The bfu archive has the zfs driver use major number 182. Guess what existing driver used major number 182?
*** drum roll please ***
pci-ide
Yeeeeouuuch!
I figured this out by running
# awk '{print $2}' etc/name_to_major /etc/name_to_major |sort -n |uniq -c |grep -v "^ 1"
which immediately showed me that there were two instances of 182. A quick edit of /etc/name_to_major followed by
# /sbin/bootadm update-archive -v -R /mnt
got me back to my happy place.
Lesson to be learnt: always double-check your /etc/name_to_major file for major number conflicts. Save yourself downtime and keep some of that hair on your head!
Posted by Dan Price on November 06, 2005 at 04:46 AM EST #