openvms hobbyist notes
This page contains a small compilation of notes and job aids for various OpenVMS administrative tasks, posted both to provide a reminder to me as well as to potentially provide assistance to other OpenVMS hobbyists. Enjoy!
Uninstall DECnet-Plus and replace with DECnet Phase IV
If you just performed a fresh installation of OpenVMS on a machine and meant to install DECnet Phase IV but installed DECnet Plus instead, no worries! Just follow the procedure below.
1. Have the DECnet Phase IV kit ready, either on a CD-ROM connected to the system with the release disc inserted, or a copy of the installation archive on disk.
2. Log in as SYSTEM and type:
PRODUCT REMOVE
3. Select "DECnet OSI" or whatever similar-sounding option appears in the menu. It should be pretty clear which option corresponds to DECnet Plus.
4. Let it go to work and remove DECnet. It shouldn't take too long, no more than a few minutes on my 4000/VLC or 3100/76.
5. Once PRODUCT REMOVE has completed, just go ahead and install DECnet Phase IV:
PRODUCT INSTALL DECNET_PHASE_IV /SOURCE=DKAXXX:[...DECNET_PHASE_IV_VAX073.KIT]
6. Reboot the system:
@SYS$SYSTEM:SHUTDOWN
7. Once the system comes back up, configure DECnet Phase IV:
@SYS$MANAGER:NETCONFIG
8. Edit SYS$STARTUP:SYSTARTUP_VMS.COM and uncomment the line that looks something like the following:
START /NETWORK DECNET
9. Reboot the system once more for good measure to complete the DECnet version swap.
@SYS$SYSTEM:SHUTDOWN
Note 1: If you are running both TCP/IP and DECnet on the system concurrently, ensure the system starts TCP/IP after starting DECnet because DECnet rewrites the system MAC address in the process of starting and this will confuse TCP/IP if it is already running.
Note 2: If you have multiple nodes in your DECnet network, you'll need to add them to the DECnet "hosts file" using NCP before you can resolve them by name. For example, to add node MYVAX with DECnet address 1.2:
$ RUN SYS$SYSTEM:NCP
NCP> DEFINE MYVAX 1.2
NCP> SET MYVAX 1.2
NCP> EXIT
Configuring DECnet Phase IV
To configure DECnet Phase IV, run the command procedure:
$ @SYS$MANAGER:NETCONFIG
Installing layered software packages
To install a layered package in VMSINSTAL format (package.a, package.b and so on), use the command:
$ @SYS$UPDATE:VMSINSTAL PRODUCT_NAME DKAxxx:[PATH.TO.PACKAGE.FILES]
To install a layered package in PSCI format, use the command:
$ PRODUCT INSTALL PRODUCT_NAME /SOURCE=DKAxxx:[PATH.TO.PACKAGE.FILES]
Formatting and mounting a disk
To format and mount a SCSI disk on OpenVMS, use the following commands:
$ INITIALIZE DKAxxx: LABEL
$ MOUNT /SYSTEM DKAxxx: LABEL
We can add the MOUNT command to our SYSTARTUP_VMS file to make the mount happen automatically at boot time.
Determining the volume label of a CD-ROM
Use the following command to determine the volume label of a CD-ROM when it is not already known:
$ MOUNT /OVERRIDE=IDENTIFICATION DKAxxx:
INTSTKPAGES for TCP/IP Services
To run TCP/IP Services on VAX, the default value of the INTSTKPAGES system parameter after a fresh installation must be increased. Use the following procedure.
1. Edit the file SYS$SYSTEM:MODPARAMS.DAT and add a line as follows:
INTSTKPAGES=16
2. Run AUTOGEN
$ @SYS$UPDATE:AUTOGEN GETDATA REBOOT NOFEEDBACK
3. Once the system comes back up, TCP/IP Services should start without any problems, so long as the INTSTKPAGES parameter is set to at least 12. If further issues, perform further system parameter modification as documented in the next section below.
Global Pagelets and Global Sections for TCP/IP Services
In addition to INTSTKPAGES, there are a few other system parameters that may need to be modified up from their default values in a fresh installation. Use the following procedure.
1. Edit the SYS$SYSTEM:MODPARAMS.DAT file and add lines as follows. I have used the following parameters with good results on MicroVAX III (KA650), MicroVAX III+ (KA655), 3100/76 and 4000/VLC:
ADD_GBLPAGES=10000
ADD_GBLSECTIONS=100
ADD_NPAGEDYN=800000
ADD_NPAGEVIR=800000
MIN_SPTREQ=6000
2. Run AUTOGEN:
$ @SYS$SYSTEM:AUTOGEN GENPARAMS REBOOT
3. If AUTOGEN does not automatically trigger a reboot, do it manually:
$ @SYS$SYSTEM:SHUTDOWN
Once the system comes back up, it should be able to start TCP/IP Services with no problems.
Configuring TCP/IP Services
Configuring TCP/IP is easy to do. While logged in as SYSTEM just run:
$ @SYS$COMMON:[SYSMGR]TCPIP$CONFIG.COM
Starting TCP/IP Services
We can start TCP/IP Services within the TCPIP$CONFIG command procedure, or we can run:
$ @SYS$STARTUP:TCPIP$STARTUP
Configuring VMScluster
Configuring VMScluster is actually very simple. While logged in as SYSTEM just run:
$ @SYS$COMMON:[SYSMGR]CLUSTER_CONFIG.COM
Increasing the size of PAGEFILE, SWAPFILE and DUMPFILE
To run larger jobs and accommodate more users, it may be required to increase the size of the pagefile and swapfile from the default values that were automatically calculated at system installation time. Just follow the simple procedure below.
1. Run the SWAPFILES command procedure:
$ @SYS$UPDATE:SWAPFILES.COM
2. The existing sizes of the swapfile, pagefile and dumpfile will be displayed. Enter the desired new sizes for the three files when prompted by the script.
3. Once SWAPFILES.COM has finished running, edit SYS$SYSTEM:MODPARAMS.DAT and add confguration to be consistent with what was specified in SWAPFILES.COM:
PAGEFILE1_SIZE=100000
SWAPFILE1_SIZE=30000
DUMPFILE=50000
4. Save and close. Do not run AUTOGEN (not required).
5. Reboot the system.
$ @SYS$SYSTEM:SHUTDOWN
6. Once the system comes back up, log in and make sure the new file sizes have taken effect:
$ SHOW MEMORY
Resolving %LIB-E-INSVIRMEM
Resolving %CLI-F-TEXT, Compiler abort - virtual memory limits exceeded
Both of these error messages relate to the VIRTUALPAGECNT system parameter which may need to be increased from the default value to run larger jobs or accommodate larger numbers of users. Edit SYS$SYSTEM:MODPARAMS.DAT and ensure the parameter is set:
MIN_VIRTUALPAGECNT=400000
A slightly more severe variation on this theme would be to use instead something like:
VIRTUALPAGECNT=400000
The following commands can be used to stat a few parameters relating to virtual memory utilization which may be useful in diagnosing this issue:
WRITE SYS$OUTPUT "WSEXTENT ",F$GETJPI("","WSEXTENT")
WRITE SYS$OUTPUT "PGFLQUOTA ",F$GETJPI("","PGFLQUOTA")
Increasing PGFLQUOTA for a user account
1. Run the user accounts management utility:
$ @SYS$SYSTEM:AUTHORIZE
2. Show current settings for the account in question. Look for the "Pgflquo":
SHOW MY_USER
3. Modify the user account to increase the quota:
MODIFY MY_USER /PGFLQUOTA=100000
Building Lynx on OpenVMS AXP
The following entries in SYS$SYSTEM:MODPARAMS.DAT seem to give sufficient headroom to allow Lynx to be built from source:
ADD_GBLPAGES=100000
ADD_GBLSECTIONS=5000
ADD_NPAGEDYN=1000000
ADD_NPAGEVIR=1000000
MIN_VIRTUALPAGECNT=1000000
PAGEFILE1_SIZE=250000
SWAPFILE1_SIZE=50000
DUMPFILE=200000
Disabling password lifetime and password expiration
Password lifetime and password expiry is a little bit overkill on a hobby system that isn't exposed to the public Internet. Use the following commands to disable password expiration on an account that was initially configured with it enabled.
$ SET DEF SYS$SYSTEM
$ RUN AUTHORIZE
UAF> MODIFY MY_USER /NOPWDLIFETIME
UAF> MODIFY MY_USER /NOEXPIRATION
UAF> EXIT
Adding a new user account
Use the following sequence of commands to add a new user account on an OpenVMS system:
$ SET DEF SYS$SYSTEM
$ RUN AUTHORIZE
UAF> ADD MY_USER /UIC=[GROUP,MEMBER] /NOPWDEXPIRED /NOPWDLIFETIME /NOEXPIRATION /DEVICE=DKAxxx: /DIRECTORY=[PATH.TO.HOME] /PASSWORD=INITIAL_PASSWORD
UAF> MODIFY MY_USER /FLAGS=NODISUSER
UAF> EXIT
Then create a home directory and set permissions for the user account:
$ CREATE /DIR DKAxxx:[PATH.TO.HOME]
$ SET SECURITY DKAxxx:[PATH.TO]HOME.DIR /OWNER=[GROUP,MEMBER]
home