summaryrefslogtreecommitdiffstats
path: root/man7/bootparam.7
diff options
context:
space:
mode:
Diffstat (limited to 'man7/bootparam.7')
-rw-r--r--man7/bootparam.7664
1 files changed, 0 insertions, 664 deletions
diff --git a/man7/bootparam.7 b/man7/bootparam.7
deleted file mode 100644
index f9d3c10..0000000
--- a/man7/bootparam.7
+++ /dev/null
@@ -1,664 +0,0 @@
-.\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer
-.\"
-.\" SPDX-License-Identifier: GPL-2.0-or-later
-.\"
-.\" This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO
-.\" (dated v1.0.1, 15/08/95).
-.\" Major update, aeb, 970114.
-.\"
-.TH bootparam 7 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-bootparam \- introduction to boot time parameters of the Linux kernel
-.SH DESCRIPTION
-The Linux kernel accepts certain 'command-line options' or 'boot time
-parameters' at the moment it is started.
-In general, this is used to
-supply the kernel with information about hardware parameters that
-the kernel would not be able to determine on its own, or to avoid/override
-the values that the kernel would otherwise detect.
-.P
-When the kernel is booted directly by the BIOS,
-you have no opportunity to specify any parameters.
-So, in order to take advantage of this possibility you have to
-use a boot loader that is able to pass parameters, such as GRUB.
-.SS The argument list
-The kernel command line is parsed into a list of strings
-(boot arguments) separated by spaces.
-Most of the boot arguments have the form:
-.P
-.in +4n
-.EX
-name[=value_1][,value_2]...[,value_10]
-.EE
-.in
-.P
-where 'name' is a unique keyword that is used to identify what part of
-the kernel the associated values (if any) are to be given to.
-Note the limit of 10 is real, as the present code handles only 10 comma
-separated parameters per keyword.
-(However, you can reuse the same
-keyword with up to an additional 10 parameters in unusually
-complicated situations, assuming the setup function supports it.)
-.P
-Most of the sorting is coded in the kernel source file
-.IR init/main.c .
-First, the kernel
-checks to see if the argument is any of the special arguments 'root=',
-\&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', or 'init'.
-The meaning of these special arguments is described below.
-.P
-Then it walks a list of setup functions
-to see if the specified argument string (such as 'foo') has
-been associated with a setup function ('foo_setup()') for a particular
-device or part of the kernel.
-If you passed the kernel the line
-foo=3,4,5,6 then the kernel would search the bootsetups array to see
-if 'foo' was registered.
-If it was, then it would call the setup
-function associated with 'foo' (foo_setup()) and hand it the arguments
-3, 4, 5, and 6 as given on the kernel command line.
-.P
-Anything of the form 'foo=bar' that is not accepted as a setup function
-as described above is then interpreted as an environment variable to
-be set.
-A (useless?) example would be to use 'TERM=vt100' as a boot
-argument.
-.P
-Any remaining arguments that were not picked up by the kernel and were
-not interpreted as environment variables are then passed onto PID 1,
-which is usually the
-.BR init (1)
-program.
-The most common argument that
-is passed to the
-.I init
-process is the word 'single' which instructs it
-to boot the computer in single user mode, and not launch all the usual
-daemons.
-Check the manual page for the version of
-.BR init (1)
-installed on
-your system to see what arguments it accepts.
-.SS General non-device-specific boot arguments
-.TP
-.B "'init=...'"
-This sets the initial command to be executed by the kernel.
-If this is not set, or cannot be found, the kernel will try
-.IR /sbin/init ,
-then
-.IR /etc/init ,
-then
-.IR /bin/init ,
-then
-.I /bin/sh
-and panic if all of this fails.
-.TP
-.B "'nfsaddrs=...'"
-This sets the NFS boot address to the given string.
-This boot address is used in case of a net boot.
-.TP
-.B "'nfsroot=...'"
-This sets the NFS root name to the given string.
-If this string
-does not begin with '/' or ',' or a digit, then it is prefixed by
-\&'/tftpboot/'.
-This root name is used in case of a net boot.
-.TP
-.B "'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 would
-use 'root=/dev/fd1'.
-.IP
-The root device can be specified symbolically or numerically.
-A symbolic specification has the form
-.IR /dev/XXYN ,
-where XX designates
-the device type (e.g., 'hd' for ST-506 compatible hard disk, with Y in
-\&'a'\[en]'d'; 'sd' for SCSI compatible disk, with Y in 'a'\[en]'e'),
-Y the driver letter or
-number, and N the number (in decimal) of the partition on this device.
-.IP
-Note that this has nothing to do with the designation of these
-devices on your filesystem.
-The '/dev/' part is purely conventional.
-.IP
-The more awkward and less portable numeric specification of the above
-possible root devices in major/minor format is also accepted.
-(For example,
-.I /dev/sda3
-is major 8, minor 3, so you could use 'root=0x803' as an
-alternative.)
-.TP
-.B 'rootdelay='
-This parameter sets the delay (in seconds) to pause before attempting
-to mount the root filesystem.
-.TP
-.B 'rootflags=...'
-This parameter sets the mount option string for the root filesystem
-(see also
-.BR fstab (5)).
-.TP
-.B 'rootfstype=...'
-The 'rootfstype' option tells the kernel to mount the root filesystem as
-if it where of the type specified.
-This can be useful (for example) to
-mount an ext3 filesystem as ext2 and then remove the journal in the root
-filesystem, in fact reverting its format from ext3 to ext2 without the
-need to boot the box from alternate media.
-.TP
-.BR 'ro' " and " 'rw'
-The 'ro' option tells the kernel to mount the root filesystem
-as 'read-only' so that filesystem consistency check programs (fsck)
-can do their work on a quiescent filesystem.
-No processes can
-write to files on the filesystem in question until it is 'remounted'
-as read/write capable, for example, by 'mount \-w \-n \-o remount /'.
-(See also
-.BR mount (8).)
-.IP
-The 'rw' option tells the kernel to mount the root filesystem read/write.
-This is the default.
-.TP
-.B "'resume=...'"
-This tells the kernel the location of
-the suspend-to-disk data that you want the machine to resume from
-after hibernation.
-Usually, it is the same as your swap partition or file.
-Example:
-.IP
-.in +4n
-.EX
-resume=/dev/hda2
-.EE
-.in
-.TP
-.B "'reserve=...'"
-This is used to protect I/O port regions from probes.
-The form of the command is:
-.IP
-.in +4n
-.EX
-.BI reserve= iobase,extent[,iobase,extent]...
-.EE
-.in
-.IP
-In some machines it may 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, or hardware
-that would be mistakenly identified, or merely
-hardware you don't want the kernel to initialize.
-.IP
-The reserve boot-time argument specifies an I/O port region that
-shouldn't be probed.
-A device driver will not probe a reserved region,
-unless another boot argument explicitly specifies that it do so.
-.IP
-For example, the boot line
-.IP
-.in +4n
-.EX
-reserve=0x300,32 blah=0x300
-.EE
-.in
-.IP
-keeps all device drivers except the driver for 'blah' from probing
-0x300\-0x31f.
-.TP
-.B "'panic=N'"
-By default, the kernel will not reboot after a panic, but this option
-will cause a kernel reboot after N seconds (if N is greater than zero).
-This panic timeout can also be set by
-.IP
-.in +4n
-.EX
-echo N > /proc/sys/kernel/panic
-.EE
-.in
-.TP
-.B "'reboot=[warm|cold][,[bios|hard]]'"
-Since Linux 2.0.22, a reboot is by default a cold reboot.
-One asks for the old default with 'reboot=warm'.
-(A cold reboot may be required to reset certain hardware,
-but might destroy not yet written data in a disk cache.
-A warm reboot may be faster.)
-By default, a reboot is hard, by asking the keyboard controller
-to pulse the reset line low, but there is at least one type
-of motherboard where that doesn't work.
-The option 'reboot=bios' will
-instead jump through the BIOS.
-.TP
-.BR 'nosmp' " and " 'maxcpus=N'
-(Only when __SMP__ is defined.)
-A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP
-activation entirely; an option 'maxcpus=N' limits the maximum number
-of CPUs activated in SMP mode to N.
-.SS Boot arguments for use by kernel developers
-.TP
-.B "'debug'"
-Kernel messages are handed off to a daemon (e.g.,
-.BR klogd (8)
-or similar) so that they may be logged to disk.
-Messages with a priority above
-.I console_loglevel
-are also printed on the console.
-(For a discussion of log levels, see
-.BR syslog (2).)
-By default,
-.I console_loglevel
-is set to log messages at levels higher than
-.BR KERN_DEBUG .
-This boot argument will cause the kernel to also
-print messages logged at level
-.BR KERN_DEBUG .
-The console loglevel can also be set on a booted system via the
-.I /proc/sys/kernel/printk
-file (described in
-.BR syslog (2)),
-the
-.BR syslog (2)
-.B SYSLOG_ACTION_CONSOLE_LEVEL
-operation, or
-.BR dmesg (8).
-.TP
-.B "'profile=N'"
-It is possible to enable a kernel profiling function,
-if one wishes to find out where the kernel is spending its CPU cycles.
-Profiling is enabled by setting the variable
-.I prof_shift
-to a nonzero value.
-This is done either by specifying
-.B CONFIG_PROFILE
-at compile time, or by giving the 'profile=' option.
-Now the value that
-.I prof_shift
-gets will be N, when given, or
-.BR CONFIG_PROFILE_SHIFT ,
-when that is given, or 2, the default.
-The significance of this variable is that it
-gives the granularity of the profiling: each clock tick, if the
-system was executing kernel code, a counter is incremented:
-.IP
-.in +4n
-.EX
-profile[address >> prof_shift]++;
-.EE
-.in
-.IP
-The raw profiling information can be read from
-.IR /proc/profile .
-Probably you'll want to use a tool such as readprofile.c to digest it.
-Writing to
-.I /proc/profile
-will clear the counters.
-.SS Boot arguments for ramdisk use
-(Only if the kernel was compiled with
-.BR CONFIG_BLK_DEV_RAM .)
-In general it is a bad idea to use a ramdisk under Linux\[em]the
-system will use available memory more efficiently itself.
-But while booting,
-it is often useful to load the floppy contents into a
-ramdisk.
-One might also have a system in which first
-some modules (for filesystem or hardware) must be loaded
-before the main disk can be accessed.
-.IP
-In Linux 1.3.48, ramdisk handling was changed drastically.
-Earlier, the memory was allocated statically, and there was
-a 'ramdisk=N' parameter to tell its size.
-(This could also be set in the kernel image at compile time.)
-These days ram disks use the buffer cache, and grow dynamically.
-For a lot of information on the current ramdisk
-setup, see the kernel source file
-.I Documentation/blockdev/ramdisk.txt
-.RI ( Documentation/ramdisk.txt
-in older kernels).
-.IP
-There are four parameters, two boolean and two integral.
-.TP
-.B "'load_ramdisk=N'"
-If N=1, do load a ramdisk.
-If N=0, do not load a ramdisk.
-(This is the default.)
-.TP
-.B "'prompt_ramdisk=N'"
-If N=1, do prompt for insertion of the floppy.
-(This is the default.)
-If N=0, do not prompt.
-(Thus, this parameter is never needed.)
-.TP
-.BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N'
-Set the maximal size of the ramdisk(s) to N kB.
-The default is 4096 (4\ MB).
-.TP
-.B "'ramdisk_start=N'"
-Sets the starting block number (the offset on the floppy where
-the ramdisk starts) to N.
-This is needed in case the ramdisk follows a kernel image.
-.TP
-.B "'noinitrd'"
-(Only if the kernel was compiled with
-.B CONFIG_BLK_DEV_RAM
-and
-.BR CONFIG_BLK_DEV_INITRD .)
-These days it is possible to compile the kernel to use initrd.
-When this feature is enabled, 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
-.I /linuxrc
-is executed; afterward the "real" root filesystem is mounted,
-and the initrd filesystem is moved over to
-.IR /initrd ;
-finally
-the usual boot sequence (e.g., invocation of
-.IR /sbin/init )
-is performed.
-.IP
-For a detailed description of the initrd feature, see the kernel source file
-.I Documentation/admin\-guide/initrd.rst
-.\" commit 9d85025b0418163fae079c9ba8f8445212de8568
-(or
-.I Documentation/initrd.txt
-before Linux 4.10).
-.IP
-The 'noinitrd' option tells the kernel that although it was compiled for
-operation with initrd, it should not go through the above steps, but
-leave the initrd data under
-.IR /dev/initrd .
-(This device can be used only once: the data is freed as soon as
-the last process that used it has closed
-.IR /dev/initrd .)
-.SS Boot arguments for SCSI devices
-General notation for this section:
-.P
-.I iobase
--- the 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.
-.P
-.I irq
--- the hardware interrupt that the card is configured to use.
-Valid values will be dependent on the card in question, but will
-usually be 5, 7, 9, 10, 11, 12, and 15.
-The other values are usually
-used for common peripherals like IDE hard disks, floppies, serial
-ports, and so on.
-.P
-.I scsi\-id
--- the ID that the host adapter uses to identify itself on the
-SCSI bus.
-Only some host adapters allow you to change this value, as
-most have it permanently specified internally.
-The usual default value
-is 7, but the Seagate and Future Domain TMC-950 boards use 6.
-.P
-.I parity
--- whether the SCSI host adapter expects the attached devices
-to supply a parity value with all information exchanges.
-Specifying a one indicates parity checking is enabled,
-and a zero disables parity checking.
-Again, not all adapters will support selection of parity
-behavior as a boot argument.
-.TP
-.B "'max_scsi_luns=...'"
-A SCSI device can have a number of 'subdevices' contained within
-itself.
-The most common example is one of the new SCSI CD-ROMs that
-handle more than one disk at a time.
-Each CD is addressed as a
-\&'Logical Unit Number' (LUN) of that particular device.
-But most
-devices, such as hard disks, tape drives, and such are only one device,
-and will be assigned to LUN zero.
-.IP
-Some poorly designed SCSI devices cannot handle being probed for
-LUNs not equal to zero.
-Therefore, if the compile-time flag
-.B CONFIG_SCSI_MULTI_LUN
-is not set, newer kernels will by default probe only LUN zero.
-.IP
-To specify the number of probed LUNs at boot, one enters
-\&'max_scsi_luns=n' as a boot arg, where n is a number between one and
-eight.
-To avoid problems as described above, one would use n=1 to
-avoid upsetting such broken devices.
-.TP
-.B "SCSI tape configuration"
-Some boot time configuration of the SCSI tape driver can be achieved
-by using the following:
-.IP
-.in +4n
-.EX
-.BI st= buf_size[,write_threshold[,max_bufs]]
-.EE
-.in
-.IP
-The first two numbers are specified in units of kB.
-The default
-.I buf_size
-is 32k\ B, and the maximum size that can be specified is a
-ridiculous 16384\ kB.
-The
-.I write_threshold
-is the value at which the buffer is committed to tape, with a
-default value of 30\ kB.
-The maximum number of buffers varies
-with the number of drives detected, and has a default of two.
-An example usage would be:
-.IP
-.in +4n
-.EX
-st=32,30,2
-.EE
-.in
-.IP
-Full details can be found in the file
-.I Documentation/scsi/st.txt
-(or
-.I drivers/scsi/README.st
-for older kernels) in the Linux kernel source.
-.SS Hard disks
-.TP
-.B "IDE Disk/CD-ROM Driver Parameters"
-The IDE driver accepts a number of parameters, which range from disk
-geometry specifications, to support for broken controller chips.
-Drive-specific options are specified by using 'hdX=' with X in 'a'\[en]'h'.
-.IP
-Non-drive-specific options are specified with the prefix 'hd='.
-Note that using a drive-specific prefix for a non-drive-specific option
-will still work, and the option will just be applied as expected.
-.IP
-Also note that 'hd=' can be used to refer to the next unspecified
-drive in the (a, ..., h) sequence.
-For the following discussions,
-the 'hd=' option will be cited for brevity.
-See the file
-.I Documentation/ide/ide.txt
-(or
-.I Documentation/ide.txt
-.\" Linux 2.0, 2.2, 2.4
-in older kernels, or
-.I drivers/block/README.ide
-in ancient kernels) in the Linux kernel source for more details.
-.TP
-.B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options"
-These options are used to specify the physical geometry of the disk.
-Only the first three values are required.
-The cylinder/head/sectors
-values will be those used by fdisk.
-The write precompensation value
-is ignored for IDE disks.
-The IRQ value specified will be the IRQ
-used for the interface that the drive resides on, and is not really a
-drive-specific parameter.
-.TP
-.B "The 'hd=serialize' option"
-The dual IDE interface CMD-640 chip is broken as designed such that
-when drives on the secondary interface are used at the same time as
-drives on the primary interface, it will corrupt your data.
-Using this
-option tells the driver to make sure that both interfaces are never
-used at the same time.
-.TP
-.B "The 'hd=noprobe' option"
-Do not probe for this drive.
-For example,
-.IP
-.in +4n
-.EX
-hdb=noprobe hdb=1166,7,17
-.EE
-.in
-.IP
-would disable the probe, but still specify the drive geometry so
-that it would be registered as a valid block device, and hence
-usable.
-.TP
-.B "The 'hd=nowerr' option"
-Some drives apparently have the
-.B WRERR_STAT
-bit stuck on permanently.
-This enables a work-around for these broken devices.
-.TP
-.B "The 'hd=cdrom' option"
-This tells the IDE driver that there is an ATAPI compatible CD-ROM
-attached in place of a normal IDE hard disk.
-In most cases the CD-ROM
-is identified automatically, but if it isn't then this may help.
-.TP
-.B "Standard ST-506 Disk Driver Options ('hd=')"
-The standard disk driver can accept geometry arguments for the disks
-similar to the IDE driver.
-Note however that it expects only three
-values (C/H/S); any more or any less and it will silently ignore you.
-Also, it accepts only 'hd=' as an argument, that is, 'hda='
-and so on are not valid here.
-The format is as follows:
-.IP
-.in +4n
-.EX
-hd=cyls,heads,sects
-.EE
-.in
-.IP
-If there are two disks installed, the above is repeated with the
-geometry parameters of the second disk.
-.SS Ethernet devices
-Different drivers make use of different parameters, but they all at
-least share having an IRQ, an I/O port base value, and a name.
-In its most generic form, it looks something like this:
-.P
-.in +4n
-.EX
-ether=irq,iobase[,param_1[,...param_8]],name
-.EE
-.in
-.P
-The first nonnumeric argument is taken as the name.
-The param_n values (if applicable) usually have different meanings for each
-different card/driver.
-Typical param_n values are used to specify
-things like shared memory address, interface selection, DMA channel
-and the like.
-.P
-The most common use of this parameter is to force probing for a second
-ethercard, as the default is to probe only for one.
-This can be accomplished with a simple:
-.P
-.in +4n
-.EX
-ether=0,0,eth1
-.EE
-.in
-.P
-Note that the values of zero for the IRQ and I/O base in the above
-example tell the driver(s) to autoprobe.
-.P
-The Ethernet-HowTo has extensive documentation on using multiple
-cards and on the card/driver-specific implementation
-of the param_n values where used.
-Interested readers should refer to
-the section in that document on their particular card.
-.SS The floppy disk driver
-There are many floppy driver options, and they are all listed in
-.I Documentation/blockdev/floppy.txt
-(or
-.I Documentation/floppy.txt
-in older kernels, or
-.I drivers/block/README.fd
-for ancient kernels) in the Linux kernel source.
-See that file for the details.
-.SS The sound driver
-The sound driver can also accept boot arguments to override the compiled-in
-values.
-This is not recommended, as it is rather complex.
-It is described in the Linux kernel source file
-.I Documentation/sound/oss/README.OSS
-.RI ( drivers/sound/Readme.linux
-in older kernel versions).
-It accepts
-a boot argument of the form:
-.P
-.in +4n
-.EX
-sound=device1[,device2[,device3...[,device10]]]
-.EE
-.in
-.P
-where each deviceN value is of the following format 0xTaaaId and the
-bytes are used as follows:
-.P
-T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
-7=SB16-MPU401
-.P
-aaa \- I/O address in hex.
-.P
-I \- interrupt line in hex (i.e., 10=a, 11=b, ...)
-.P
-d \- DMA channel.
-.P
-As you can see, it gets pretty messy, and you are better off to compile
-in your own personal values as recommended.
-Using a boot argument of
-\&'sound=0' will disable the sound driver entirely.
-.SS The line printer driver
-.TP
-.B "'lp='"
-.br
-Syntax:
-.IP
-.in +4n
-.EX
-lp=0
-lp=auto
-lp=reset
-lp=port[,port...]
-.EE
-.in
-.IP
-You can tell the printer driver what ports to use and what ports not
-to use.
-The latter comes in handy if you don't want the printer driver
-to claim all available parallel ports, so that other drivers
-(e.g., PLIP, PPA) can use them instead.
-.IP
-The format of the argument is multiple port names.
-For example,
-lp=none,parport0 would use the first parallel port for lp1, and
-disable lp0.
-To disable the printer driver entirely, one can use
-lp=0.
-.\" .SH AUTHORS
-.\" Linus Torvalds (and many others)
-.SH SEE ALSO
-.BR klogd (8),
-.BR mount (8)
-.P
-For up-to-date information, see the kernel source file
-.IR Documentation/admin\-guide/kernel\-parameters.txt .