// Module included in the following assemblies:
//
// * installing/installing_bare_metal/upi/installing-bare-metal.adoc
// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc
// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc
// * installing/installing_platform_agnostic/installing-platform-agnostic.adoc
// * installing/installing_ibm_power/installing-restricted-networks-ibm-power.adoc

:_mod-docs-content-type: REFERENCE
[id="installation-user-infra-machines-coreos-installer-options_{context}"]
= `coreos-installer` and boot options for ISO and PXE installations

[role="_abstract"]
You can install {op-system} by running `coreos-installer install <options> <device>` at the command prompt, after booting into the {op-system} live environment from an ISO image.

The following table shows the subcommands, options, and arguments you can pass to the `coreos-installer` command.

.`coreos-installer` subcommands, command-line options, and arguments
|===

2+|*coreos-installer install subcommand*

|*_Subcommand_* |*_Description_*

a|`$ coreos-installer install <options> <device>`
a|Embed an Ignition config in an ISO image.

2+|*coreos-installer install subcommand options*

|*_Option_* |*_Description_*

a| `-u`, `--image-url <url>`
a|Specify the image URL manually.

a| `-f`, `--image-file <path>`
a|Specify a local image file manually. Used for debugging.

a|`-i,` `--ignition-file <path>`
a|Embed an Ignition config from a file.

a|`-I`, `--ignition-url <URL>`
a|Embed an Ignition config from a URL.

a|`--ignition-hash <digest>`
a|Digest `type-value` of the Ignition config.

a|`-p`, `--platform <name>`
a|Override the Ignition platform ID for the installed system.

a|`--console <spec>`
a|Set the kernel and boot loader console for the installed system. For more information about the format of `<spec>`, see the link:https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html[Linux kernel serial console] documentation.

a|`--append-karg <arg>...`
a|Append a default kernel argument to the installed system.

a|`--delete-karg <arg>...`
a|Delete a default kernel argument from the installed system.

a|`-n`, `--copy-network`
a|Copy the network configuration from the install environment.

[IMPORTANT]
====
The `--copy-network` option only copies networking configuration found under `/etc/NetworkManager/system-connections`. In particular, it does not copy the system hostname.
====

a|`--network-dir <path>`
a|For use with `-n`. Default is `/etc/NetworkManager/system-connections/`.

a|`--save-partlabel <lx>..`
a|Save partitions with this label glob.

a|`--save-partindex <id>...`
a|Save partitions with this number or range.

a|`--insecure`
a|Skip {op-system} image signature verification.

a|`--insecure-ignition`
a|Allow Ignition URL without HTTPS or hash.

a|`--architecture <name>`
a|Target CPU architecture. Valid values are `x86_64` and `aarch64`.

a|`--preserve-on-error`
a|Do not clear partition table on error.

a|`-h`, `--help`
a|Print help information.

2+|*coreos-installer install subcommand argument*

|*_Argument_* |*_Description_*

a|`<device>`
a|The destination device.

2+|*coreos-installer ISO subcommands*

|*_Subcommand_* |*_Description_*

a|`$ coreos-installer iso customize <options> <ISO_image>`
a|Customize a {op-system} live ISO image.

a|`coreos-installer iso reset <options> <ISO_image>`
|Restore a {op-system} live ISO image to default settings.

a|`coreos-installer iso ignition remove <options> <ISO_image>`
a|Remove the embedded Ignition config from an ISO image.

2+|*coreos-installer ISO customize subcommand options*

|*_Option_* |*_Description_*

a|`--dest-ignition <path>`
a|Merge the specified Ignition config file into a new configuration fragment for the destination system.

a|`--dest-console <spec>`
a|Specify the kernel and boot loader console for the destination system.

a|`--dest-device <path>`
a|Install and overwrite the specified destination device.

a|`--dest-karg-append <arg>`
a|Add a kernel argument to each boot of the destination system.

a|`--dest-karg-delete <arg>`
a|Delete a kernel argument from each boot of the destination system.

a|`--network-keyfile <path>`
a|Configure networking by using the specified NetworkManager keyfile for live and destination systems.

a|`--ignition-ca <path>`
a|Specify an additional TLS certificate authority to be trusted by Ignition.

a|`--pre-install <path>`
a|Run the specified script before installation.

a|`--post-install <path>`
a|Run the specified script after installation.

a|`--installer-config <path>`
a|Apply the specified installer configuration file.

a|`--live-ignition <path>`
a|Merge the specified Ignition config file into a new configuration fragment for the live environment.

a|`--live-karg-append <arg>`
a|Add a kernel argument to each boot of the live environment.

a|`--live-karg-delete <arg>`
a|Delete a kernel argument from each boot of the live environment.

