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/ に書かれている。

Linux                                              2017-09-15                                       BOOTPARAM(7)