RancherOS parses the Linux kernel boot cmdline to add any keys it understands to its configuration. This allows you to modify what cloud-init sources it will use on boot, to enable rancher.debug logging, or to almost any other configuration setting.

There are two ways to set or modify persistent kernel parameters, in-place (editing the file and reboot) or during installation to disk.

In-place editing

Available as of v1.1

To edit the kernel boot parameters of an already installed RancherOS system, use the new sudo ros config syslinux editing command (uses vi).

To activate this setting, you will need to reboot.

For v1.0

For in-place editing, you will need to run a container with an editor and a mount to access the /boot/global.cfg file containing the kernel parameters.

To activate this setting, you will need to reboot.

$ sudo system-docker run --rm -it -v /:/host alpine vi /host/boot/global.cfg

During installation

If you want to set the extra kernel parameters when you are Installing RancherOS to Disk please use the --append parameter.

$ sudo ros install -d /dev/sda --append "rancheros.autologin=tty1"

Graphical boot screen

Available as of v1.1

RancherOS v1.1.0 added a Syslinux boot menu, which allows you to temporarily edit the boot parameters, or to select “Debug logging”, “Autologin”, both “Debug logging & Autologin” and “Recovery Console”.

On desktop systems the Syslinux boot menu can be switched to graphical mode by adding UI vesamenu.c32 to a new line in global.cfg (use sudo ros config syslinux to edit the file).

Useful RancherOS kernel boot parameters

User password

rancher.password=<passwd...> will set the password for rancher user. If you are not willing to use SSH keys, you can consider this parameter.

Recovery console

rancher.recovery=true will start a single user root bash session as easily in the boot process, with no network, or persistent filesystem mounted. This can be used to fix disk problems, or to debug your system.

Enable/Disable sshd

rancher.ssh.daemon=false (its enabled in the os-config) can be used to start your RancherOS with no sshd daemon. This can be used to further reduce the ports that your system is listening on.

Enable debug logging

rancher.debug=true will log everything to the console for debugging.

Autologin console

rancher.autologin=<tty...> will automatically log in the specified console - common values are tty1, ttyS0 and ttyAMA0 - depending on your platform.

Enable/Disable hypervisor service auto-enable

RancherOS v1.1.0 added detection of Hypervisor, and then will try to download the a service called <hypervisor>-vm-tools. This may cause boot speed issues, and so can be disabled by setting rancher.hypervisor_service=false.

Auto reboot after a kernel panic

Available as of v1.3

panic=10 will automatically reboot after a kernel panic, 10 means wait 10 seconds before reboot. This is a common kernel parameter, pointing out that it is because we set this parameter by default.