[comp.sys.sun] Checksum errors while booting

raghu@cis.ohio-state.edu (Raghu Machiraju) (01/11/89)

One of our servers comes up with the message 
Checksum  xxxxxx != yyyyyyyyy, trying to boot anyway....
Does anyone know what that message means...
RAGHU
Ohio Supercomputer Center

joey@tessi.uucp (Joe Pruett) (01/26/89)

The checksum message is coming from the low level boot code.  The low
level boot program has a table which lists the blocks where /boot lives.
It also has a checksum value for /boot.  If the checksum of the blocks it
reads in doesn't match it's internal checksum, you get the message.

Both the table of block numbers and the checksum are installed in the low
level boot by the installboot program living in /usr/mdec.

The cause of checksum errors is usually from installing a new /boot
program and then not re-running installboot, or not doing a sync before
running installboot.

This second form bit me quite annoyingly during the 4.0.1 upgrade.  To
find the block numbers, installboot opens the *raw* disk and scans through
the inode tables to find the block numbers.  If you install /boot and then
run installboot before the inode table has gotten updated on disk, it
picks up the old block numbers and makes your disk unbootable.

installboot should do a sync before it tries to read the raw device, or it
should read the block device, or you should do a sync before you run
installboot.

You should be able to fix this by loading the mini-root and mounting your
real /usr as /usr and your real / as /mnt, then do:

cd /usr/mdec
./installboot /mnt/boot bootXX /dev/rXX0a

Where XX is the appropriate disk type.