Kernel parameters (also called boot parameters or kernel command-line arguments) let you control kernel behavior before any userspace process runs. They are passed to the kernel by the bootloader—GRUB, systemd-boot, or similar—and parsed during early kernel initialization.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/torvalds/linux/llms.txt
Use this file to discover all available pages before exploring further.
How kernel parameters work
The kernel reads its command line from the bootloader and processes parameters from left to right, stopping at--. Anything after -- is passed as arguments to init.
All kernel parameters are case-sensitive. The total command line length is architecture-dependent: between 256 and 4096 characters, defined in
include/uapi/asm-generic/setup.h as COMMAND_LINE_SIZE.Hyphens and underscores
Hyphens and underscores are interchangeable in parameter names:Metric suffixes
Many size parameters accept the suffixesK, M, G, T, P, and E, representing binary multipliers (2^10 through 2^60).
CPU lists
Some parameters accept a list of CPU numbers:N refers to the highest-numbered CPU on the system.
Module parameters
Loadable module parameters can be set on the kernel command line using themodule.param=value syntax, or passed to modprobe directly:
/sys/module/<name>/parameters/:
Key parameter categories
Console & logging
console=, loglevel=, quiet, debug, printk.devkmsg=Memory
mem=, hugepages=, transparent_hugepage=, movablecore=CPU & scheduling
maxcpus=, nr_cpus=, isolcpus=, nohz_full=, nosmpSecurity
selinux=, apparmor=, security=, module.sig_enforce=Debugging
panic=, oops=, kgdboc=, initcall_debug, ftrace=IOMMU
intel_iommu=, amd_iommu=, iommu=Common parameters reference
Console and logging
Console and logging
console= [KNL]Sets the console device and options. Multiple console= arguments can be used to direct output to several devices simultaneously. The last console= entry becomes the /dev/console device.quietSuppresses most kernel log messages during boot. Equivalent to loglevel=4.loglevel= [KNL]Sets the console log level (0–7). Messages with priority higher than this value are not printed to the console. Default is 7 (all messages).| Level | Meaning |
|---|---|
| 0 | EMERG |
| 1 | ALERT |
| 2 | CRIT |
| 3 | ERR |
| 4 | WARNING |
| 5 | NOTICE |
| 6 | INFO |
| 7 | DEBUG |
debugSets the kernel log level to the maximum (8). Equivalent to loglevel=8.initcall_debugTraces all initcall functions during boot. Useful for diagnosing slow or failing boot sequences.Boot and init
Boot and init
init= [KNL]Overrides the path to the init process. The kernel tries this path before the default /sbin/init and /init.ro / rwMounts the root filesystem read-only (ro) or read-write (rw) at boot. Most distributions boot ro and remount rw after filesystem checks.root= [KNL]Specifies the root filesystem device.rootdelay=Waits the specified number of seconds before attempting to mount the root filesystem. Useful when storage controllers initialize slowly.nomodesetPrevents the kernel from switching video modes. Disables kernel mode-setting (KMS), which forces the system to use the VESA/BIOS framebuffer. Commonly used to work around GPU driver issues.Memory management
Memory management
mem= [KNL,BOOT]Limits the amount of memory the kernel uses. Memory above the specified limit is ignored.hugepages= [HW]Allocates a fixed number of huge pages at boot time. Huge pages are 2 MiB on x86-64 by default.transparent_hugepage= [KNL]Controls Transparent Huge Pages (THP).movablecore= [KNL,X86,IA-64,PPC]Specifies the amount of memory reserved for hotpluggable (movable) pages.CPU and SMP
CPU and SMP
maxcpus= [SMP]Limits the number of CPUs that will be brought online at boot. Additional CPUs can be onlined later via /sys/devices/system/cpu/cpuN/online.nr_cpus= [SMP]Sets the maximum number of CPUs the kernel will support. Unlike maxcpus=, this is a hard limit that cannot be increased without rebooting.nosmp [SMP]Disables SMP support completely. Equivalent to maxcpus=0.isolcpus= [KNL,SMP]Isolates specified CPUs from the general kernel scheduler. Isolated CPUs will not run tasks from the scheduler’s global runqueue; processes must be explicitly pinned to them with taskset or cgroup cpuset.nohz_full= [KNL,SMP]Extends dynticks (tickless) operation to the specified CPUs. Reduces timer interrupts on isolated CPUs to minimize latency jitter for real-time workloads.Panic and crash behavior
Panic and crash behavior
panic= [KNL]Sets the timeout in seconds before automatic reboot after a kernel panic. Zero means do not reboot. A negative value means reboot immediately.oops= [KNL]Controls behavior when a non-fatal kernel oops occurs.nmi_watchdog= [KNL,BUGS=X86]Configures the NMI watchdog, which detects hard lockups.IOMMU and virtualization
IOMMU and virtualization
intel_iommu= [DMAR]Controls Intel VT-d IOMMU behavior.amd_iommu= [HW,X86-64]Controls AMD-Vi IOMMU behavior.iommu= [X86]General IOMMU option.Security
Security
selinux= [SELINUX]Enable or disable SELinux at boot.apparmor= [APPARMOR]Enable or disable AppArmor at boot.security= [SECURITY]Chooses the primary Linux Security Module when multiple are compiled in.module.sig_enforce=When set to 1, the kernel refuses to load any module that is not validly signed. This overrides CONFIG_MODULE_SIG_FORCE.lockdown= [SECURITY]Enables kernel lockdown mode, restricting root’s ability to modify the running kernel.Networking
Networking
netdev_max_backlog=Sets the maximum number of packets queued on the input side when the interface receives packets faster than the kernel can process them.lpj= [KNL]Manually sets loops-per-jiffy, skipping the calibration delay during boot. Speeds up boot time at the cost of potentially inaccurate delay loops.Filesystem and storage
Filesystem and storage
acpi= [HW,ACPI]Controls ACPI (Advanced Configuration and Power Interface) behavior.pci= [PCI]Controls PCI bus behavior.Making parameters permanent
- GRUB 2
- systemd-boot
- GRUB on ARM64
Edit Then regenerate the GRUB configuration:
/etc/default/grub and add parameters to GRUB_CMDLINE_LINUX: