[comp.sys.sgi] reconfiguration, please

fsfacca@AVELON.LERC.NASA.GOV (Tony Facca) (02/08/91)

> After recently upgrading from 3.2 to 3.3.1 about 4 times out of 5
> when we reboot our 4D80GT we get the message:
> 
> Automatically reconfigure the operating system (y or n)?
> 
> What part of the operating system does it want to reconfigure?  Why does
> it want to reconfigure?  Why so often?  Why no other messages?  

In your root directory there are 2 files, one called unix and another (probably)
called unix.install   The unix.install file signals the system at startup time 
that you have configured a new operating system which needs to be installed.  
Normally, the system will replace unix with unix.install and come up normally.  

In the directory /usr/sysgen/master.d you probably have another executable
version of unix, quite possibly called unix.install or unix.new   This version 
is the result of doing an "lboot -u unix.install" from the ../master.d 
directory.  Somewhere in the reboot procedure, the system notices this file and
realizes that it should reconfigure the operating system, and you get prompted.
The system creates a new /unix.install but doesn't do anything to the file in
../master.d, so the next time you reboot, the same thing will happen.

If you check the dates/times on all three versions of unix and make sure that
the file called /unix is the most recent, you can delete /unix.install and
/usr/sysgen/master.d/unix.install.   The idea is to not have an executable
version of unix in the /usr/sysgen/master.d directory, since this is causing
the problem.  When you use lboot to reconfigure a new kernel, use the option
"-l /unix.install" to make sure the new version is placed in the correct
directory.

Hope this helps.


--
-----------------------------------------------------------------------------
Tony Facca   |   fsfacca@avelon.lerc.nasa.gov      |     phone: 216-433-8318
-----------------------------------------------------------------------------
      You are at Witt's end.  Passages lead off in *all* directions.

vjs@rhyolite.wpd.sgi.com (Vernon Schryver) (02/09/91)

In normal circumstances, you will not notice the kernel in /unix.install.
There should never be a kernel in /usr/sysgen/master.d, unless someone
has been doing some manual experimenting.


The "reconfigure operating system?" question is generated by lboot
when run with the -t arg, by /etc/rc2.d/S95autoconfig.

As described in the lboot(1M) man page, lboot looks around to decide if
a new kernel needs to be built.  It does this by:

    1. probe for devices using the VECTOR lines in /usr/sysgen/system,
	and using the rest of /usr/sysgen/system and the files in
	/usr/sysgen/master.d, generate a new Equiped Device Table,
	in /usr/sysgen/edt.list.new.  If this edt.list.new differs
	from the existing /usr/sysgen/edt.list, skip to step 3 below.

    2. using stat(2), see if any of /usr/sysgen/{system,master.d/*,boot/*}
	are newer than /unix.  If none are newer, then quit.

    3. Ask the "reconfigure" question.  If the operator does not
	responds "yes", then quit. 

    4. generate a new kernel in /unix.install.  This includes generating
	and compiling /etc/sysgen/master.d/master.c, and then linking
	the kernel with ld.

    5. display a message reminding the operator to reboot to use the
	new kernel.  Rename /usr/sysgen/edt.list.new as edt.list.

Please consider where this procedure can go wrong.  The most common
problem is that the "reconfigure" question is asked every time the
system is rebooted.  This is most commonly caused by one of two
problems.  First, someone has changed hardware (see step #1) or
changed software (see step #2).  Aternatively, the dates on the files
in step #2 are bogus, because the system had a crazy idea of the time
when software was installed.

The solution to both of these problems is:
	A.  touch /usr/sysgen/system /usr/sysgen/*/*
	B.  /etc/init.d/autoconfig
	C.  (answer "yes")
	D.  reboot

Please consider the utility of the following to diagnose other "reconfigure
question" problems:
	I.   run /etc/init.d/autoconfig
	II.  instead of answering the question, type control-Z
	III. diff /usr/sysgen/master.d/edt.list*
	IV.  fg; control-C


Vernon Schryver,   Silicon Graphics,  vjs@sgi.com