solaris 8 to 10 upgrade
I was trying solaris 8 to solaris 10 upgrade (few straight forward upgrades and few live upgrade) on 3 different systems and all three systems are failing to boot with solaris 10 and panicing with the following message after the successful upgrade. Any of you experienced the similar issue ? Any help or pointer would be greatly appreciaed.
{0} ok boot -s
Boot device: /pci@1f,4000/scsi@3/disk@0,0:a File and args: -s
SunOS Release 5.10 Version Generic_118822-25 64-bit
Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
misc/consconfig:consconfig_get_usb_kb_path() not defined properly
panic[cpu0]/thread=180e000: mod_hold_stub: Couldn't load stub module misc/consconfig
000000000180b890 genunix:mod_hold_stub+1f0 (0, 185e000, 18a7c48, 60000921a50, 18170c0, 0)
%l0-3: 000000007003fc00 0000000000000000 0000000000000000 0000000000000000
%l4-7: 0000000000000000 0000000080000000 0000000000000000 0000000000000001
000000000180b940 unix:stubs_common_code+30 (3a2fed74715, 4dd9e6, 2c7253bc, 0, 16a00, 0)
%l0-3: 000000000180b209 000000000180b2e1 00000000bf000000 0000000000000001
%l4-7: 0000000000000000 00000000018170d0 0000000000000000 00000300003b6028
000000000180ba10 genunix:main+134 (18a8010, 18a4000, 1835c00, 185fc00, 180e000, 1813c00)
%l0-3: 0000000070002000 0000000000000001 000000000180c000 0000000000000002
%l4-7: 00000000018ab100 00000000018ab000 00000000018a8020 00000000018a8000
syncing file systems... done
[1579 byte] By [
rmud] at [2007-11-26 10:46:05]

