PVIMG-CREATE(1)
π PVIMG-CREATE(1) π
hiii bestie, welcome to the Pvimg Manual! This page is all about pvimg-create, the command that creates an IBM Secure Execution image. It's giving secure-boot glam, no cap. Let's get into it. β¨
π NAME π
pvimg-create β create an IBM Secure Execution image. Periodt.
πΈ SYNOPSIS πΈ
pvimg create [OPTIONS] --kernel <FILE> --output <FILE> --host-key-document <FILE> <--no-verify|--cert <FILE>>
π DESCRIPTION π
okay so, you 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, you can 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>β use the content of FILE as a raw binary Linux kernel.- The Linux kernel must be a raw binary s390x Linux kernel. The ELF format is not supported. π
-r,--ramdisk <FILE>β use the content of FILE as the Linux initial RAM disk.-p,--parmfile <FILE>β use the content of FILE as the Linux kernel command line.- The Linux kernel command line must be shorter than the maximum kernel command line size supported by the given Linux kernel.
-o,--output <FILE>β write the generated Secure Execution boot image to FILE.-k,--host-key-document <FILE>β use FILE as a host-key document.- Can be specified multiple times and must be specified at least once.
--no-verifyβ disable the host-key document verification.- 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>β use FILE as a certificate to verify the host-key or keys.- 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>β use FILE as a certificate revocation list (CRL).- 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β make no attempt to download CRLs.--root-ca <ROOT_CA>β use FILE as the root-CA certificate for the verification.- 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β disable all input component checks.- For example, for the Linux kernel, it tests if the given kernel looks like a raw binary s390x kernel.
--overwriteβ overwrite an existing Secure Execution boot image.--hdr-version <VERSION>β specify the Secure Execution header version to use.[default: '1']- Possible values:
1: Version 1 - uses traditional cryptographic keys.2: Version 2 - uses hybrid (post-quantum) cryptographic keys.
- Possible values:
--cck,--comm-key <FILE>β use the content of FILE as the customer-communication key (CCK).- The file must contain exactly 32 bytes of data. In previous versions, this option was called
--comm-key.
- The file must contain exactly 32 bytes of data. In previous versions, this option was called
--hdr-key <FILE>β use the content of FILE as the Secure Execution header protection key.- 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>β use the content of FILE as the image encryption key.- The file must contain exactly 64 bytes of data.
--enable-dumpβ enable Secure Execution guest dump support. This option requires the--cckor--enable-cck-updateoption.--disable-dumpβ disable Secure Execution guest dump support (default).--enable-cck-extension-secretβ Add-secret requests must provide an extension secret that matches the CCK-derived extension secret. This option requires the--cckoption.--disable-cck-extension-secretβ Add-secret requests don't have to provide the CCK-derived extension secret (default).--enable-cck-updateβ enable CCK update support. Requires z17 or up. This option cannot be used in conjunction with the--enable-cck-extension-secretoption.--disable-cck-updateβ disable CCK update support (default).--enable-pckmoβ enable the support for the DEA, TDEA, AES, and ECC PCKMO key encryption functions (default).--disable-pckmoβ disable the support for the DEA, TDEA, AES, and ECC PCKMO key encryption functions.--enable-pckmo-hmacβ enable the support for the HMAC PCKMO key encryption function (default for header version 2).--disable-pckmo-hmacβ disable the support for the HMAC PCKMO key encryption function (default for header version 1).--enable-backup-keysβ enable the support for backup target keys.--disable-backup-keysβ disable the support for backup target keys (default).--enable-image-encryptionβ enable encryption of the image components (default).- The image components are: the kernel, ramdisk, and kernel command line.
--disable-image-encryptionβ disable encryption of the image components.- 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>β set control flags using comma-separated flag names.- Specify flags to enable using their names.
- Possible values:
confidential-dump: Confidential guest dump support.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>β set control flags using comma-separated flag names.- Specify flags to disable using their names.
- Possible values:
confidential-dump: Confidential guest dump support.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β print help (see a summary with-h).
π EXIT STATUS π
0β Program finished successfully.- The command was executed successfully. slay. β
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 π¦
- The
genprotimg(1)command is a symbolic link to thepvimg-create(1)command. - An ELF file cannot be used as a Linux kernel image.
- Remember to re-run
ziplafter updating an IBM Secure Execution image. this one is important, bestie π«Ά
π SEE ALSO π
π that's the whole page, bestie β source/version s390-tools, date 2026-08-11, PVIMG-CREATE(1) out π
π¦ where this page comes from
- centos-stream 10: s390utils 2:2.44.1-2.el10 Β· MIT AND LGPL-2.1-or-later
- centos-stream 9: s390utils 2:2.44.1-2.el9 Β· MIT
- opensuse-leap 16.0: s390-tools 2.44.1-160000.1.1 Β· MIT
- opensuse-leap 16.0: s390-tools 2.44.1-160000.1.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms