-->
Page 1217
Any remaining arguments that were not picked up by the kernel and were not interpreted as environment variables are then passed onto process one, which is usually the init program. 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. Check the manual page for the version of init installed on your system to see what arguments it accepts.
GENERAL NON-DEVICE-SPECIFIC BOOT ARGS
no387
Some i387 coprocessor chips have bugs that show up when used in 32-bit protected mode.
For example, some of the early ULSI-387 chips cause solid lockups while performing floating-point calculations. Using the `no387' boot arg causes Linux to ignore the maths coprocessor even if you have one. Of course, you must then have your kernel compiled with math emulation support!
no-hlt
Some of the early i486DX-100 chips have a problem with the
hlt instruction in that they can't reliably return to
operating mode after this instruction is used. Using the
`no-hlt' instruction tells Linux to just run an infinite loop when there
is nothing else to do and to not halt the CPU. This allows people with these broken chips to use Linux.
root=...
This argument tells the kernel what device is to be used as the root filesystem while booting. The default of this setting
is determined at compile time and usually is the value of the root device of the system that the kernel was built on. To
override this value and select the second floppy drive as the root device, one uses
`root=/dev/fd1'. (The root device can also be set using
rdev(8).)
The root device can be specified symbolically or numerically. A symbolic specification has the form /dev/XXYN, where XX designates the device type (hd for ST-506-compatible hard disk with Y in a-h; sd for SCSI-compatible disk with Y in a-e; xd for XT-compatible disk with Y either a or b; fd for floppy disk with Y the floppy drive numberfd0 is the DOS A: drive and fd1 is B:), Y is the driver letter or number, and N is the number of the partition on this device (absent in the case of floppies).
Note that this has nothing to do with the designation of these devices on your filesystem. The /dev/ part is purely conventional.
The more awkward and less portable numeric specification of the previous possible root devices in major/minor format is also accepted. (For example, /dev/sda3 is major 8, minor 3, so you can use root=0x803 as an alternative.)
ro and rw
The ro option tells the kernel to mount the root filesystem as readonly so that filesystem consistency check programs (fsck) can do their work on a quiescent file system. No processes can write to files on the filesystem in question until it is remounted as read/write capable, such as by mount -w -n -o remount /. (See also mount(8).)
The rw option tells the kernel to mount the root filesystem read/write. This is the default.
The choice between read-only and read/write can also be set usingrdev(8).
debug
Kernel messages are handed off to the kernel log daemon klogd so that they can be logged to disk. Messages with a priority above console_loglevel are also printed on the console. (For these levels, see <linux/kernel.h>.) By default, this variable is set to log anything more important than debug messages. This boot argument causes the kernel to also print the messages of DEBUG priority. The console log level can also be set at runtime via an option to klogd. See klogd(8).
reserve=...
This is used to protect I/O port regions from probes. The form of the command is
reserve=iobase,extent[,iobase,extent]...
Page 1218
In some machines, it might be necessary to prevent device drivers from checking for devices (auto-probing) in a specific region. This may be because of hardware that reacts badly to the probing, hardware that would be mistakenly identified, or hardware you don't want the kernel to initialize.
The reserve boot-time argument specifies an I/O port region that shouldn't be probed. A device driver does not probe a reserved region unless another boot argument explicitly specifies that it do so.
For example, the boot line
reserve=0x300,32 blah=0x300
keeps all device drivers except the driver for blah from probing 0x300-0x31f.
ramdisk=...
This option is obsolete since Linux 1.3.48 or so. It specifies the size in kilobytes of the optional RAM disk device. For example, if one wants to have a root filesystem on a 1.44MB floppy loaded into the RAM disk device, they use
ramdisk=1440
This option is set at compile time (default is no RAM disk), and can be modified using rdev(8).
mem=...
The BIOS call defined in the PC specification that returns the amount of installed memory was only designed to be able to report up to 64MB. Linux uses this BIOS call at boot to determine how much memory is installed. If you have more than 64MB of RAM installed, you can use this boot arg to tell Linux how much memory you have. The value is in decimal or hexadecimal (prefix 0x), and the suffixes K (times 1024) or M (times 1048576) can be used. The following quote from Linus describes the use of the mem= parameter:
"The kernel will accept any mem=xx parameter you give it, and if it turns out that you lied to it, it will crash horribly sooner or later. The parameter indicates the highest addressable RAM address, so `mem=0x1000000' means you have 16MB of memory, for example. For a 96MB machine this would be mem=0x6000000.
NOTE
Some machines might use the top of memory for BIOS caching or whatever, so you might not actually have up to the full 96MB addressable. The reverse is also true: Some chipsets will map the physical memory that is covered by the BIOS area into the area just past the top of memory, so the top-of-mem might actually be 96MB + 384KB, for example. If you tell Linux that it has more memory than it actually does have, bad things will happen: maybe not at once, but surely eventually."
reboot=warm
Since 2.0.22, a reboot is by default a cold reboot. This command-line option changes back to the old default, a warm reboot.
BOOT ARGUMENTS FOR SCSI DEVICES
General notation for this section:
iobasethe first I/O port that the SCSI host occupies. These are specified in hexadecimal notation and usually lie in the range from 0x200 to 0x3ff.
irqthe hardware interrupt that the card is configured to use. Valid values are dependent on the card in question but are usually 5, 7, 9, 10, 11, 12, and 15. The other values are usually used for common peripherals such as IDE hard disks, floppies, serial ports, and so on.
scsi-idthe ID that the host adapter uses to identify itself on the SCSI bus. Only some host adapters allow you to change this value because most have it permanently specified internally. The usual default value is 7, but the Seagate and Future Domain TMC-950 boards use 6.
paritywhether the SCSI host adapter expects the attached devices to supply a parity value with all information exchanges. Specifying a 1 indicates parity checking is enabled, and a 0 disables parity checking. Again, not all adapters support selection of parity behavior as a boot argument.