10 boot time parameters you should know about the Linux kernel

by on March 8, 2006 · 17 comments· LAST UPDATED October 26, 2006

in , ,

The Linux kernel accepts boot time parameters as it starts to boot system. This is used to inform kernel about various hardware parameter. You need boot time parameters:

* Troubleshoot system
* Hardware parameters that the kernel would not able to determine on its own
* Force kernel to override the default hardware parameters in order to increase performance
* Password and other recovery operations

The kernel command line syntax

name=value1,value2,value3…

Where,

  • name : Keyword name, for example, init, ro, boot etc

Ten common Boot time parameters

init

This sets the initial command to be executed by the kernel. Default is to use /sbin/init, which is the parent of all processes.
To boot system without password pass /bin/bash or /bin/sh as argument to init
init=/bin/bash

single

The most common argument that is passed to the init process is the word 'single' which instructs init to boot the computer in single user mode, and not launch all the usual daemons

root=/dev/device

This argument tells the kernel what device (hard disk, floppy disk) to be used as the root filesystem while booting. For example following boot parameter use /dev/sda1 as the root file system:
root=/dev/sda1

If you copy entire partition from /dev/sda1 to /dev/sdb1 then use
root=/dev/sdb1

ro

This argument tells the kernel to mount root file system as read-only. This is done so that fsck program can check and repair a Linux file system. Please note that you should never ever run fsck on read/write file system.

rw

This argument tells the kernel to mount root file system as read and write mode.

panic=SECOND

Specify kernel behavior on panic. By default, the kernel will not reboot after a panic, but this option will cause a kernel reboot after N seconds. For example following boot parameter will force to reboot Linux after 10 seconds
panic=10

maxcpus=NUMBER

Specify maximum number of processors that an SMP kernel should make use of. For example if you have four cpus and would like to use 2 CPU then pass 2 as a number to maxcpus (useful to test different software performances and configurations).
maxcpus=2

debug

Enable kernel debugging. This option is useful for kernel hackers and developers who wish to troubleshoot problem

selinux [0|1]

Disable or enable SELinux at boot time.

  • Value 0 : Disable selinux
  • Value 1 : Enable selinux

raid=/dev/mdN

This argument tells kernel howto assembly of RAID arrays at boot time. Please note that When md is compiled into the kernel (not as module), partitions of type 0xfd are scanned and automatically assembled into RAID arrays. This autodetection may be suppressed with the kernel parameter "raid=noautodetect". As of kernel 2.6.9, only drives with a type 0 superblock can be autodetected and run at boot time.

mem=MEMEORY_SIZE

This is a classic parameter. Force usage of a specific amount of memory to be used when the kernel is not able to see the whole system memory or for test. For example:
mem=1024M

The kernel command line is a null-terminated string currently up to 255 characters long, plus the final null. A string that is too long will be automatically truncated by the kernel, a boot loader may allow a longer command line to be passed to permit future kernels to extend this limit (H. Peter Anvin ).

Other parameters

initrd /boot/initrd.img

An initrd should be loaded. the boot process will load the kernel and an initial ramdisk; then the kernel converts initrd into a "normal" ramdisk, which is mounted read-write as root device; then /linuxrc is executed; afterwards the "real" root file system is mounted, and the initrd file system is moved over to /initrd; finally the usual boot sequence (e.g. invocation of /sbin/init) is performed. initrd is used to provide/load additional modules (device driver). For example, SCSI or RAID device driver loaded using initrd.

hdX =noprobe

Do not probe for hdX drive. For example, disable hdb hard disk:
hdb=noprobe

If you disable hdb in BIOS, Linux will still detect it. This is the only way to disable hdb.

ether=irq,iobase,[ARG1,ARG2],name

Where,

  • ether: ETHERNET DEVICES

For example, following boot argument force probing for a second Ethernet card (NIC), as the default is to only probe for one (irq=0,iobase=0 means automatically detect them).
ether=0,0,eth1

How to begin the enter parameters mode?

You need to enter all this parameter at Grub or Lilo boot prompt. For example if you are using Grub as a boot loader, at Grub prompt press 'e' to edit command before booting.

1) Select second line
2) Again, press 'e' to edit selected command
3) Type any of above parameters.

See an example of "recovering grub boot loader password", for more information. Another option is to type above parameters in grub.conf or lilo.conf file itself.

See the complete list of Linux kernel parameters i.e. /usr/src/linux/Documentation/kernel-parameters.txt file.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

1 Anonymous March 9, 2006 at 10:57 am

Hey, nice list but don’t forget

vga=ask

It will help if you have problems releated to vga card (change the startup video mode)

2 Anonymous March 9, 2006 at 9:53 pm

What maybe lack in this article is: “How to begin the enter parameters mode?”
I guess that, with knoppix, I can enter these in the ‘cheatcodes’ field, at start. But what about a regular lilo or grub boot, and typing this parameters on the fly, without put fingers into lilo.conf or menu.lst?

