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!

Comments:

You should use 'acr'. Just type 'acr' once you are confronted with the conflict resolution prompt after the BFU is done. This is a relatively new development, but it works well. It uses the packaging scripts to upgrade the various files, which is much more reliable than editing by hand most of the time :)

Posted by Dan Price on November 05, 2005 at 08:46 PM EST #

Post a Comment:
Comments are closed for this entry.
About

I work at Oracle in the Solaris group. The opinions expressed here are entirely my own, and neither Oracle nor any other party necessarily agrees with them.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today