Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxオペレーティングシステムのカーネル起動パラメータの詳細分析

Linuxオペレーティングシステムのカーネル起動パラメータの詳細分析

  
Linuxカーネルは、起動時に特定のコマンドラインオプションまたは起動パラメータを受け取ることがあります。カーネルは、ハードウェアのいくつかは、さらにパラメータを設定することはできませんか、いくつかのパラメータのハードウェアのカーネルの変更値を避けるために認識されない場合は、これらのパラメータは、このように手動でカーネルに渡すことができます。 CP zImageのは/dev /fd0と'
あなたは、このようなBIOSまたは直接カーネルとファイル&'からと、スタートアップマネージャを使用していない場合は、デバイスから直接起動する他の方法は、カーネルパラメータやオプションを渡してはいけません - おそらく我々が使用しますLILOなどのブートマネージャの利点の1つ。

Linuxカーネルパラメータは、文字列のスペース区切りのリストで、一般的に次のような形式があります
名を[=値_1]、[1、値2] ... [、value_10]
'名'キーワードは、カーネルが識別するために使用することが&'なければならない;キー'それはハンドラや環境変数として渡されたか、&'にスローされますどのようにこの値に対処するためには、戻って誰に値を渡し、初期化'。値の数は10に制限されており、キーワードを再度使用することで10を超えるパラメーターを使用できます。ルート=','

まず、カーネルチェックキーワードはありません&'ですnfsroot ='、' nfsaddrs ='、' RO'、' RW'、'デバッグ'または'初期化'、関連する登録ハンドラが見つかった場合は、パラメータとして渡されたキーワードの後に​​、これらの機能と価値を呼び出し、bootsetups配列内のキーワードに関連付けられた登録ハンドラ用のカーネルの検索これらの機能名'名'既に登録されている、'&と呼ばれるたとえば、起動時のパラメータ名が見つかった場合、A、B、C、D、カーネル検索bootsetups配列を=&'に設定され、()などname_setupなどの機能を設定すると、A、B 、c、dは実行のためにname_setup()に渡されます。
すべてのそのような&'などの種類;名前=値'パラメータ上記機能設定を受信して​​いない場合、そのような&'、システムブート環境変数として解釈される。TERM = VT100&'は、スタートとして使用されますパラメータシングル'
initプロセスのパラメータにすべてのカーネル機能セットはまだ設定されていない環境変数を受け取っていないは、次のような&'、に対処するために残されます;。一般的なデバイス非依存の起動パラメータを


