Skip to content

Latest commit

 

History

History
118 lines (87 loc) · 5.34 KB

cmdline.md

File metadata and controls

118 lines (87 loc) · 5.34 KB

Tips & Tricks with the kernel cmdline

This document summarizes the different boot parameters that can be passed on the Linux kernel command line. Not limited to Finit.

The bool setting is one of on, off, true false, 1, 0.

NOTE: remember to use -- to separate kernel parameters from parameters to init. E.g., init=/sbin/finit -- finit.debug rescue

  • debug: Enable kernel debug. Debug messages are printed to the console until Finit starts up, unless loglevel=7 (below) is used.

  • fsck.mode=<auto,force,skip>, default: auto, unless built with configure --enable-fastboot, in which case the default is skip

  • fsck.repair=<preen,yes,no>, default: preen, unless built with configure --enable-fsckfix, in which case the default is yes. This configure option also sets fsck.mode=force, unless fastboot is selected at the same time. I.e., the --enable-fastboot build option overrides the fsck.mode default value.

  • finit.cond=foo[,bar[,baz]]: set <boot/foo> condition, optionally multiple conditions can be set using the same option, separated with a comma. Alternatively, multiple foo.cond=arg can be given. Each will result in a <boot/arg> condition being set to control the rest of the system bootstrap.

    Very useful for selecting different boot modes, e.g. manufacturing test, firmware upgrade, or rescue mode.

    Note: <boot/...> conditions cannot be cleared with initctl!

  • finit.config=/path/to/alternative/finit.conf: override the compile-time bootstrap config file, default:

      ./configure --with-config=/etc/finit.conf
    

    Useful when starting up in various rescue mode, factory, or production test setups. Use the top-level configuration file directive rcsd /path/to/finit.d to override the default rcS.d directory.

  • finit.debug[=bool]: Enable finit debug. This is operated independently of the kernel debug setting. New as of Finit v4.

  • finit.fstab=</path/to/etc/fstab.alternative>: Tell Finit to use an alternate fstab to mount the file system from. Remember, this file must be on the root=... file system provided to Finit from the kernel. By default the built-in fstab is used, which itself defaults to /etc/fstab, but can be changed at build time with:

      ./configure --with-fstab=/path/to/fstab
    

    It is even possible to disable a built-in default using:

      ./configure --without-fstab
    

    Making finit.fstab=/path/to/fstab a mandatory command line option. Note, if the command line fstab is missing, Finit falls back to the built-in fstab, and if both are missing, the system treats this as a bad fsck and thus calls sulogin. If, in turn, sulogin is not available on the system, Finit calls reboot, which is also what will happen when a user exits from sulogin.

  • finit.status[=bool]: Control finit boot progress, including banner. (Used to be finit.show_status, which works but is deprecated.)

  • finit.status_style=<classic,modern>: Set Finit boot progress style, when enabled.

  • init=/bin/sh: Bypass system default init and tell kernel to start a shell. Note, this shell is very limited and does not support signals and has no job control. Recommend using, and modifying, rescue mode instead.

  • loglevel=<0-7>, sets the kernel's log level, which is more granular than debug. Also, when loglevel=7, Finit will not disable kernel logs to the console. This is very useful when debugging the kernel at system bring-up. Since loglevel=7 is the same as debug this means you have to use quiet for a quiet boot, until sysklogd takes over logging of kernel events.

  • panic=SEC: By default the kernel does not reboot after a kernel panic. This setting will cause a kernel reboot after SEC seconds.

  • quiet: Suppress kernel logging to console, except for warnings and errors. Also, see loglevel and quiet above.

  • rescue: Start rescue/maintenance mode. If your system comes with the bundled sulogin program (Finit, or from util-linux/Busybox), you will be given a root login to a maintenance shell. However, if sulogin is missing, the file /lib/finit/rescue.conf is read and the system booted in a limited fallback mode. See config.md for more information.

    This option can be disabled with configure --without-rescue

    Note: in this mode initctl will not work. Correct the problem and use reboot -f to force reboot.

  • single, or S: Overrides the configured runlevel (default: 2) to go to after bootstrap by forcing it to runlevel 1, this is also known as single user mode. Useful to debug startup problems. All services and TTYs in [1] will be started, so a tty [1] @console nologin configuration presents you with a root console without login.

  • 1-9, except 6: override the configured runlevel. Like the S and rescue, giving a single number on the kernel command line tells Finit to ignore any runlevel in /etc/finit.conf as well as the configure fallback --with-runlevel=N setting. Remember, 6 is the reboot runlevel and is not permitted. Any other values are ignored.

For more on kernel boot parameters, see the man page bootparam(7).