table of contents
- Tumbleweed 2.44.1-1.1
- Leap-16.0
| PVIMG-CREATE(1) | Pvimg Manual | PVIMG-CREATE(1) |
NAME¶
pvimg-create - Create an IBM Secure Execution image
SYNOPSIS¶
pvimg create [OPTIONS] --kernel <FILE> --output <FILE> --host-key-document <FILE> <--no-verify|--cert <FILE>>
DESCRIPTION¶
Use pvimg to generate a single bootable image file with encrypted and integrity-protected parts. The command requires a kernel image, a host-key document, certificates for the host-key document verification, and an output file name. Optionally, specify an initial RAM filesystem, and a file containing the kernel parameters. If the command should be run offline, use the --offline option and specify the certificate revocation lists (CRLs) by using the --crl option. Should special circumstances require it, you can optionally specify your own keys for the encryption by using the experimental options. For all certificates, CRLs, and host-key documents, both the PEM and DER input formats are supported. In the resulting image file, a plain text boot loader, the encrypted components for kernel, initial RAM disk, kernel parameters, and the encrypted and integrity-protected header are concatenated. The header contains metadata necessary for running the guest in protected mode.
Use this image file as a kernel image for zipl or for a direct kernel boot using QEMU.
OPTIONS¶
-i, --kernel, --image <FILE>
The Linux kernel must be a raw binary s390x Linux kernel. The ELF format is not supported.
-r, --ramdisk <FILE>
-p, --parmfile <FILE>
The Linux kernel command line must be shorter than the maximum kernel command line size supported by the given Linux kernel.
-o, --output <FILE>
-k, --host-key-document <FILE>
Can be specified multiple times and must be specified at least once.
--no-verify
Does not require the host-key documents to be valid. Do not use for a production request unless you verified the host-key document beforehand.
-C, --cert <FILE>
The certificates are used to establish a chain of trust for the verification of the host-key documents. Specify this option twice to specify the IBM Z signing key and the intermediate CA certificate (signed by the root CA).
--crl <FILE>
The list is used to check whether a certificate of the chain of trust is revoked. Specify this option multiple times to use multiple CRLs.
--offline
--root-ca <ROOT_CA>
If omitted, the system wide-root CAs installed on the system are used. Use this only if you trust the specified certificate.
--no-component-check
For example, for the Linux kernel, it tests if the given kernel looks like a raw binary s390x kernel.
--overwrite
--hdr-version <VERSION>
Possible values:
- 2: Version 2 - uses hybrid (post-quantum) cryptographic keys.
--cck, --comm-key <FILE>
The file must contain exactly 32 bytes of data. In previous versions, this option was called --comm-key.
--hdr-key <FILE>
The file must contain exactly 32 bytes of data. If the option is not specified, the Secure Execution header protection key is a randomly generated key.
--image-key <FILE>
The file must contain exactly 64 bytes of data.
--enable-dump
--disable-dump
--enable-cck-extension-secret
--disable-cck-extension-secret
--enable-cck-update
--disable-cck-update
--enable-pckmo
--disable-pckmo
--enable-pckmo-hmac
--disable-pckmo-hmac
--enable-backup-keys
--disable-backup-keys
--enable-image-encryption
The image components are: the kernel, ramdisk, and kernel command line.
--disable-image-encryption
The image components are: the kernel, ramdisk, and kernel command line. Use only if the components used do not contain any confidential content (for example, secrets like non-public cryptographic keys).
--flags <FLAGS>
Specify flags to enable using their names.
Possible values:
- pckmo-dea-tdea: DEA/TDEA PCKMO key encryption support.
- pckmo-aes: AES PCKMO key encryption support.
- pckmo-ecc: ECC PCKMO key encryption support.
- pckmo-hmac: HMAC PCKMO key encryption support.
- backup-target-keys: Backup target keys support.
- cck-extension-secret-enforcement: CCK-derived extension secret enforcement for add-secret requests.
- cck-update: CCK update support.
- no-component-encryption: Image components without encryption.
--disable-flags <FLAGS>
Specify flags to disable using their names.
Possible values:
- pckmo-dea-tdea: DEA/TDEA PCKMO key encryption support.
- pckmo-aes: AES PCKMO key encryption support.
- pckmo-ecc: ECC PCKMO key encryption support.
- pckmo-hmac: HMAC PCKMO key encryption support.
- backup-target-keys: Backup target keys support.
- cck-extension-secret-enforcement: CCK-derived extension secret enforcement for add-secret requests.
- cck-update: CCK update support.
- no-component-encryption: Image components without encryption.
-h, --help
EXIT STATUS¶
- 0 - Program finished successfully
- The command was executed successfully.
- 1 - Generic error
- Something went wrong during the operation. Refer to the error message.
- 2 - Usage error
- The command was used incorrectly, for example: unsupported command line flag, or wrong number of arguments.
EXAMPLES¶
These are examples of how to generate an IBM Secure Execution image in /boot/secure-linux, using the kernel file /boot/vmlinuz, the initrd in /boot/initrd.img, the kernel parameters contained in parmfile, the intermediate CA in DigiCertCA.crt, the IBM Z signing key in ibm-z-host-key-signing.crt, and the host-key document in host_key.crt. An AES-256 GCM key is stored in comm-key, which is used when creating a Secure Execution image with guest dump support enabled in the second example.
Generate an IBM Secure Execution image:
pvimg create -i /boot/vmlinuz -r /boot/initrd.img -p parmfile -k host_key.crt -C ibm-z-host-key-signing.crt -C DigiCertCA.crt -o /boot/secure-linux
Generate an IBM Secure Execution image with Secure Execution guest dump support:
pvimg create -i /boot/vmlinuz -r /boot/initrd.img -p parmfile -k host_key.crt -C ibm-z-host-key-signing.crt -C DigiCertCA.crt -o /boot/secure-linux --enable-dump --cck comm-key
NOTES¶
- 1.
- The genprotimg(1) command is a symbolic link to the pvimg-create(1) command.
- 2.
- An ELF file cannot be used as a Linux kernel image.
- 3.
- Remember to re-run zipl after updating an IBM Secure Execution image.
SEE ALSO¶
| 2026-08-11 | s390-tools |