diff options
Diffstat (limited to 'man7/bootparam.7')
-rw-r--r-- | man7/bootparam.7 | 664 |
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 . |