Linux-Kernel
後續參數是否會覆蓋 linux 核心命令行中的先前參數,反之亦然?
這是由其他地方的另一個問題提示的,在簡要地進行了一次快速的線上搜尋(“linux 核心命令行覆蓋優先級”和一些變體)之後,一無所獲。
問題是
/proc/cmdline
表明一個參數已被包含兩次,具有不同的值。 我的問題不是關於為什麼會這樣或如何發生,而是哪個優先。換句話說,將其作為命令行:foo=12 console=tty1 foo=16
如果
foo
是一個不能有意義地具有兩個值的設置,是否有任何適用的約定?
我不確定它是否在核心中明確記錄,但特定於 x86 的引導命令行解析包含以下註釋:
找到一個非布爾選項,即“option=argument”。根據標準 Linux 實踐,如果重複此選項,則會返回命令行上的最後一個實例。
這允許使用者將設置添加到命令行的末尾,而無需關心命令行中的任何先前值。
查看通用解析程式碼證實了這一點:一個接一個地讀取參數,並且由重複參數設置的任何值都被最後一個實例覆蓋。
在您的範例中,
foo=16
獲勝。請注意,解析的工具
/proc/cmdline
有自己的行為,可能不遵循核心約定。