From: parris@star.enet.dec.com (Keith B. Parris)
Subject: Re: Remotely rebooting vms
Organization: Digital Equipment Corporation
Date: 26 JAN 93 09:20:51 EST


In article <1j8v9eINNng8@gap.caltech.edu>, carl@SOL1.GPS.CALTECH.EDU (Carl J
Lydick) writes... 
>In article <1993Jan15.192425.13304@dbased.nuo.dec.com>,
>lionel@quark.enet.dec.com (Steve Lionel) writes: 
  ... 
>>But to the point (or points)...  First, the major reason VMS doesn't shut down
>>to the console prompt is that the way to do that is to execute a HALT
>>instruction and since most people have their systems set up to do a reboot
>>on halt, that's not very useful. 
> 
>Actually, the options are:
>	1)  Do a reboot on a BUGCHECK; or
>	2)  Don't to a reboot on a BUGCHECK;

You're probably thinking of BUGREBOOT.  What Steve was probably talking about
was the default HALT action setting stored in NVRAM by the console firmware,
which controls what happens when a HALT instruction is executed in kernel mode
(unless VMS specifies a different action by writing to another area in NVRAM). 
The default action setting is controlled by: 
>>> SET HALT n               !on 3100s and VAXstation 4000s, or
>>> T 53
    2 ? >>> n                !on 2000s
The default setting is 2, which means to reboot on a HALT.  You can set it
to 3, which causes an entry to console mode on a HALT, instead of a reboot.

When you specify to SHUTDOWN.COM that an automatic reboot is desired, VMS
overrides this default action and a reboot occurs.  Otherwise, if a HALT
instruction were to be executed in kernel mode, this setting controls the
behavior.  It would be nice if VMS would allow you to specify during shutdown
that you want to enter console mode, but today, after printing out the SHUTDOWN
COMPLETE message, it just enters an infinite loop inside EXCEPTION.EXE, at
location 4022(hex) for V5.5-2, last I looked. 

If you wanted to use the halt action setting to halt in console mode, you'd
want to execute a HALT instruction after shutdown was complete.  The most
obvious way might be to patch EXCEPTION.EXE, but following is a way using
supported tools:

Set things up in NCP on the boot node(s) so a reboot will load an image which
does a HALT instruction.  The READ_ADDR.SYS program, which is normally used to
find out the Ethernet address of a satellite node, just happens to do a HALT
instruction when it's run, and is readily available, so it will do the job
nicely. 

To HALT the satellite on the next reboot attempt:

$ MCR NCP
NCP> CLEAR NODE satellite LOAD ASSIST PARAMETER
NCP> CLEAR NODE satellite LOAD ASSIST AGENT
NCP> SET NODE satellite LOAD FILE MOM$LOAD:READ_ADDR.SYS

Now, shut the satellite down normally, but with an immediate reboot specified. 

$ MCR SYSMAN
SYSMAN> SET ENVIRONMENT/NODE=satellite
SYSMAN> DO @SYS$UPDATE:AUTOGEN REBOOT

On reboot of the satellite, the READ_ADDR.SYS program will be loaded, dutifully
print out the Ethernet address, and the system will "halt" in console mode. 

Later, when you're ready to allow the satellite to boot normally, you need
to fix up the node information in NCP, so that the satellite will load VMS,
rather than the READ_ADDR.SYS program, when it is booted. 

To allow the satellite to reboot normally:

$ MCR NCP
NCP> CLEAR NODE satellite LOAD FILE
NCP> SET NODE satellite ALL
__________---_---_-_-_-_-_____-_----____---__-__-_-_-----_-_--_--___-_-__---__-_
Keith B. Parris, Digital Equipment Corporation, Alpha VMS Clusters & I/O Group
----_-____-_--_-__-_---_-___-_-_-_--__-_-__---__-_---_-___-_-_-_-_____--_--___-_
Anything blatantly opinionated or which is later found to be inaccurate was
mine, of course.  Digital gets the credit for any actual facts which appear.
-_-_--__-_-__----___---__-__-_-_-_-_____-__--_____---_-___-_-_-_--__-_--_--___-_
Newsgroups: comp.os.vms