# 7
I've just run up against this myself recently, so I thought I'd help.
Basically, the kernel is crashing because it can't find something that it's looking for. You can find out what it's looking for by looking at the line
panic[cpu0]/thread=180e000: mod_hold_stub: Couldn't load stub module misc/consconfig
In this case, it's looking for consconfig. So when you're installing the OS, you need to make sure it gets the package that contains consconfig - by the way that's in the package SUNWckr - best add the cluster SUNWCcs which contains it.
Now, if you want to find out what packages contain what files you need (I hope you're on some kind of unix, otherwise, find some form of grep for this):
Get your install media - if it's a CD or DVD mount that, or if it's a jumpstart, look in the jumpstart server directory
Go to the directory Solaris_10/Product
type:
grep "file you're looking for" */pkgmap
That should return a few lines. In this case it's
myself@mama:Product> grep consconfig */pkgmap
SUNWckr/pkgmap:1 f none kernel/dacf/amd64/consconfig_dacf 0755 root sys 46104 40791 1163116871
SUNWckr/pkgmap:1 f none kernel/dacf/consconfig_dacf 0755 root sys 36572 61132 1163116871
SUNWckr/pkgmap:1 f none kernel/misc/amd64/consconfig 0755 root sys 3896 53954 1106445855
SUNWckr/pkgmap:1 f none kernel/misc/consconfig 0755 root sys 2412 37777 1106445857
So all the entries there point to SUNWckr, so you add that package when you reinstall, either by menu or jumpstart.
That package probably has dependancies so type "less .clustertoc"
Then hit / and type in the name of the package.
A few lines above the line you jump to, you'll find an entry reading CLUSTER=, that's the name of the cluster. In this case, I see:
CLUSTER=SUNWCcs
NAME=Core Solaris
DESC=Core operating system functionality, consists of /usr files, / files and various device driver modules.
VENDOR=Sun Microsystems, Inc.
VERSION=7.2
SUNW_CSRMEMBER=SUNWckr
SUNW_CSRMEMBER=SUNWcnetr
SUNW_CSRMEMBER=SUNWcsd
SUNW_CSRMEMBER=SUNWcsl
SUNW_CSRMEMBER=SUNWcslr
SUNW_CSRMEMBER=SUNWcsr
SUNW_CSRMEMBER=SUNWcsu
END
So the line CLUSTER=SUNWCcs tells me that I want to add SUNWCcs to my installation, or if I'm doing a graphical install, I want to add the group that reads as "Core Solaris".
Hope that helps anyone who has any problems with that sort of error - it drove me to distraction for the last 2 days, when it's just a 5 minute job.
Let me know if anything's unclear, and I'll try and help.
Regards,
~anovadea
# 8
We got the same error on two V880 production machines going from 8 to 10 and
since we could not afford the downtime to rebuild we had to research the problem
and found the precise opposite of the previous poster.
We had too many packages.
Specifically the Solaris 8 package SUNWcarx was not backed out on the upgrade.
Since there is no SUNWcarx package in Solaris 10 we were left with Solaris 8 drivers
in /platform and /kernel.
The upgrade seemed to have been deficient due to a pkginfo deficiency. For some reason
pkginfo on the Solaris 8 box did not list SUNWcarx , but pkgchk -v SUNWcarx would list
out its files. If upgrade used pkginfo to figure out what packages to back out and failed
to use all available info ( from pkgchk ) then it would leave a package.
So the solution for us was to just delete the files. Here is a script that will flag all the bad files for you. It asumes you have your new Solaris 10 mounted on /tmp/mnt/0 and checks
all the files in the OS directories. You will find that all the bad files are dated between
the year 2000 and 2004, with a few exceptions from January 2005. All the files flagged should be a subset of the files pkgchk -v SUNWcarx generates on Solaris 8.
Some of the files in the SUNWcarx package have been adopted by Solaris 10 so you cannot just delete all the files in the package file list generated under Solaris 8.
Anyway here is the script:
#!/bin/bash
#
#
# This script checks every file under /kernel, /platform, /lib, /sbin and /bin.
# A logfile called CHECK_KERNEL_LOG_${NOW} is created
# Any file that does not match its package is listed.
#
# Conf files tend to have modtime, size and checksum differences because these are use modified.
#
# The error to look for is "No information associated with pathname",
# this means it does not belong to any package.
# There is a good chance it can be deleted if it is an os directory.
#
# Script assumes root mounted at /tmp/mnt/0, change MOUNTED_AT variable if different
#
# Every file checked is listed, only those with error messages are of concern
#
#
#
#
#set -xv
#################################
#
#
#
getword ()
{
awk '{print $'$1' }'
}
#################################
#
#
#
timestamp ()
{
date '+%Y_%j__%B_%d__%H:%M:%S'
}
#################################
#
# pkgchk can only check 1000 files at a shot so........
#
read_900_and_check(){
LINES_COUNTED=0
CHECK_LIST=/tmp/LIST_OF_FILES_TO_CHECK_${NOW}
ALL_CHECK_LIST=/tmp/ALL_LIST_OF_FILES_TO_CHECK_${NOW}
while read ALINE
do
LINES_COUNTED=`expr $LINES_COUNTED + 1 `
echo $ALINE >> $CHECK_LIST
if [ $LINES_COUNTED -gt 900 ]
then
pkgchk -v -R $MOUNTED_AT -i $CHECK_LIST
LINES_COUNTED=0
cat $CHECK_LIST >> $ALL_CHECK_LIST
rm $CHECK_LIST
fi
done
pkgchk -v -R $MOUNTED_AT -i $CHECK_LIST
cat $CHECK_LIST >> $ALL_CHECK_LIST
}
#################################
#MAIN#
#################################
NOW=`timestamp`
MOUNTED_AT=/tmp/mnt/0
exec > CHECK_KERNEL_LOG_${NOW} 2>&1
cd $MOUNTED_AT
( du -a kernel
du -a lib
du -a platform
du -a bin
du -a sbin ) | getword 2| sed 's/^/\//' | read_900_and_check
#
#####################################################
#####################################################
# END OF SCRIPT
hopefully I cut and pastes that correctly.....
addtionally here are the deletes we needed to repair the upgrade:
#!/bin/bash
set -xv
rm /tmp/mnt/0/kernel/drv/sparcv9/lebuffer
rm /tmp/mnt/0/kernel/drv/sparcv9/qe
rm /tmp/mnt/0/kernel/drv/sparcv9/qec
rm /tmp/mnt/0/kernel/misc/sparcv9/seg_drv
rm /tmp/mnt/0/kernel/misc/sparcv9/seg_mapdev
rm /tmp/mnt/0/kernel/strmod/sparcv9/authmd5h
rm /tmp/mnt/0/kernel/strmod/sparcv9/authsha1
rm /tmp/mnt/0/platform/sun4u/kernel/dacf/sparcv9/consconfig_dacf
rm /tmp/mnt/0/platform/sun4u/kernel/drv/sparcv9/ledma
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/drv/gptwo.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/drv/sparcv9/bbc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/drv/sparcv9/gptwo
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/drv/sgenv.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/drv/sparcv9/sgenv
rm /tmp/mnt/0/platform/sun4u/kernel/drv/sparcv9/stc
rm /tmp/mnt/0/platform/sun4u/kernel/misc/sparcv9/pcmcia
rm /tmp/mnt/0/kernel/misc/sparcv9/ufs_log
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Netra-T4/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Netra-T4/kernel/misc/sparcv9
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-100/kernel
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-100/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-1000/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-1500/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-2500/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/cpu
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-280R/kernel/drv
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-280R/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-480R/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/misc/sparcv9/sbdp
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-V240/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-V250/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-V440/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/cpu
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/misc
rm /tmp/mnt/0/platform/SUNW,Ultra-250/kernel
rm /tmp/mnt/0/platform/SUNW,Ultra-4/kernel
rm /tmp/mnt/0/platform/SUNW,Ultra-5_10/kernel
rm /tmp/mnt/0/platform/SUNW,Ultra-80/kernel
rm /tmp/mnt/0/platform/SUNW,Ultra-80/kernel/misc/sparcv9
rm /tmp/mnt/0/platform/SUNW,Ultra-Enterprise-10000/kernel/cpu/sparcv9/SUNW,UltraSP ARC
rm /tmp/mnt/0/platform/SUNW,Ultra-Enterprise/kernel
rm /tmp/mnt/0/platform/SUNW,UltraAX-i2/kernel/misc
rm /tmp/mnt/0/platform/sun4u/kernel/cpu/sparcv9/SUNW,UltraSPARC
rm /tmp/mnt/0/platform/sun4u/kernel/dacf/sparcv9
rm /tmp/mnt/0/platform/sun4u/kernel/drv/sparcv9/pci_pci
rm /tmp/mnt/0/platform/sun4u/kernel/misc/sparcv9/consconfig
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/lw8.conf
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/sgenv.conf
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/sgfru.conf
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/sparcv9/lw8
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/sparcv9/sgenv
rm /tmp/mnt/0/platform/SUNW,Netra-T12/kernel/drv/sparcv9/sgfru
rm /tmp/mnt/0/platform/SUNW,Netra-T4/kernel/drv/lombus.conf
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel/drv/bscbus.conf
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel/drv/bscv.conf
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel/drv/options.conf
rm /tmp/mnt/0/platform/SUNW,Serverblade1/kernel/drv/sparcv9/bscv
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-100/kernel/drv/grppm.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-100/kernel/drv/sparcv9/grfans
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-100/kernel/drv/sparcv9/grppm
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-1000/kernel/drv/sparcv9/xcalppm
rm /tmp/mnt/0/platform/SUNW,Sun-Blade-1000/kernel/drv/xcalppm.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/drv/dman.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/drv/schpc.conf
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/drv/sparcv9/axq
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/drv/sparcv9/schpc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-15000/kernel/misc/sparcv9/mboxsc
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-280R/kernel/drv/sparcv9/pcf8574
rm /tmp/mnt/0/platform/SUNW,Sun-Fire-880/kernel/drv/sparcv9/hpc3130
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/drv/sparcv9/sgcn
rm /tmp/mnt/0/platform/SUNW,Sun-Fire/kernel/drv/sparcv9/sghsc
rm /tmp/mnt/0/platform/SUNW,Ultra-Enterprise/kernel/drv/sparcv9/sram
# Hope it helps....