1に、init = ...
、カーネルは初期化処理を行い、これが設定されていない場合、カーネルは、/etc /initを、
/binに/initのを注文しようとするには、/sbin /initを設定します/bin /sh、すべてが見つからない場合、カーネルはカーネルパニックをスローします。
2、nfsaddrs = ...
ネットワークブートからNFSのブートアドレスを文字列として設定します。
3、ときnfsroot = ...
設定したネットワークブートNFSのルート名、文字列は"でない場合; /",",",]である。"、デフォルトのポイント' /tftp-boot'。
上記2と3は、ディスクレスステーションで非常に便利です。 4が
BUG、そのようないくつかの浮動小数点演算として32ビット保護モードを使用して、特定のi387コプロセッサチップを使用するときに定義CONFIG_BUGi386は、このパラメータの使用は、カーネルを可能にする場合にのみ、このオプション
no387 387コプロセッサーを無視します。早期処理チップi486DX-100&'の一部
5、このオプションはのみCONFIG_BUGi386時間を定義するために使用される
無HLT; HLT'命令が問題を抱えている、確実に命令の実行後に返すことはできません<オペレーティングシステム
CPUがアイドル状態のときにLinuxシステムがCPUを一時停止しないようにするには、このオプションを使用します。
6、root = ...
このパラメータは、起動時にどのデバイスをルートファイルシステムとして使用するかをカーネルに指示します。たとえば、ルートファイルをhda8:root = /dev /hda8のように指定できます。
7、ROとRW
RO読み取り専用パラメータは、fsckを実行しているとして、チェックファイルシステムの整合性のためのルートファイルシステムをマウントするためにカーネルに指示します; RWルートファイルシステムをロードするようにカーネルに伝えるためのパラメータを読み書き、どのデフォルト値です。
8、reserve = ...
予約済みのポート番号。フォーマット:特定の領域I /Oポートを保護するために使用される予備= IOBASE、範囲[IOBASE、エクステント] ...は、デバイスドライバを検出し、自動的ではありません。いくつかのマシンでは、自動検出が失敗した場合、またはデバイスがエラーを検出するために使用されるか、カーネルの初期化パラメータ・デバイスをさせたくない;例えば:取り置き= 0x300,32デバイス= 0x300という、すべてのデバイスドライバのデバイス= 0x300からに加えて、0x300からは検出されません。 -0x31fの範囲の入出力ポート。
9、mem = ...
カーネルが使用するメモリ量を制限します。初期のBIOSは、あなたの数はメモリの64Mよりも大きい場合は、数は遅かれ早かれメモリにインストール、システムクラッシュの実際の量を超えて指定した場合、ユーザーが指定することができ、唯一の64Mメモリの以下を認識するように設計されています。例えば、mem = 0x1000000は16Mのメモリがあることを意味し、mem = 0x6000000の場合は96Mのメモリです。
注:多くのモデルはメモリの一部をBIOSマッピングとして使用するため、メモリサイズを指定するときにはスペースを予約する必要があります。ペンティアム以上のCPUでmem = nopentiumを使用して、カーネルの構成時に宣言されている4Mページテーブルを閉じることもできます。 /も可能では、/proc /sys /kernel; 10
、パニック= N
ダウン再起動せずに、会議後のデフォルトのカーネルクラッシュ--kernelパニック、あなたは、再起動後にマシンのダウンタイムを秒数を設定することができますパニックファイルに設定します。
11.reboot = [暖かい| コールド] [ このオプションはCONFIG_BUGi386が定義されている場合にのみ利用可能です。 2.0.22カーネルの再起動は、デフォルトではクール再起動、ウォーム再起動はより速く、< reboot = bios>はBIOS設定を継承できます。
12、nosmp and maxcpus = N
このオプションは、__ SMP__が定義されている場合にのみ使用可能です。複数のCPUを無効にしたり、サポートされているCPUの最大数を指定するために使用できます。あなたが起動すると

カーネルの開発とデバッグパラメータは、あなたが同様の作業を行っていない場合は、これらのパラメータは主に、カーネルの開発とデバッグに使用されている
、あなたは単に、このセクションをスキップすることができます。
1、Linuxの
ログレベルのデバッグが(詳細は、Linux /kernel.hをで見つけることができる)よりあり、一般的には、ログ・デーモンは、ディスクに書き込まれたのみDEBUGレベルのログよりも高いKLOGD、あなたが使用している場合オプションklogdは、カーネルのDEBUG情報もログに書き込みます。
2、プロファイル= N
カーネル開発を行う場合、カーネルあなたは場所を正確にCPUクロックサイクル数を消費するかを知りたい場合は、あなたが変数prof_shiftゼロ以外の値を設定するために、分析機能のコアを使用することができ、それは2つの方法で達成することができる:一方は、コンパイル時に指定され、他方は&'を介してである。プロファイル='指定された、彼は最小単位に相当与える - すなわち、クロックサイクル、カーネルコード実行システム時間、プロフィール[アドレス>;>; prof_shift]値が蓄積されている、あなたはまた、/procの/プロファイルからそれについていくつかの情報を得ることができます。
3、スワップ= N1、8つのパラメータN2、N3、N4、N5、N6、N7、N8
コアに配置された交換アルゴリズム:max_page_age、page_advance、page_decline、page_initial_age、age_cluster_fract、age_cluster_min、pageout_weight、bufferout_weight。
4、バフ= N1、6つのパラメータN2、N3、N4、N5、N6カーネルバッファメモリ管理設定
:max_buff_age、buff_advance、buff_decline、buff_initial_age、bufferout_weight、buffermem_graceを。

使用RAMDISKパラメータ
(のみCONFIG_BLK_DEV_RAMのカーネルの設定とコンパイルする場合)。一般的に言えば、RAMディスクの使用は良いことではありません、システム自体は、使用可能なメモリをより効率的に使用されます。あなたが起動またはブートディスクを作るときしかし、あなたは簡単にramdiskイメージを使用することができ、具体的には(フロッピーディスクなどのデバイスにロードされていますインストールプログラムは、起動処理)を、前に実際の物理ディスクは、あなたがなどのファイルシステムモジュール、SCSIドライブ、必要に応じてモジュールを、ロードする必要がありますので、(私は、ファイルのinitrd-xxximg分析を見ることができます - 製造およびインストールプログラムにはありませんサポートされているルートファイルシステム)。早期
RAMディスクは、(コアのバージョン1.3.48など)が静的に割り当てられている、指定しなければならないRAMディスクが= N RAMディスクサイズ、RAMディスクを動的に増加させること。 4つのパラメータ、2つのブール値、および2つの整数があります。
1、load_ramdisk = N
RAMディスクにロードされ、1 = Nの場合、n = 0の場合、RAMディスクをロードしない。デフォルト値は0です。
2、prompt_ramdisk = N
N = 1、フロッピーディスクを挿入するように求め、N = 0は、フロッピーディスクを挿入するよう要求されず、デフォルトは1です。最大
3にramdisk_size = NまたはRAMディスクRAMディスク= Nは、N KBのセット
、デフォルトは4096キロバイトです。
4は、ramdisk_start = Nが設け
RAMディスクの開始ブロック番号Nは、RAMディスクイメージファイルは、カーネルである場合、このパラメータを必要とします。
5、noinitrd
カーネル今カーネルをロードし、最初の初期化をRAMディスクするinitrdをブートプロセスをサポートすることができる(カーネル設定オプションCONFIG_BLK_DEV_RAMとCONFIG_BLK_DEV_INITRDの場合のみ)、カーネルは、通常のRAMディスクにinitrdの変換しますつまり、読み書きモードのルートファイルシステムデバイスです。 linuxrcが、その後、/sbinに/initを通り、RAMディスクは、最後の実行の起動シーケンスの後にアンロードされ、実行され、その後、実際のルートファイルシステムをロードします。

オプションはnoinitrdカーネルがinitrdをコンパイルされている場合でも、カーネルは、上記の手順を実行しない指示するが、は/dev /initrdのに書き込まれたinitrdのデータは、これはただ1回の機器です。

Copyright © Windowsの知識 All Rights Reserved