3 monk March 9, 2006 at 11:03 pm

>What maybe lack in this article is: “How to begin the enter parameters mode?”

Thanks, just little info added as per your suggestion :)

4 Anonymous March 23, 2006 at 7:35 pm

If lilo boot screen doesn’t come with the “boot:” prompt is possible to obtain it with the ‘shift’ key, or, in case of framebuffer enabled, ‘tab’ key.

5 Golam Kibria December 30, 2007 at 9:20 am

I want to know the details command step by step.

6 Hareesh January 1, 2008 at 3:59 am

Great,
A few more are there like apm=off, acpi=off, nodma,etc

7 Kresten Hartvig Klit January 23, 2008 at 8:53 pm

Thank you for a very distinct and clear survey at the kernel parameters. I can use that!

8 Mahnaz April 14, 2008 at 9:12 am

Hi
thank you for the usefull docs
my linux is too fast and i am beginner and need too recognize every line during system boot,how can I change the time and have enough time to see every line of system boot!!!??
Could you add this item to your helpfull site?
Thank you.

Regards
Mahnaz

9 fest3er April 26, 2008 at 8:25 pm

There are two ways to re-view boot messages. First, you can you the command ‘dmesg|less’ to see much of what appears on the console when linux boots. Second, you can ‘cd /var/log’ and look at the contents of the files. Specifically, ‘messages’, ‘daemon’ and ‘syslog’ will contain more information about what the system does during boot and during operation.

10 John May 1, 2008 at 3:36 am

So what is the option to stop it or at least prompt you during the loading of hardware drivers? my ubuntu 8 upgrade is hanging on the broadcom wireless driver. Debug/recovery mode shows me the hang…

11 cepal July 4, 2008 at 11:44 am

for disabling selinux you need to use “selinux=0″, the equal sign is “a bit” missing on your site…

12 Veerendra Jonnalagadda August 22, 2009 at 7:14 am

how does Linux handle new hardware that we found but not initialised like windows show “New Hardware Found” and also how does it handle their device ID and Vendor Ids…..
at the boot time
Regards
Veerendra Jonnalagadda

13 darkfader April 18, 2011 at 11:47 pm

it depends on the filesystem whether you can run fsck while it’s mounted r/w. some can do it[*], the majority can’t.
I don’t know what makes the technical difference which allows them to do it.

[*]most notable veritas vxfs, and to less fun extent xfs, zfs of course.

14 Brian Micek May 15, 2011 at 10:44 pm

With Redhat and Fedora Linux, the initrd filesystem might pause the system boot forever waiting for a LUKs password if any encrypted LUKs devices are detected. This could include a USB memory stick accidentally plugged into the system. The symptoms of this problem are your computer will not boot unattended which might be undesirable. You can undo this behavior with the kernel command argument: “rd_NO_LUKS”

15 Chris Peterman October 11, 2011 at 6:17 pm

One more that is useful is just “x” where x is 1-6, lets you boot to a specific runlevel

16 ZackY December 11, 2011 at 3:54 pm

Dear Linux geeks,

I am facing this problem, while i started to develop PHP websites using LAMP on Fedora15, i followed the instructions from following link:

http://tagbeep.com/doc/?page_id=118

where i skipped the point no 1, as i didnt wanted to go for a cli mode or change the runlevels, instead i skipped this
==================================================================
1. Stop x, change run level to 3
The inittab file is gone in fedora 15, we now have to remove a symlink and make a new one using:
rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
If you need X and Gnome just type – start x to go tu run level 5.

==================================================================
and continued, using GEDIT i disabled selinux:
#gedit /etc/selinux/config

setting: SELINUX=disabled

and also saw underlying WARNING that doing this could mess up with my booting, as it says in the guide:

“if you mess up selinux and the machine dosn’t boot, just press F8 at boot time and add selinux=0 to the bootloader parameters”.

i followed the same, and upon reboot, the system said, could not find policy file at location /etc/selinux/policy blah blah… (the warning comes as a fullstop on boot process and in RED COLOR.

any ways i hard rebooted pc, and upon boot pressed “f8 key on keyboard” and i got the grub boot menu, there i selected on first line of it, and added the parameter after rhgb quit (i gave a space and added) selinux=0

but still could not boot properly.

any suggestions? should i boot from INSTALL DVD and goto rescue mode and then at the same location, re-edit file back from “SELINUX=disabled” to “SELINUX=enforced”

plesae if someone encountered such scenario do share how to overcome or any one who can help???

Thnx a lot.

17 sam June 29, 2013 at 7:02 am

“name=value1,value2,value3…” is not complete description the syntax of kernel parameters; the values are optional, and separate name value pairs are separated by spaces.

Also as far as Im aware the Linux kernel does no have a command line as you imply with the section title “The kernel command line syntax”.

Please amend.

Comments on this FAQ are closed. If you'd like to continue the discussion on this topic, you can do so at our forum.

Previous post:

Next post: