Skip to content

Bootenv Kernel Parameters

During PXE boot, Digital Rebar constructs the kernel command line from a small set of params. The line is split at --: everything before goes to the kernel, everything after goes to the installer or init process.

Text Only
{{.ParamExpand "kernel-options"}} -- {{.ParamExpand "init-options"}}

Always use ParamExpand (not Param) in bootenv templates. ParamExpand evaluates the param value as a template, which is what makes the default chaining described below work.

Param Chaining

The params are designed to be overridden at any level:

Text Only
kernel-options  →  kernel-console  →  "console=ttyS0,115200 console=tty0"

By default, kernel-options expands kernel-console, and kernel-console holds the actual console string. To change the console across machines using a profile, set kernel-console. To add other kernel args while keeping the default console, set kernel-options directly and include your console string explicitly.

init-options is empty by default. Set it to pass arguments to the initrd or installer (e.g. inst.loglevel=debug for Kickstart).

Distro Family Reference

Family Distros Kernel args param Init args param Notes
RHEL-family CentOS, Alma, Rocky, Oracle Linux, Fedora, RHEL kernel-options init-options Generic chain through kernel-console
Photon VMware Photon 3/4/5 kernel-options init-options Same as RHEL-family
Discovery / Sledgehammer Special-purpose bootenvs kernel-options init-options Same as RHEL-family
Ubuntu 18.04 Ubuntu 18.04 (legacy) kernel-options init-options Has -- separator
Ubuntu autoinstall Ubuntu 20.04+ kernel-options (none) No -- separator; init-options has no effect
Debian / Ubuntu d-i Debian 8–13, sid kernel-options-debian (none) No -- separator; uses tty1 console default
SUSE SLES 15-SP5 through 16.x kernel-options-suse init-options-suse Own console chain; uses tty0 default

Debian and SUSE console variants

The Debian installer expects tty1 (not tty0) as its VGA console due to its virtual console configuration. Rather than require operators to remember this, Debian bootenvs use a separate param chain:

Text Only
kernel-options-debian  →  kernel-console-debian  →  "console=ttyS0,115200 console=tty1"

To change only the Debian console, set kernel-console-debian. To add extra kernel args for Debian, set kernel-options-debian directly.

SUSE follows the same pattern with kernel-options-susekernel-console-suse, and init-options-suse for post--- installer args.

Common Customizations

Change the serial console baud rate (generic distros):

Text Only
drpcli machines set <uuid> param kernel-console to '"console=ttyS0,9600 console=tty0"'

Add kernel args while keeping the default console:

Text Only
drpcli machines set <uuid> param kernel-options to '"acpi=off console=ttyS0,115200 console=tty0"'

Override the Debian console only:

Text Only
drpcli machines set <uuid> param kernel-console-debian to '"console=ttyS0,9600 console=tty1"'