KERNEL-COMMAND-LINE(7)
๐ KERNEL-COMMAND-LINE(7) ๐
okay so bestie, welcome to the kernel-command-line page โ it lives in the kernel-command-line manual and it's literally the master list of all the lil magic words you can hand to your kernel at boot time ๐ฆ
โจ NAME โจ
kernel-command-line โ Kernel command line parameters
๐ SYNOPSIS ๐
/proc/cmdline
๐ธ DESCRIPTION ๐ธ
The kernel, the programs running in the initrd, and the programs running in the host system can all be configured at boot via kernel command line arguments. yes, at boot. before you even get a shell. it's giving main character energy fr fr ๐
For the command line parameters that the kernel itself understands, go peek at kernel-parameters.html[1] and bootparam(7).
For the command line parameters understood by the initrd, check the documentation of the specific initrd implementation that your installation actually uses. (yes, it varies. iykyk.)
๐ CORE OS COMMAND LINE ARGUMENTS ๐
these are the ones systemd and friends care about, bestie. buckle up, there's a lot of them and they are all iconic in their own way ๐
systemd.unit=,rd.systemd.unit=,systemd.dump_core,systemd.crash_chvt,systemd.crash_shell,systemd.crash_action=,systemd.confirm_spawn,systemd.service_watchdogs,systemd.show_status,systemd.status_unit_format=,systemd.log_target=,systemd.log_level=,systemd.log_location=,systemd.log_color,systemd.log_ratelimit_kmsg,systemd.default_standard_output=,systemd.default_standard_error=,systemd.setenv=,systemd.machine_id=,systemd.set_credential=,systemd.set_credential_binary=,systemd.import_credentials=,systemd.credentials_boot_policy=,systemd.reload_limit_interval_sec=,systemd.reload_limit_burst=,systemd.minimum_uptime_sec=โ Parameters understood by the system and service manager, used to control system behavior. For the deets, seesystemd(1). Added in version 186.systemd.restrict_filesystem_access=โ Controls theRestrictFileSystemAccess=execution enforcement policy. For the deets, seesystemd-system.conf(5). Added in version 261.systemd.mask=,systemd.wants=,systemd.debug_shell,systemd.default_debug_tty=โ Extra parameters understood bysystemd-debug-generator(8), so you can mask or start specific units at boot, or summon a debug shell ontty9. ๐ Added in version 215.systemd.break=,rd.systemd.break=โ Parameters understood bysystemd-debug-generator(8), used to pause the boot process at a certain point and spawn a debug shell. Added in version 258.systemd.run=,systemd.run_success_action=,systemd.run_failure_action=โ Extra parameters understood bysystemd-run-generator(8), so a command line specified on the kernel command line can be run as a system service after booting up. Added in version 240.systemd.early_core_pattern=โ During early boot, generating core dump files is disabled until a core dump handler (if any) takes over. This parameter lets you specify an absolute path where core dump files should be stored until a handler is installed. The path should be absolute and may contain specifiers โ seecore(5)for details. Added in version 240.systemd.restore_state=โ This parameter is understood by several system tools to control whether or not they should restore system state from the previous boot. For the deets, seesystemd-backlight@.service(8)andsystemd-rfkill.service(8). Added in version 209.systemd.ssh_auto=,systemd.ssh_listen=โ These parameters are interpreted bysystemd-ssh-generator(8)and may be used to control which SSH sockets the system shall be reachable on. Added in version 256.systemd.volatile=โ This parameter controls whether the system shall boot up in volatile mode. It takes a boolean argument, or the special values"state"or"overlay". If false (the default), normal boot mode is selected: the root directory and/var/are mounted as specified on the kernel command line or/etc/fstab, or otherwise configured. If true, full state-less boot mode is selected โ in this case the root directory is mounted as a volatile memory file system ("tmpfs"), and only/usr/is mounted from the file system configured as root device, in read-only mode. This enables fully state-less boots where the vendor-supplied OS is used as shipped, with only default configuration and no stored state in effect, since/etc/and/var/(as well as all other resources shipped in the root file system) are reset at boot and lost on shutdown. If this setting is set to"state", the root file system is mounted read-only, however/var/is mounted as a volatile memory file system ("tmpfs"), so the system boots up with the normal configuration applied, but all state is reset at boot and lost at shutdown. If this setting is set to"overlay", the root file system is set up as an"overlayfs"mount combining the read-only root directory with a writable"tmpfs", so that no modifications are made to disk, but the file system may be modified nonetheless โ with all changes being lost at reboot. For the deets, seesystemd-volatile-root.service(8)andsystemd-fstab-generator(8). Added in version 233.quietโ Parameter understood by both the kernel and the system and service manager, to control console log verbosity. For the deets, seesystemd(1). Added in version 186.debugโ Parameter understood by both the kernel and the system and service manager, to control console log verbosity. For the deets, seesystemd(1). Added in version 205.-b,rd.emergency,emergency,rd.rescue,rescue,single,s,S,1,2,3,4,5โ Parameters understood by the system and service manager, as compatibility and convenience options. For the deets, seesystemd(1). Added in version 186.locale.LANG=,locale.LANGUAGE=,locale.LC_CTYPE=,locale.LC_NUMERIC=,locale.LC_TIME=,locale.LC_COLLATE=,locale.LC_MONETARY=,locale.LC_MESSAGES=,locale.LC_PAPER=,locale.LC_NAME=,locale.LC_ADDRESS=,locale.LC_TELEPHONE=,locale.LC_MEASUREMENT=,locale.LC_IDENTIFICATION=โ Parameters understood by the system and service manager, to control locale and language settings. For the deets, seesystemd(1). Added in version 186.fsck.mode=,fsck.repair=โ Parameters understood by the file system checker services. For the deets, seesystemd-fsck@.service(8). Added in version 186.quotacheck.mode=โ Parameter understood by the file quota checker service. For the deets, seesystemd-quotacheck@.service(8). Added in version 186.systemd.journald.forward_to_syslog=,systemd.journald.forward_to_kmsg=,systemd.journald.forward_to_console=,systemd.journald.forward_to_wall=โ Parameters understood by the journal service. For the deets, seesystemd-journald.service(8). Added in version 186.vconsole.keymap=,vconsole.keymap_toggle=,vconsole.font=,vconsole.font_map=,vconsole.font_unimap=,vconsole.font_scale=โ Parameters understood by the virtual console setup logic. For the deets, seevconsole.conf(5).vconsole.font_scale=was added in version 262. Added in version 186.udev.log_level=,rd.udev.log_level=,udev.trace=,rd.udev.trace=,udev.children_max=,rd.udev.children_max=,udev.exec_delay=,rd.udev.exec_delay=,udev.event_timeout=,rd.udev.event_timeout=,udev.timeout_signal=,rd.udev.timeout_signal=,udev.blockdev_read_only,rd.udev.blockdev_read_only,net.ifnames=,net.naming_scheme=โ Parameters understood by the device event managing daemon. For the deets, seesystemd-udevd.service(8). Added in version 186.plymouth.enable=โ May be used to disable the Plymouth boot splash. For the deets, seeplymouth(8). Added in version 186.luks=,rd.luks=,luks.crypttab=,rd.luks.crypttab=,luks.name=,rd.luks.name=,luks.uuid=,rd.luks.uuid=,luks.options=,rd.luks.options=,luks.key=,rd.luks.key=โ Configures the LUKS full-disk encryption logic at boot. For the deets, seesystemd-cryptsetup-generator(8). Added in version 186.fstab=,rd.fstab=โ Configures the/etc/fstablogic at boot. For the deets, seesystemd-fstab-generator(8). Added in version 186.root=,rootfstype=,rootflags=,ro,rwโ Configures the root file system and its file system type and mount options, as well as whether it shall be mounted read-only or read-write initially. For the deets, seesystemd-fstab-generator(8). Ifroot=is not set (or set to"gpt-auto") the automatic root partition discovery implemented bysystemd-gpt-auto-generator(8)will be in effect. In this case,rootfstype=,rootflags=,ro,rwwill be interpreted bysystemd-gpt-auto-generator. Added in version 215.mount.usr=,mount.usrfstype=,mount.usrflags=โ Configures the/usrfile system (if required) and its file system type and mount options. For the deets, seesystemd-fstab-generator(8). Added in version 235.veritytab=,rd.veritytab=,roothash=,systemd.verity=,rd.systemd.verity=,systemd.verity_root_data=,systemd.verity_root_hash=,systemd.verity_root_options=,usrhash=,systemd.verity_usr_data=,systemd.verity_usr_hash=,systemd.verity_usr_options=โ Configures the integrity protection root hash for the root and/usrfile systems, plus other related parameters. For the deets, seesystemd-veritysetup-generator(8). Added in version 233.systemd.getty_auto=โ Configures whetherserial-getty@.servicewill run. For the deets, seesystemd-getty-generator(8). Added in version 250.systemd.gpt_auto=,rd.systemd.gpt_auto=โ Configures whether GPT-based partition auto-discovery shall be attempted. For the deets, seesystemd-gpt-auto-generator(8). Added in version 215.systemd.image_policy=โ When GPT-based partition auto-discovery is used, configures the image dissection policy string to apply, as persystemd.image-policy(7). For the deets seesystemd-gpt-auto-generator(8). Added in version 254.systemd.image_filter=โ When GPT-based partition auto-discovery is used, configures the image dissection filter string to apply, as persystemd.image-filter(7). For the deets seesystemd-gpt-auto-generator(8). Added in version 258.systemd.default_timeout_start_sec=โ Overrides the default start job timeoutDefaultTimeoutStartSec=at boot. For the deets, seesystemd-system.conf(5). Added in version 230.systemd.default_device_timeout_sec=โ Overrides the default device timeoutDefaultDeviceTimeoutSec=at boot. For the deets, seesystemd-system.conf(5). Added in version 254.systemd.watchdog_device=โ Overrides the watchdog device pathWatchdogDevice=. For the deets, seesystemd-system.conf(5). Added in version 236.systemd.watchdog_sec=โ overrides whatever watchdog timeout you set withRuntimeWatchdog=,RebootWatchdog=andKExecWatchdogSec=. Bestie it takes a time value (and if you don't give a unit, seconds is just implicitly assumed, we're not judging) or the special strings"off"or"default". For the deets, peek atsystemd-system.conf(5).
Added in version 250.
systemd.watchdog_pre_sec=โ overrides the watchdog pre-timeout stuff that's otherwise set withRuntimeWatchdogPreSec=. Takes a time value (no unit specified? seconds, implied, always) or the special strings"off"or"default". Details live insystemd-system.conf(5).
Added in version 251.
systemd.watchdog_pretimeout_governor=โ overrides the watchdog pre-timeout settings that are otherwise configured withRuntimeWatchdogPreGovernor=. Takes a string value. Details, again,systemd-system.conf(5).
Added in version 251.
systemd.cpu_affinity=โ overrides the CPU affinity mask for the service manager, and sets the default for every child process it forks. This takes precedence overCPUAffinity=, andsystemd-system.conf(5)has the full story.
Added in version 245.
modules_load=,rd.modules_load=โ loads a specific kernel module early at boot. Details insystemd-modules-load.service(8).
Added in version 187.
nameserver=,domain=โ configures DNS server info and search domains.systemd-resolved.service(8)is where the details are at.
Added in version 253.
resume=,resumeflags=โ turns on resume from hibernation using the device and timeout options you give it. All thefstab(5)-style device identifiers are supported, yes all of them. Details insystemd-hibernate-resume-generator(8).
Added in version 217.
resume_offset=โ sets the page offset of the swap space from the resume device. Details insystemd-hibernate-resume-generator(8).
Added in version 254.
systemd.firstboot=โ takes a boolean argument or the special value"headless", and defaults to on. If it's off, thensystemd-firstboot.service(1)andsystemd-homed-firstboot.service(1)will not ask the user for basic system settings, even if the system is booting up for the very first time and the relevant settings haven't been initialized yet. If you set it to"headless", the same interactive prompts get suppressed as with"no", but the non-interactive auto-configuration that needs zero user input still happens (like picking the only installed locale, or applying settings that came in via credentials). This is lowkey perfect for unattended installs that should be provisioned as much as possible without ever blocking on a prompt. And do not confuse this withsystemd.condition_first_boot=(down below ๐), which overrides the result of theConditionFirstBoot=unit file condition and therefore controls way more than justsystemd-firstboot.servicebehaviour.
Added in version 233.
systemd.condition_needs_update=โ takes a boolean argument. If you specify it, it overrides the result ofConditionNeedsUpdate=unit condition checks.systemd.unit(5)for the details.
Added in version 246.
systemd.condition_first_boot=โ takes a boolean argument. If specified, overrides the result ofConditionFirstBoot=unit condition checks.systemd.unit(5)has the details. And again, not to be confused withsystemd.firstboot=, which only controls the behaviour of thesystemd-firstboot.servicesystem service but has no effect on the condition check (see above).
Added in version 246.
systemd.clock_usec=โ takes a decimal, numeric timestamp in ฮผs since January 1st 1970, 00:00am, and sets the system clock to it. The system time gets set to your specified timestamp early during boot. It is not propagated to the hardware clock (RTC). Periodt.
Added in version 246.
systemd.random_seed=โ takes a base64 encoded random seed value and credits it with full entropy to the kernel's random pool during early service manager initialization. This one is useful in testing environments where you wanna dodge the delays that come from random pool initialization in entropy starved virtual machines.
โ ๏ธ Heads up bestie: if you use this option, the seed is accessible to unprivileged programs from /proc/cmdline. So this is a security risk when used outside of test systems, since the (possibly) only seed used for initializing the kernel's entropy pool might be super easily acquired by unprivileged programs.
It's recommended you pass 512 bytes of randomized data (that matches the Linux kernel pool size, cute), which you can generate with a command like this:
dd if=/dev/urandom bs=512 count=1 status=none | base64 -w 0
Again, for the people in the back: do not use this option outside of testing environments, it is a security risk elsewhere, because secret key material derived from the entropy pool can possibly be reconstructed by unprivileged programs. ๐
Added in version 246.
systemd.allow_userspace_verity=โ takes a boolean argument. Controls whether disk images that are Verity protected may be authenticated in userspace signature checks via/etc/verity.d/*.crt(and related directories) public key drop-ins, or whether in-kernel signature checking only. Defaults to on.
Added in version 256.
systemd.hostname=โ accepts a hostname to set during early boot. If specified, it takes precedence over whatever is set in/etc/hostname. Note that this does not bar later runtime changes to the hostname โ it simply controls the initial hostname set during early boot.
The name may use the "?" and "$" wildcard patterns documented in hostname(5), which are expanded deterministically from the machine ID each time the name is applied. The expanded name is never persisted, hence it may change if the word lists change. Note that in the initrd the word lists (and possibly the machine ID) are typically not available; the option is then ignored and the hostname is instead determined from the other sources, i.e. /etc/hostname or the system.hostname credential, falling back to the default hostname if none of those apply.
Added in version 246.
systemd.tty.term.tty=,systemd.tty.rows.tty=,systemd.tty.columns.tty=โ these arguments let you configure default values for$TERM,TTYRows=, andTTYColumns=for tty tty. Also,systemd.tty.term.consolewill configure the$TERMvalue used by systemd if it's not set explicitly usingTERMon the kernel command line. Specify the tty name without the/dev/prefix (e.g."systemd.tty.rows.ttyS0=80").
Added in version 254.
systemd.battery_check=โ accepts a boolean argument. If false, the boot-time battery charge check implemented bysystemd-battery-check.service(8)is disabled.
Added in version 254.
ifname=,net.ifname_policy=โ controls interface naming policies, implemented bysystemd-network-generator.service(8).
Added in version 245.
systemd.tpm2_allow_clear=โ controls whether to allow clearing of the TPM chip, implemented bysystemd-tpm2-clear.service(8).
Added in version 258.
systemd.tpm2_wait=โ controls whether to wait for a TPM2 device at boot, implemented bysystemd-tpm2-generator(8).
Added in version 256.
systemd.tpm2_software_fallback=โ controls whether to start a fallback software TPM service in case a hardware TPM isn't available, implemented bysystemd-tpm2-generator(8).
Added in version 261.
systemd.tpm2_measured_os=โ controls whether to execute various boot and runtime TPM PCR measurements. Takes a boolean argument. If it's not specified explicitly, this behaviour is enabled automatically in casesystemd-stub(7)is used and it succeeded in doing pre-boot measurements of the booted UKI, and otherwise it's disabled.
Added in version 261.
systemd.factory_reset=โ controls whether to boot into factory reset mode, implemented bysystemd-factory-reset-generator(8),systemd-repart(8), and other tools.
Added in version 258.
systemd.imds=,systemd.imds.*=โ controls various Instance Metadata Service (IMDS) cloud aspects, seesystemd-imdsd@.service(8)andsystemd-imds-generator(8)for details.
Added in version 261.
systemd.sysext=,systemd.confext=,rd.systemd.sysext=,rd.systemd.confext=โ take boolean arguments, default to on. They control whether system and configuration extensions for the initrd (rd.systemd.sysext=,rd.systemd.confext=) and for the main system (systemd.sysext=,systemd.confext=) get merged automatically on boot.systemd-sysext(8)for details.
Added in version 261.
๐ HISTORY ๐
systemd 252
- Kernel command-line arguments
systemd.unified_cgroup_hierarchyandsystemd.legacy_systemd_cgroup_controllerwere deprecated. Please switch to the unified cgroup hierarchy. (This is a glow-up, trust. โจ)
๐ SEE ALSO ๐
systemd(1), systemd-system.conf(5), bootparam(7), systemd.system-credentials(7), smbios-type-11(7), systemd-debug-generator(8), systemd-fsck@.service(8), systemd-quotacheck@.service(8), systemd-journald.service(8), systemd-vconsole-setup.service(8), systemd-udevd.service(8), plymouth(8), systemd-cryptsetup-generator(8), systemd-veritysetup-generator(8), systemd-fstab-generator(8), systemd-getty-generator(8), systemd-gpt-auto-generator(8), systemd-volatile-root.service(8), systemd-modules-load.service(8), systemd-backlight@.service(8), systemd-rfkill.service(8), systemd-hibernate-resume-generator(8), systemd-firstboot.service(1), bootctl(1)
๐ NOTES ๐
- kernel-parameters.html https://docs.kernel.org/admin-guide/kernel-parameters.html
and that's the whole page bestie!! ๐โจ you just read systemd 262.1's KERNEL-COMMAND-LINE(7) and honestly? iconic behaviour. go forth and boot responsibly, mwah ๐
๐ฆ
๐ฆ where this page comes from
- arch rolling: systemd 262.1-1 ยท LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later AND MIT-0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms