OpenVMS multiboot system disk
Yleistä
Tavallinen harrastelija ei yleensä omista koskaan riittävän montaa systeemilevyä, tai ei ainakaan halua vaihdella niitä edestakaisin koneeseen ja pois. Tämän takia kehittelin ja testailin menetelmän saada samalle levylle monta eri versiota OpenVMS:stä helposti bootattavaan muotoon.Perusidea
Itse asiassa tapa on hyvinkin yksinkertainen. Kaikki perustuu juurihakemistojen uudelleen nimeämiseen seuraavanlaisesti:$ DIR DKA0:[000000]*.DIR
DKA0:[000000]
SYS0_VMS62.DIR
SYS0_VMS732.DIR
SYS0_VMS82.DIR
Näitä hakemistoja käytetään aina tarvittavien SYS0- ja VMS$COMMON-hakemistojen luontiin, kun halutaan käynnistää joku tietty versio. Tarkempi selitys asiasta on alla englanninkielisenä.
Tätä varten olen tehnyt pikku komentoproseduurin, joka on tässä: SWITCH_OS_VERSION.COM. Tämä proseduuri käyttää myös täysin epävirallista CONSVAR.EXEä, jonka lähdekoodi on tässä: CONSVAR.C. Jos tarvitset EXEä tai OBJ-tiedostoa, niin kysy vain.
Multiboot systeemilevyn luominen
Levyn voi helpoiten luoda asentamalla ensin yhden käyttöjärjestelmän ja sen jälkeen tekemällä näin:$ SET FILE/REMOVE [000000]VMS$COMMON.DIR
$ RENAME [000000]SYS0.DIR [000000]SYS0_VMS83.DIR
Tämän jälkeen levylle voi asentaa toisen version käyttöjärjestelmästä PRESERVE optiolla. Tästäkin on hieman yksityiskohtaisempi selitys alla englanninkielisenä.
English description about multiboot system disk
Making/preparing a multiboot disk out of a normal non-system disk
=================================================================
This is a manual task done by the user.
You can either first install an operating system to a disk (either PRESERVE or
INITIALIZE), or you can copy the files from an existing system.
If you, for example, install an OpenVMS V6.2 from a CD, you must do the
following after the installation:
$ SET FILE/REMOVE DSTDSK:[000000]VMS$COMMON.DIR
$ RENAME DSTDSK:[000000]SYS0.DIR SYS0_VMS62.DIR
If you copy existing operating system from another disk, you do it with similar
commands like this example for OpenVMS V7.3-2 using SYS0 root in source disk:
$ BACKUP/IGNORE=(INTERLOCK,NOBACKUP) SRCDSK:[SYS0...] DSTDSK:[*...]
$ RENAME DSTDSK:[000000]SYS0.DIR SYS0_VMS732.DIR
Now you can safely install or copy other operating system versions (or same :-)
to the same disk by just repeating either of the above operations.
Making one selected root bootable
=================================
To boot one of those, this procedure (SWITCH_OS_VERSION.COM) simply creates the necessary
VMS$COMMON.DIR and SYS0.DIR (or other root number if you wish) to the root of
the disk and then use WRITEBOOT.EXE to update master boot record to point to
correct APB.EXE.
First it makes sure that the previous SYS0.DIR and VMS$COMMON.DIR are gone. If
they still exist, they are removed with:
$ SET FILE/REMOVE DSTDSK:[000000]SYS0.DIR
$ SET FILE/REMOVE DSTDSK:[000000]VMS$COMMON.DIR
Then the new ones are created:
$ SET FILE/ENTER=DSTDSK:[000000]SYS0.DIR DSTDSK:[000000]SYS0_VMS732.DIR
$ SET FILE/ENTER=DSTDSK:[000000]VMS$COMMON.DIR DSTDSK:[SYS0]SYSCOMMON.DIR
(This leaves the internal "master filename" to be SYSCOMMON.DIR, but that
really does not matter usually.)
And runs writeboot:
$ RUN DSTDSK:[VMS$COMMON.SYSEXE]WRITEBOOT
N
Y
DSTDSK:[VMS$COMMON.SYSEXE]APB.EXE
Booting from a multi boot system disk
=====================================
Now we only have to boot from that disk with the correct setting of boot_osflags and
bootdef_dev (if power cycle boot or manual boot) or boot_dev (if booting with
SHUTDOWN.COM with automatic restart option). This procedure always changes both
bootdef_dev & boot_dev, but you can manually change them separately if you wish.
Note that if you change the root directories on the very same system disk that
you are currently booted from, then you should not use SHUTDOWN.COM, but
instead the following commands (SHUTDOWN.COM runs many other procedures, which
would now be executed from a wrong version of operating system):
$ define opc$nodump y
$ define opc$reboot y
$ mc opccrash
This procedure also uses the CONSVAR.EXE (source here: CONSVAR.C) to change the console variables to the
needed settings. It should be in the same directory as this procedure, but you
can use it also separately like the following:
$ CONSVAR:==$DEV:[DIR]CONSVAR
$ CONSVAR HELP
CONSVAR.EXE is also an unsupported utility and has known to crash at least one
dual CPU DS25, thus use it also with your own risk (even though the crash might
not really matter, when you are rebooting anyway).


