Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all bug

名前

       bootparam - Linux カーネル起動時パラメーターの解説

説明

       Linux     カーネルは起動するときに「コマンドラインオプション」あるいは    「起動時パラメー
       ター」を受け付ける。  これは一般に、  カーネルには決定できないハードウェアのパラメーターを
       カーネルに渡したい場合や、  カーネルが検出するであろう値を意図的に無効にしたり変更したりす
       る場合に用いる。

       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.

   引数リスト
       The kernel command line is parsed into a list of strings  (boot  arguments)  separated  by
       spaces.  Most of the boot arguments have the form:

           name[=value_1][,value_2]...[,value_10]

       ここで  'name' は、それに対応する値がカーネルのどの部分に渡されるものなのかを 識別するため
       の、他と重ならないキーワードである。 書式中の 10 という制限は実際に存在する。 現在のコード
       は、キーワードひとつあたり、コンマで区切られたパラメーターを 10 個までしか取り扱うことがで
       きない。 (しかし、事情が非常に複雑な場合には、同じキーワードを再度利用して 10 個以上のパラ
       メーターを与えることができるかもしれない。  対象となるハードウェアの設定関数がそれをサポー
       トしていれば、だが。)

       カーネルコマンドラインの識別はほとんどがカーネルソースファイル  init/main.c   に書かれてい
       る。  最初に、カーネルは  'root=', 'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', 'init' と
       いった特別な引数があるかをチェックする。 これらの意味については後述する。

       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.

       'foo=bar' という形式の引数のうち、 上記のように設定関数に受け入れられなかったものは、 環境
       変数と解釈されて設定される。 (あまり役に立たない?) 例としては、'TERM=VT100' がある。

       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 init(1)  program.
       The most common argument that is passed to the 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 init(1)  installed on  your  system  to
       see what arguments it accepts.

   一般的な、デバイス固有ではない起動時引数
       'init=...'
              カーネルが実行する初期コマンドを設定する。 この指定がなされなかったり、指定したコマ
              ンドが見つからなかった場合には、  カーネルは  /sbin/init,   /etc/init,   /bin/init,
              /bin/sh の順で実行を試み、すべてに失敗したら panic を起こす。

       'nfsaddrs=...'
              This  sets  the NFS boot address to the given string.  This boot address is used in
              case of a net boot.

       '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.

       'root=...'
              起動時にルートファイルシステムとして使われるデバイスをカーネルに指定する。 デフォル
              トはコンパイル時に決定され、   通常はカーネルを構築したシステムのルートデバイスにな
              る。 この値を無効にして、 例えば 2 番目のフロッピーディスクドライブをルートデバイス
              に指定する場合は、 'root=/dev/fd1' とする。

              The  root  device  can  be  specified  symbolically  or  numerically.   A  symbolic
              specification has the form /dev/XXYN, where XX designates the  device  type  (e.g.,
              'hd'  for  ST-506 compatible hard disk, with Y in 'a'–'d'; 'sd' for SCSI compatible
              disk, with Y in 'a'–'e'), Y the driver letter or  number,  and  N  the  number  (in
              decimal) of the partition on this device.

              なお、これらはファイルシステム上でのデバイスの指定方法とは全く関係ない。 '/dev/' を
              用いるのは単に慣習に過ぎない。

              扱いにくいし移植性も良くないが、 上記のデバイスを major/minor  番号の数値で指定して
              もよい。 (例えば /dev/sda3 は major 番号 8、minor 番号 3 なので、 'root=0x803' と記
              述できる。)

       'rootdelay='
              このパラメーターは root ファイルシステムのマウントを行う前に停止する遅延時間  (秒単
              位) を指定する。

       'rootflags=...'
              このパラメーターは     root    ファイルシステムのマウントオプション文字列を指定する
              (fstab(5) も参照)。

       'rootfstype=...'
              'rootfstype' オプションが指定されると、 カーネルは、 指定されたタイプであるとみなし
              てルートファイルシステムをマウントする。 このオプションは、 例えば、ext3 ファイルシ
              ステムを ext2 としてマウントし、 ルートファイルシステムのジャーナルを削除する場合に
              便利である。  こうすると、  別のメディアからマシンを起動することなく ext3 から ext2
              へ戻すことができる。

       'ro''rw'
              'ro' オプションは、 ルートファイルシステムを 「読み出し専用」でマウントするようカー
              ネルに指示し、 fsck プログラムがファイルシステムの矛盾を検査できるようにする。 ファ
              イルシステムが「読み書き可能」として再マウントされる  (つまり  'mount  -w   -n   -o
              remount /') までの間は、 いかなるプロセスもこのファイルシステム上のファイルに書き込
              むことはできない。 (mount(8) も参照。)

              rw オプションはルートファイルシステムを  「読み書き可能」でマウントするようカーネル
              に指示する。 こちらがデフォルトである。

       '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:

                  resume=/dev/hda2

       'reserve=...'
              デバイスの自動検出から  I/O ポートを保護するために用いる。 コマンドの形式は以下の通
              り。

                  reserve=iobase,extent[,iobase,extent]...

              機種によっては、 デバイスドライバによるデバイスの自動検出を、  特定の範囲に対しては
              禁止しなければならないことがある。 ハードウェアが検出動作によって深刻な問題を引き起
              こす場合や、 誤認識される可能性がある場合、  また単にカーネルにハードウェアを初期化
              させたくない場合などがありうるだろう。

              この起動時引数 reserve は、自動検出の対象外とする I/O ポートの範囲を指定する。 デバ
              イスドライバは、 他の起動時引数によって明示的に指定されない限り、  予約された範囲に
              対して自動検出動作を行わない。

              例えばブート時のコマンドラインに

                  reserve=0x300,32  blah=0x300

              と指定すると、'blah' を除くすべてのデバイスドライバは 0x300 から 0x31f の範囲を自動
              検出の対象外とする。

       '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

                  echo N > /proc/sys/kernel/panic

       '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.

       'nosmp''maxcpus=N'
              (カーネルのコンパイル時に  __SMP__  が指定されたときのみ有効。)  コマンドラインオプ
              ションに 'nosmp' または 'maxcpus=0' を指定すると、 SMP (Symmetric Multi Processing)
              を完全に無効にする。 'maxcpus=N' オプションは、 SMP モードで有効にする CPU の最大数
              を N に制限する。

   カーネル開発者用の起動時引数
       'debug'
              Kernel messages are handed off to a daemon (e.g., klogd(8)   or  similar)  so  that
              they  may  be  logged to disk.  Messages with a priority above console_loglevel are
              also printed on the console.  (For a discussion of log levels, see syslog(2).)   By
              default,  console_loglevel is set to log messages at levels higher than KERN_DEBUG.
              This boot argument will cause the kernel to also print  messages  logged  at  level
              KERN_DEBUG.   The  console  loglevel  can  also  be  set on a booted system via the
              /proc/sys/kernel/printk   file   (described   in    syslog(2)),    the    syslog(2)
              SYSLOG_ACTION_CONSOLE_LEVEL operation, or dmesg(8).

       'profile=N'
              カーネルがどこで  CPU サイクルを消費しているか調べたい場合には、 カーネルのプロファ
              イリング機能を有効にすればこれを実現できる。       カーネルプロファイリングは、変数
              prof_shift    を    0   以外の値にセットすると有効になる。   この値はコンパイル時に
              CONFIG_PROFILE で指定するか、 この 'prifile=N' オプションで指定できる。  prof_shift
              の値は  N  が指定されれば N となり、N が指定されなかった場合は CONFIG_PROFILE_SHIFT
              の値が用いられる。 どちらも指定されなければデフォルト値の 2 が用いられる。 この変数
              が重要なのは、  カーネルプロファイリングの粒度を決定するところにある。 すなわち、各
              クロックの割込みごとに、システムがカーネルコードを実行していれば、 以下のようにカウ
              ンターの値がインクリメントされる。

                  profile[address >> prof_shift]++;

              生のプロファイリング情報は、 /proc/profile から見ることができるが、readprofile.c の
              ような情報を加工するツールを使ったほうが良いだろう。 /proc/profile に任意のデータを
              書込むと、 カウンターはリセットされる。

   RAM ディスク関連の起動時引数
       (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.)  In general it is a bad idea to
       use a ramdisk under Linux—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.

              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
              Documentation/blockdev/ramdisk.txt (Documentation/ramdisk.txt in older kernels).

              4 つのパラメーターがある。論理値をとるものが 2 つ、整数値をとるものが 2 つ。

       'load_ramdisk=N'
              N=1 なら RAM ディスクをロードする。N=0 ならロードしない (デフォルト)。

       'prompt_ramdisk=N'
              N=1 ならフロッピー挿入を促すプロンプトを出す (デフォルト)。 N=0  ならプロンプトを出
              さない。 (従って、このパラメーターを指定する必要はまず無いであろう。)

       'ramdisk_size=N' もしくは (古い形式の) 'ramdisk=N'
              Set the maximal size of the ramdisk(s) to N kB.  The default is 4096 (4 MB).

       'ramdisk_start=N'
              開始ブロック番号  (フロッピー先頭からのオフセットで指定した  RAM  ディスクの開始点)
              を N にセットする。 これはカーネルイメージのあとに RAM ディスクイメージを置く場合に
              必要となる。

       'noinitrd'
              (カーネルのコンパイル時に  CONFIG_BLK_DEV_RAMCONFIG_BLK_DEV_INITRD が指定されて
              いるときのみ有効。)  最近は initrd を使用するようにカーネルをコンパイルできる。  こ
              のオプションが指定されると、  ブートプロセスはカーネルと  RAM  ディスクをロードし、
              カーネルは initrd を「普通の」 RAM ディスクに変換し、 この RAM ディスクがルートデバ
              イスとして「読み書き可能」でマウントされる。  次に /linuxrc が実行される。 その後「
              真の」ルートファイルシステムがマウントされ、 initrd ファイルシステムは /initrd に移
              される。 最後に通常のブートシーケンス (具体的には /sbin/init の呼び出し) が実行され
              る。

              For a detailed description of the  initrd  feature,  see  the  kernel  source  file
              Documentation/admin-guide/initrd.rst   (or  Documentation/initrd.txt  before  Linux
              4.10).

              'noinitrd' オプションを用いると、 カーネルは (initrd 動作を行うようにコンパイルされ
              ている場合でも)  上記の動作を行なわず、代わりに  initrd のデータを /dev/initrd に残
              す。 (このデバイスは一度しか使えない。 データは、そのデータを使った最後のプロセスが
              /dev/initrd をクローズするとすぐに解放される。)

   SCSI デバイス用の起動時引数
       この節における用語:

       iobase -- SCSI ホストアダプターが占有する I/O ポートの先頭アドレス。 16 進表記で指定し、通
       常 0x200 から 0x3ff の範囲に位置する。

       irq -- カードが利用するハードウェア割り込み。有効な値はカードに よって異なるが、通常は  5,
       7,  9, 10, 11, 12, 15 である。 これ以外の値は通常、IDE ハードディスク、フロッピー、 シリア
       ルポートといった一般的な周辺機器によって使用される。

       scsi-id -- SCSI バス上のホストアダプターが自分自身を識別するために使用する ID 番号。  この
       値を変更できるホストアダプターもごく希に存在するが、  ほとんどはアダプター内部で固定されて
       いる。 よく使われるデフォルト値は 7 であるが、Seagate もしくは Future Domain 製の  TMC-950
       ボードでは 6 が使われる。

       parity -- SCSI ホストアダプターが取り付けられたデバイスとの通信に際して パリティ値を必要と
       するかどうか。 1 を指定するとパリティチェックが有効になり、 0 でパリティチェックが無効にな
       る。 しかし、すべてのデバイスがこの起動時引数によるパリティの選択を サポートするわけではな
       い。

       'max_scsi_luns=...'
              SCSI デバイスは複数の「サブデバイス」を自分自身の内部に持つことができる。  最もよく
              ある例として、一時に  1  枚以上のディスクを扱うことができる  (チェンジャー機能付の)
              SCSI CD-ROM がある。 それぞれの CD  はそのデバイスの  「論理ユニット番号  (LUN)」に
              よって特定される。  しかしほとんどのデバイス (例えばハードディスクやテープドライブ)
              は、 LUN 番号 0 が割り当てられた、ただひとつのデバイスからなる。

              設計が不十分な SCSI デバイスでは 0 以外の LUN  番号への自動検出を  扱えないことがあ
              る。  したがって、コンパイル時に CONFIG_SCSI_MULTI_LUN オプションが指定されていない
              と、 最近のカーネルではデフォルトでは LUN 番号 0 のみを検出する。

              起動時に調べる LUN 番号を指定する場合、起動時引数として 'max_scsi_luns=n'  を指定す
              る。n  は 1 から 8 の間で指定する。 n=1 以上の値を使用しないようにすれば、 このよう
              ないかれた機械にひどい目にあわされずにすむだろう。

       SCSI テープドライブの設定
              SCSI テープドライバの起動時設定の一部は以下のようにして行なうことができる。

                  st=buf_size[,write_threshold[,max_bufs]]

              The first two numbers are specified in units of kB.  The default buf_size is 32k B,
              and  the  maximum  size  that  can  be  specified  is  a  ridiculous 16384 kB.  The
              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:

                  st=32,30,2

              詳細は  Linux  カーネルソース内の  Documentation/scsi/st.txt  (古いカーネルの場合は
              drivers/scsi/README.st) に書かれている。

   ハードディスク
       IDE Disk/CD-ROM ドライバのパラメーター
              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'–'h'.

              あるドライブに特有なものではないオプションは、hd= を前に付けて指定する。 ドライブ特
              有でないオプションに対してドライブ指定 ('hdX=')  を前置しても問題はない。  そのオプ
              ションは期待通りそのドライブに適用される。

              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 Documentation/ide/ide.txt (or Documentation/ide.txt in
              older kernels, or drivers/block/README.ide in ancient kernels) in the Linux  kernel
              source for more details.

       'hd=cyls,heads,sects[,wpcom[,irq]]' オプション
              これらのオプションはディスクの物理的なジオメトリを指定するために使う。  最初の 3 つ
              の値以降は省略できる。 シリンダ  (cyls)、ヘッド  (heads)、セクタ  (sects)  の各値は
              fdisk で用いられるものと同じである。 書き込み補正 (wpcom) 値は IDE ディスクでは無視
              される。 IRQ 値には、そのドライブが接続されているインターフェースが用いる IRQ  を指
              定する (本来の意味では「ドライブに特有」のパラメーターではない)。

       'hd=serialize' オプション
              デュアル IDE インターフェースである CMD-640 チップには設計上の問題があって、 セカン
              ダリインターフェース上のドライブと プライマリインターフェース上のドライブを  同時に
              使用するとデータが破壊されることがある。  このオプションを使用すると、 ドライバは両
              方のインターフェースが 同時に使用されることが絶対にないようにする。

       'hd=noprobe' オプション
              このドライブの自動検出をしない。 例えば

                  hdb=noprobe hdb=1166,7,17

              とすると自動検出が無効になる。 しかしドライブのジオメトリを指定しているので、  この
              ドライブは正しいブロックデバイスとして登録され、使用可能になる。

       'hd=nowerr' オプション
              ドライブによっては、書き込みエラー (WRERR_STAT)  ビットがクリアできなくなることがあ
              る。 このオプションを指定すると、  このような壊れたデバイスに対する回避機能が有効に
              なる。

       'hd=cdrom' オプション
              このオプションは、通常の IDE ハードディスクの代わりに、 ATAPI 互換の CDROM が続され
              ていることを IDE ドライバに伝える。 CD-ROM はたいてい自動的に認識されるが、  うまく
              行かない場合に試してみると良い。

       スタンダード ST-506 ディスクドライバのオプション ('hd=')
              スタンダードディスクドライバは IDE ドライバと同様のジオメトリ指定を引数にとることが
              できる。 ただし受け付ける値はちょうど 3 つ (C/H/S) に限られる。  それ以上の値やそれ
              以下の値を指定すると、ドライバは黙ってその指定を無視する。 また引数として受け入れら
              れるのは 'hd=' の形式だけである。 つまり 'hda='  のような指定はここでは正しくない。
              書式は次の通り。

                  hd=cyls,heads,sects

              2 台のディスクが接続されてい場合は、 2 番目のディスクに対しても上記のジオメトリが設
              定される。

   イーサネットデバイス
       ドライバが異なると用いるパラメーターも異なるが、  すべてのドライバは、少なくとも割り込み番
       号  (irq)、 I/O ポートのベースアドレス (iobase)、名前 (name) を持つ。 最も一般的な形式は以
       下の通り。

           ether=irq,iobase[,param_1[,...param_8]],name

       最初の数字でない値は名前として使用される。 param_n の値はカード (ドライバ)  ごとに異なる意
       味を持つ。 よくある目的は、共有メモリーアドレスの指定、インターフェースの選択、 DMA チャネ
       ルなどである。

       このパラメーターの最もよくある利用法は、 2 番目の Ethernet  カードを強制的に検出させる場合
       である (デフォルトでは 1 枚しか検出しない)。 これは簡単で、次のようにすればよい。

           ether=0,0,eth1

       この例で IRQ と I/O ベースアドレスに 0 を指定しているのは、 ドライバに自動検出をするよう伝
       えているのである。

       Ethernet-HOWTO では、複数のカードを使うやり方や、 カードやドライバに特有の param_n  値の意
       味について、  ずっと詳細に解説されている。  興味を持った読者は、この文書にあたり、  自分の
       カードに関して書かれているセクションを参照すると良い。

   フロッピーディスクドライバ
       There   are   many   floppy   driver   options,   and   they    are    all    listed    in
       Documentation/blockdev/floppy.txt   (or  Documentation/floppy.txt  in  older  kernels,  or
       drivers/block/README.fd for ancient kernels) in the Linux kernel source.   See  that  file
       for the details.

   サウンドドライバ
       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   Documentation/sound/oss/README.OSS   (drivers/sound/Readme.linux  in  older  kernel
       versions).  It accepts a boot argument of the form:

           sound=device1[,device2[,device3...[,device10]]]

       各 deviceN はそれぞれ 0xTaaaId という形式で指定する。 各バイトの意味は以下の通り。

       T - デバイスのタイプ: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401

       aaa - I/O ポートアドレス (16進値)

       I - interrupt line in hex (i.e., 10=a, 11=b, ...)

       d - DMA チャネル

       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.

   ラインプリンタドライバ
       'lp='
              構文は以下の通り。

                  lp=0
                  lp=auto
                  lp=reset
                  lp=port[,port...]

              プリンタドライバには、どのポートを使うか、 どのポートを使ってはいけないかを伝えるこ
              とができる。  後者は、 利用可能なあらゆるパラレルポートをプリンタドライバが要求しな
              いようにして、 他のドライバ (PLIP や PPA など) から  それらを使えるようにしたい場合
              に便利である。

              引数の書式は、複数のポート名である。  例えば lp=none,parport0 とすると、 最初のパラ
              レルポートを lp1 として使い、 lp0  は無効にする。プリンタードライバを完全に無効にす
              るには lp=0 とすればよい。

関連項目

       klogd(8), mount(8)

       For       up-to-date      information,      see      the      kernel      source      file
       Documentation/admin-guide/kernel-parameters.txt.

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。