後続のパラメータがLinuxカーネルコマンドラインの以前のパラメータを上書きしますか、それともその逆ですか?

後続のパラメータがLinuxカーネルコマンドラインの以前のパラメータを上書きしますか、それともその逆ですか?

これは次のために発生します。他の場所で別の質問、単にオンライン検索(「Linuxカーネルコマンドラインオーバーライドの優先順位」といくつかのバリエーション)を実行した後、何も出ませんでした。

問題は、/proc/cmdline特定のパラメーターが別の値として2回含まれていることを示します。 私の質問は、なぜそれがどのように起こったのかについてではありません。、つまりどちらが優先かするのです。つまり、次をコマンドラインとして使用します。

foo=12 console=tty1 foo=16

意味のある2つの値を持つことができない設定の場合、いずれかの値fooに適用されるルールはありますか?

答え1

カーネルに明示的に文書化されているかどうかはわかりませんが、x86 特定の起動コマンドラインの解析このコメントを含めると:

ブール以外のオプション(「option = argument」など)が見つかりました。標準のLinux慣行によると、このオプションを繰り返すと、コマンドラインの最後のインスタンスが返されます。

これにより、ユーザーはコマンドラインの以前の値を気にせずにコマンドラインの最後に設定を追加できます。

見ている一般的な解析コードこれは確認されました。パラメータは順番に読み込まれ、繰り返しパラメータで設定された値は最後のインスタンスによって上書きされます。

あなたの場合はfoo=16勝利してください。

解析ツールには/proc/cmdline独自の動作があり、カーネルの規則に従わない可能性があります。

関連情報