Reference sections kept pointing at the line-based format they no longer
document. `sysv` and `task` sent the reader to Services for "<COND>",
the cgroups chapter opened by listing three legacy directives and then
explained further down that only two of them exist here, and the logging
chapter still gave "log:prio:facility.level,tag:ident" as the full
syntax.
Some claims were wrong independent of the format:
- a sysv is a supervised daemon, grouped with service in
SVC_TYPE_DAEMON, not a variation on task
- restart-max has no upper bound of 255, or any other
- the built-in rescue fallback runs in 12345789, not 12345
- conditional loading quotes system/10-hotplug.conf, not
system/hotplug.conf
- the key spells conflicts, not conflict
- the built-in getty no longer wants TERM last, it is a key
`if` takes either a service name or, in angle brackets, a condition,
decided in svc_ifthen(). Only the examples showed this, so it is now
said.
Terminology follows the split index.md already draws: a block is the new
format, a stanza the line-based one.
src/rescue.conf was still line-based, missed because it sits in src/
rather than system/ or contrib/.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
5.4 KiB
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.
Important
Remember to use
--to separate kernel parameters from parameters to init. E.g.,init=/sbin/finit -- finit.debug rescue
The bool setting is one of on, off, true false, 1, 0.
-
debug: Enable kernel debug. Debug messages are printed to the console until Finit starts up, unlessloglevel=7(below) is used. -
fsck.mode=<auto,force,skip>, default:auto, unless built withconfigure --enable-fastboot, in which case the default isskip -
fsck.repair=<preen,yes,no>, default:preen, unless built withconfigure --enable-fsckfix, in which case the default isyes. This configure option also setsfsck.mode=force, unless fastboot is selected at the same time. I.e., the--enable-fastbootbuild option overrides thefsck.modedefault 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, multiplefoo.cond=argcan 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 withinitctl!
-
finit.config=/path/to/alternative/finit.conf: override the compile-time bootstrap config file, default:./configure --with-config=/etc/finit.confUseful when starting up in various rescue mode, factory, or production test setups. Use the top-level configuration file setting
rcsd = "/path/to/finit.d"to override the default rcS.d directory. -
finit.debug[=bool]: Enable finit debug. This is operated independently of the kerneldebugsetting. New as of Finit v4. -
finit.fstab=</path/to/etc/fstab.alternative>: Tell Finit to use an alternatefstabto mount the file system from. Remember, this file must be on theroot=...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/fstabIt is even possible to disable a built-in default using:
./configure --without-fstabMaking
finit.fstab=/path/to/fstaba 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 badfsckand thus callssulogin. If, in turn,suloginis not available on the system, Finit calls reboot, which is also what will happen when a user exits fromsulogin. -
finit.status[=bool]: Control finit boot progress, including banner. (Used to befinit.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,rescuemode instead. -
loglevel=<0-7>, sets the kernel's log level, which is more granular thandebug. Also, whenloglevel=7, Finit will not disable kernel logs to the console. This is very useful when debugging the kernel at system bring-up. Sinceloglevel=7is the same asdebugthis means you have to usequietfor 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, seeloglevelandquietabove. -
rescue: Start rescue/maintenance mode. If your system comes with the bundledsuloginprogram (Finit, or from util-linux, or Busybox), you will be given a root login to a maintenance shell. However, ifsuloginis missing, the file/lib/finit/rescue.confis read and the system booted in a limited fallback mode.This option can be disabled with
configure --without-rescueNote: in this mode
initctlwill not work. Correct the problem and usereboot -fto force reboot. -
single, orS: 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 runlevel 1 will be started, so attyblock withrunlevel = "1",device = "@console", andnologin = truepresents you with a root console without login. -
1-9, except6: override the configuredrunlevel. Like theSandrescue, giving a single number on the kernel command line tells Finit to ignore anyrunlevelin/etc/finit.confas well as the configure fallback--with-runlevel=Nsetting. Remember,6is the reboot runlevel and is not permitted. Any other values are ignored.
For more on kernel boot parameters, see the man page bootparam(7).