a|`--live-karg-replace <k=o=n>`
a|Replace a kernel argument in each boot of the live environment, in the form `key=old=new`.

a|`-f`, `--force`
a|Overwrite an existing Ignition config.

a|`-o`, `--output <path>`
a|Write the ISO to a new output file.

a|`-h`, `--help`
a|Print help information.

2+|*coreos-installer PXE subcommands*

|*_Subcommand_* |*_Description_*

2+|Note that not all of these options are accepted by all subcommands.

a|`coreos-installer pxe customize <options> <path>`
a|Customize a {op-system} live PXE boot config.

a|`coreos-installer pxe ignition wrap <options>`
a|Wrap an Ignition config in an image.

a|`coreos-installer pxe ignition unwrap <options> <image_name>`
a|Show the wrapped Ignition config in an image.

2+|*coreos-installer PXE customize subcommand options*

|*_Option_* |*_Description_*

2+|Note that not all of these options are accepted by all subcommands.

a|`--dest-ignition <path>`
a|Merge the specified Ignition config file into a new configuration fragment for the destination system.

a|`--dest-console <spec>`
a|Specify the kernel and boot loader console for the destination system.

a|`--dest-device <path>`
a|Install and overwrite the specified destination device.

a|`--network-keyfile <path>`
a|Configure networking by using the specified NetworkManager keyfile for live and destination systems.

a|`--ignition-ca <path>`
a|Specify an additional TLS certificate authority to be trusted by Ignition.

a|`--pre-install <path>`
a|Run the specified script before installation.

a|`post-install <path>`
a|Run the specified script after installation.

a|`--installer-config <path>`
a|Apply the specified installer configuration file.

a|`--live-ignition <path>`
a|Merge the specified Ignition config file into a new configuration fragment for the live environment.

a|`-o,` `--output <path>`
a|Write the initramfs to a new output file.

[NOTE]
====
This option is required for PXE environments.
====

a|`-h`, `--help`
a|Print help information.

|===

You can automatically start `coreos-installer` options at boot time by passing `coreos.inst` boot arguments to the {op-system} live installer. These are provided in addition to the standard boot arguments.

* For ISO installations, the `coreos.inst` options can be added by interrupting the automatic boot at the boot loader menu. You can interrupt the automatic boot by pressing `TAB` while the *RHEL CoreOS (Live)* menu option is highlighted.

* For PXE or iPXE installations, the `coreos.inst` options must be added to the `APPEND` line before the {op-system} live installer is booted.

The following table shows the {op-system} live installer `coreos.inst` boot options for ISO and PXE installations.

.`coreos.inst` boot options
|===
|Argument |Description

a|`coreos.inst.install_dev`

a|Required. The block device on the system to install to.

[NOTE]
====
It is recommended to use the full path, such as `/dev/sda`, although `sda` is allowed.
====

a|`coreos.inst.ignition_url`

a|Optional: The URL of the Ignition config to embed into the installed system. If no URL is specified, no Ignition config is embedded. Only HTTP and HTTPS protocols are supported.

a|`coreos.inst.save_partlabel`

a|Optional: Comma-separated labels of partitions to preserve during the install. Glob-style wildcards are permitted. The specified partitions do not need to exist.

a|`coreos.inst.save_partindex`

a|Optional: Comma-separated indexes of partitions to preserve during the install. Ranges `m-n` are permitted, and either `m` or `n` can be omitted. The specified partitions do not need to exist.

a|`coreos.inst.insecure`

a|Optional: Permits the OS image that is specified by `coreos.inst.image_url` to be unsigned.

a|`coreos.inst.image_url`

a|Optional: Download and install the specified {op-system} image.

* This argument should not be used in production environments and is intended for debugging purposes only.

* While this argument can be used to install a version of {op-system} that does not match the live media, it is recommended that you instead use the media that matches the version you want to install.

* If you are using `coreos.inst.image_url`, you must also use `coreos.inst.insecure`. This is because the bare-metal media are not GPG-signed for {product-title}.

* Only HTTP and HTTPS protocols are supported.

a|`coreos.inst.skip_reboot`

a|Optional: The system will not reboot after installing. After the install finishes, you will receive a prompt that allows you to inspect what is happening during installation. This argument should not be used in production environments and is intended for debugging purposes only.

a|`coreos.inst.platform_id`

a| Optional: The Ignition platform ID of the platform the {op-system} image is being installed on. Default is `metal`. This option determines whether or not to request an Ignition config from the cloud provider, such as VMware. For example: `coreos.inst.platform_id=vmware`.

a|`ignition.config.url`

a|Optional: The URL of the Ignition config for the live boot. For example, this can be used to customize how `coreos-installer` is invoked, or to run code before or after the installation. This is different from `coreos.inst.ignition_url`, which is the Ignition config for the installed system.
|===

