This section describes various example sequences used with the EFI$CP package, and shows sequences similar to what is used to initialize the core bootstrap partition file, and the hardware diagnostic partition file.
1 – Device
EFI$CP permits access to OpenVMS I64 bootable device structures. The example shows use of the LD logical disk capabilities and a backing file, though EFI$CP operations with a device are entirely similar once the LD device is connected. This section contains both an example and a detailed description.
1.1 – Example
$ LD CREATE SYS$SCRATCH:LD.DAT/SIZE=2880 $ LD CONNECT SYS$SCRATCH:LD.DAT LDA1: $ RUN SYS$SYSTEM:EFI$CP EFI$CP> initialize LDA1: EFI/NOLOG EFI$CP> mount LDA1: EFI/NOLOG EFI$CP> CREATE/DIRECTORY LDA1:\EFI\ EFI$CP> CREATE/DIRECTORY LDA1:\EFI\VMS\ EFI$CP> DISMOUNT LDA1: EFI$CP> EXIT
1.2 – Description
The example creates, connects, initializes and creates two directories on an LD logical disk device. The LD device size shown was explicitly chosen to match a common FAT12 floppy disk block size, per FAT12 requirements. This particular FAT12 volume is presently too small for the current OpenVMS I64 bootstrap files IPB.EXE and VMS_LOADER.EFI.
2 – SYS$EFI.SYS
SYS$EFI.SYS is the core bootstrap partition found on OpenVMS I64, and it is comprised of a FAT partition containing various files. The location of this file must be registered in the bootblock structures using the DCL command SET BOOTBLOCK or by invoking the sys$setboot.exe image. This section contains both an example and a detailed description.
2.1 – Example
$ RUN SYS$SYSTEM:EFI$CP EFI$CP> initialize sys$common:[sys$ldr]sys$efi.tmp - /device_alias=efi:/create/size=256000/contiguous - vmsefi /nolog EFI$CP> mount sys$common:[sys$ldr]sys$efi.tmp - /device_alias=efi: vmsefi %EFI-I-SEEKMBR, searching for Master Boot Record %EFI-I-ONEPART, single- partition volume; no Master Boot Record partitioning %EFI-I-SEEKBPB, searching for BIOS Parameter Block %EFI-I-SEEKBPBOK, valid BIOS Parameter Block detected %EFI-I-MOUNTED, FAT volume VMSEFI has been mounted -EFI-I-NOPARTITION, the target volume is not partitioned EFI$CP> CREATE/DIRECTORY EFI:\EFI\ EFI$CP> CREATE/DIRECTORY EFI:\EFI\VMS\ EFI$CP> COPY VMS_LOADER.EFI EFI:\EFI\VMS\ EFI$CP> COPY IPB.EXE EFI:\EFI\VMS\ EFI$CP> DISMOUNT EFI: EFI$CP> EXIT $ SET FILE/NOMOVE SYS$COMMON:[SYS$LDR]SYS$EFI.TMP $ SET BOOTBLOCK SYS$SYSDEVICE:/I64
2.2 – Description
The example creates, initializes and populates the SYS$EFI.TMP bootstrap partition with the two core directories and the two core files IPB.EXE and VMS_LOADER.EFI. (The actual bootstrap partition name is SYS$EFI.SYS.) The above example deliberately shows the hypothetical partition filename SYS$EFI.TMP and not the actual SYS$EFI.SYS partition filename. Corruption of the actual bootstrap partition will likely prevent OpenVMS I64 from bootstrapping. When a new bootable partition is created on the system disk or when an existing bootable partition is relocated on the system disk, use the SET BOOTBLOCK command or invoke the sys$setboot image directly to update the OpenVMS I64 bootblock and related structures accordingly. An existing bootable partition need not be re-registered, whether or not the partition contents have been modified. Use the SET FILE/NOMOVE command to prevent a defragmentation tool from erroneously relocating the file.
3 – SYS$DIAGNOSTICS.SYS
SYS$DIAGNOSTICS.SYS is an optional hardware diagnostics partition found on various OpenVMS I64 system disks. It is comprised of a FAT partition, potentially containing various diagnostics files. The location of this file must be registered in the bootblock structures using the DCL command SET BOOTBLOCK or by invoking the sys$setboot.exe image. If the file is deleted, then the bootblock must also be updated by invoking SET BOOTBLOCK or sys$setboot.exe. This section contains both an example and a detailed description.
3.1 – Example
$ RUN SYS$SYSTEM:EFI$CP EFI$CP> initialize sys$common:[sysmaint]sys$diagnostics.tmp - /device_alias=efidiag:/create/size=256000/contiguous - idiag /nolog EFI$CP> exit $ SET FILE/NOMOVE SYS$COMMON:[SYSMAINT]SYS$DIAGNOSTICS.TMP $ SET BOOTBLOCK SYS$SYSDEVICE:/I64
3.2 – Description
The example creates and initializes an empty hardware diagnostics partition SYS$DIAGNOSTICS.TMP within the cluster-common area of the target system disk. (The actual diagnostic partition name is SYS$DIAGNOSTICS.SYS.) The diagnostic partition is comprised of 256,000 blocks, and is subsequently registered within the OpenVMS I64 bootblock structures using the DCL command SET BOOTBLOCK. As with the SYS$EFI.SYS example, this example deliberately shows the hypothetical partition filename SYS$DIAGNOSTICS.TMP and not the actual partition SYS$DIAGNOSTICS.SYS partition filename. Use of the actual partition name would replace any existing diagnostics partition. When a new diagnostic partition is created, or is relocated on the system disk, or is deleted, use the SET BOOTBLOCK command or invoke the sys$setboot image directly to update the OpenVMS I64 bootblock and related structures accordingly. Use the SET FILE/NOMOVE command to prevent a defragmentation tool from erroneously relocating the file.