Msphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/admin-guide/bootconfigmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Simplified)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/zh_CN/admin-guide/bootconfigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/it_IT/admin-guide/bootconfigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ja_JP/admin-guide/bootconfigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ko_KR/admin-guide/bootconfigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/sp_SP/admin-guide/bootconfigmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Traditional)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhW/var/lib/git/docbuild/linux/Documentation/translations/zh_TW/admin-guide/bootconfig.rsthKubhwarning)}(hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。h]h paragraph)}(hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。h]hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_TW/disclaimer-zh_TW.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubhnote)}(h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<2023002089@link.tyut.edu.cn>。h]h)}(h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<2023002089@link.tyut.edu.cn>。h](h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<}(hhhhhNhNubh reference)}(h2023002089@link.tyut.edu.cnh]h2023002089@link.tyut.edu.cn}(hhhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:2023002089@link.tyut.edu.cnuh1hhhubh>。}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhhhKubh field_body)}(h)Documentation/admin-guide/bootconfig.rst h]h)}(h(Documentation/admin-guide/bootconfig.rsth]h(Documentation/admin-guide/bootconfig.rst}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKhjhhubj)}(hhh](j )}(h譯者h]h譯者}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;hhhKubj)}(h*吳想成 Wu XiangCheng h]h)}(h)吳想成 Wu XiangCheng h](h吳想成 Wu XiangCheng <}(hjPhhhNhNubh)}(hbobwxc@email.cnh]hbobwxc@email.cn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bobwxc@email.cnuh1hhjPubh>}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjLubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhKubhsection)}(hhh](htitle)}(h 引導配置h]h 引導配置}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK ubj)}(hhh]j)}(hhh](j )}(h作者h]h作者}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhhhKubj)}(h'Masami Hiramatsu h]h)}(h&Masami Hiramatsu h](hMasami Hiramatsu <}(hjhhhNhNubh)}(hmhiramat@kernel.orgh]hmhiramat@kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:mhiramat@kernel.orguh1hhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK ubj)}(hhh](j)}(h概述h]h概述}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubh)}(h引導配置擴展了現有的內核命令行,以一種更有效率的方式在引導內核時進一步支持 鍵值數據。這允許管理員傳遞一份結構化關鍵字的配置文件。h]h引導配置擴展了現有的內核命令行,以一種更有效率的方式在引導內核時進一步支持 鍵值數據。這允許管理員傳遞一份結構化關鍵字的配置文件。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]id2ah ]h"]概述ah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h配置文件語法h]h配置文件語法}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhhhKubh)}(h引導配置文件的語法採用非常簡單的鍵值結構。每個關鍵字由點連接的單詞組成,鍵 和值由 ``=`` 連接。值以分號( ``;`` )或換行符( ``\n`` )結尾。數組值中每 個元素由逗號( ``,`` )分隔。::h](hz引導配置文件的語法採用非常簡單的鍵值結構。每個關鍵字由點連接的單詞組成,鍵 和值由 }(hjhhhNhNubhliteral)}(h``=``h]h=}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh 連接。值以分號( }(hjhhhNhNubj&)}(h``;``h]h;}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )或換行符( }(hjhhhNhNubj&)}(h``\n``h]h\n}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh3 )結尾。數組值中每 個元素由逗號( }(hjhhhNhNubj&)}(h``,``h]h,}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )分隔。:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh literal_block)}(h)KEY[.WORD[...]] = VALUE[, VALUE2[...]][;]h]h)KEY[.WORD[...]] = VALUE[, VALUE2[...]][;]}hjwsbah}(h]h ]h"]h$]h&]hhuh1juhhhKhj hhubh)}(hI與內核命令行語法不同,逗號和 ``=`` 周圍允許有空格。h](h+與內核命令行語法不同,逗號和 }(hjhhhNhNubj&)}(h``=``h]h=}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh 周圍允許有空格。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hX關鍵字只允許包含字母、數字、連字符( ``-`` )和下劃線( ``_`` )。值可包含 可打印字符和空格,但分號( ``;`` )、換行符( ``\n`` )、逗號( ``,`` )、 井號( ``#`` )和右大括號( ``}`` )等分隔符除外。h](h7關鍵字只允許包含字母、數字、連字符( }(hjhhhNhNubj&)}(h``-``h]h-}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )和下劃線( }(hjhhhNhNubj&)}(h``_``h]h_}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh< )。值可包含 可打印字符和空格,但分號( }(hjhhhNhNubj&)}(h``;``h]h;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )、換行符( }(hjhhhNhNubj&)}(h``\n``h]h\n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )、逗號( }(hjhhhNhNubj&)}(h``,``h]h,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )、 井號( }(hjhhhNhNubj&)}(h``#``h]h#}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )和右大括號( }(hjhhhNhNubj&)}(h``}``h]h}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hjubh )等分隔符除外。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj hhubh)}(h如果你需要在值中使用這些分隔符,可以用雙引號( ``"VALUE"`` )或單引號 ( ``'VALUE'`` )括起來。注意,引號無法轉義。h](hF如果你需要在值中使用這些分隔符,可以用雙引號( }(hj1hhhNhNubj&)}(h ``"VALUE"``h]h"VALUE"}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j%hj1ubh )或單引號 ( }(hj1hhhNhNubj&)}(h ``'VALUE'``h]h'VALUE'}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j%hj1ubh. )括起來。注意,引號無法轉義。}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hj hhubh)}(hc鍵的值可以爲空或不存在。這些鍵用於檢查該鍵是否存在(類似布爾值)。h]hc鍵的值可以爲空或不存在。這些鍵用於檢查該鍵是否存在(類似布爾值)。}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hj hhubj)}(hhh](j)}(h 鍵值語法h]h 鍵值語法}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqhhhhhK*ubh)}(hb引導配置文件語法允許用戶通過大括號合併鍵名部分相同的關鍵字。例如::h]ha引導配置文件語法允許用戶通過大括號合併鍵名部分相同的關鍵字。例如:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjqhhubjv)}(h.foo.bar.baz = value1 foo.bar.qux.quux = value2h]h.foo.bar.baz = value1 foo.bar.qux.quux = value2}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhK.hjqhhubh)}(h也可以寫成::h]h也可以寫成:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjqhhubjv)}(h0foo.bar { baz = value1 qux.quux = value2 }h]h0foo.bar { baz = value1 qux.quux = value2 }}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhK3hjqhhubh)}(h 或者更緊湊一些,寫成::h]h或者更緊湊一些,寫成:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjqhhubjv)}(h+foo.bar { baz = value1; qux.quux = value2 }h]h+foo.bar { baz = value1; qux.quux = value2 }}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhK:hjqhhubh)}(hy在這兩種樣式中,引導解析時相同的關鍵字都會自動合併。因此可以追加類似的樹或 鍵值。h]hy在這兩種樣式中,引導解析時相同的關鍵字都會自動合併。因此可以追加類似的樹或 鍵值。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK這將被複制到內核命令行字符串中,如下所示::h]h=這將被複制到內核命令行字符串中,如下所示:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/hhubjv)}(h3root="01234567-89ab-cdef-0123-456789abcd" -- splashh]h3root="01234567-89ab-cdef-0123-456789abcd" -- splash}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhKhj/hhubh)}(h)如果用戶給出的其他命令行是::h]h(如果用戶給出的其他命令行是:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/hhubjv)}(hro bootconfig -- quieth]hro bootconfig -- quiet}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhKhj/hhubh)}(h#則最後的內核命令行如下::h]h"則最後的內核命令行如下:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/hhubjv)}(hGroot="01234567-89ab-cdef-0123-456789abcd" ro bootconfig -- splash quieth]hGroot="01234567-89ab-cdef-0123-456789abcd" ro bootconfig -- splash quiet}hjsbah}(h]h ]h"]h$]h&]hhuh1juhhhKhj/hhubeh}(h]id9ah ]h"]$通過引導配置傳遞內核參數ah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h配置文件的限制h]h配置文件的限制}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubh)}(hX當前最大的配置大小是32KB,關鍵字總數(不是鍵值條目)必須少於1024個節點。 注意:這不是條目數而是節點數,條目必須消耗超過2個節點(一個關鍵字和一個值)。 所以從理論上講最多512個鍵值對。如果關鍵字平均包含3個單詞,則可有256個鍵值對。 在大多數情況下,配置項的數量將少於100個條目,小於8KB,因此這應該足夠了。如果 節點數超過1024,解析器將返回錯誤,即使文件大小小於32KB。(請注意,此最大尺寸 不包括填充的空字符。) 無論如何,因爲 ``bootconfig`` 命令在附加啓動配置到initrd映像時會驗證它,用戶 可以在引導之前注意到它。h](hXe當前最大的配置大小是32KB,關鍵字總數(不是鍵值條目)必須少於1024個節點。 注意:這不是條目數而是節點數,條目必須消耗超過2個節點(一個關鍵字和一個值)。 所以從理論上講最多512個鍵值對。如果關鍵字平均包含3個單詞,則可有256個鍵值對。 在大多數情況下,配置項的數量將少於100個條目,小於8KB,因此這應該足夠了。如果 節點數超過1024,解析器將返回錯誤,即使文件大小小於32KB。(請注意,此最大尺寸 不包括填充的空字符。) 無論如何,因爲 }(hj hhhNhNubj&)}(h``bootconfig``h]h bootconfig}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j%hj ubhh 命令在附加啓動配置到initrd映像時會驗證它,用戶 可以在引導之前注意到它。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]id10ah ]h"]配置文件的限制ah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h引導配置APIh]h引導配置API}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1 hhhhhKubh)}(h|用戶可以查詢或遍歷鍵值對,也可以查找(前綴)根關鍵字節點,並在查找該節點下的 鍵值。h]h|用戶可以查詢或遍歷鍵值對,也可以查找(前綴)根關鍵字節點,並在查找該節點下的 鍵值。}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubh)}(hX'如果您有一個關鍵字字符串,則可以直接使用 xbc_find_value() 查詢該鍵的值。如果 你想知道引導配置裏有哪些關鍵字,可以使用 xbc_for_each_key_value() 迭代鍵值對。 請注意,您需要使用 xbc_array_for_each_value() 訪問數組的值,例如::h]hX&如果您有一個關鍵字字符串,則可以直接使用 xbc_find_value() 查詢該鍵的值。如果 你想知道引導配置裏有哪些關鍵字,可以使用 xbc_for_each_key_value() 迭代鍵值對。 請注意,您需要使用 xbc_array_for_each_value() 訪問數組的值,例如:}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubjv)}(hvnode = NULL; xbc_find_value("key.word", &vnode); if (vnode && xbc_node_is_array(vnode)) xbc_array_for_each_value(vnode, value) { printk("%s ", value); }h]hvnode = NULL; xbc_find_value("key.word", &vnode); if (vnode && xbc_node_is_array(vnode)) xbc_array_for_each_value(vnode, value) { printk("%s ", value); }}hj^ sbah}(h]h ]h"]h$]h&]hhuh1juhhhMhj1 hhubh)}(h如果您想查找具有前綴字符串的鍵,可以使用 xbc_find_node() 通過前綴字符串查找 節點,然後用 xbc_node_for_each_key_value() 迭代前綴節點下的鍵。h]h如果您想查找具有前綴字符串的鍵,可以使用 xbc_find_node() 通過前綴字符串查找 節點,然後用 xbc_node_for_each_key_value() 迭代前綴節點下的鍵。}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubh)}(hY但最典型的用法是獲取前綴下的命名值或前綴下的命名數組,例如::h]hX但最典型的用法是獲取前綴下的命名值或前綴下的命名數組,例如:}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubjv)}(hroot = xbc_find_node("key.prefix"); value = xbc_node_find_value(root, "option", &vnode); ... xbc_node_for_each_array_value(root, "array-option", value, anode) { ... }h]hroot = xbc_find_node("key.prefix"); value = xbc_node_find_value(root, "option", &vnode); ... xbc_node_for_each_array_value(root, "array-option", value, anode) { ... }}hj sbah}(h]h ]h"]h$]h&]hhuh1juhhhMhj1 hhubh)}(hX這將訪問值“key.prefix.option”的值和“key.prefix.array-option”的數組。h]hX這將訪問值“key.prefix.option”的值和“key.prefix.array-option”的數組。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubh)}(hx鎖是不需要的,因爲在初始化之後配置只讀。如果需要修改,必須複製所有數據和關鍵字。h]hx鎖是不需要的,因爲在初始化之後配置只讀。如果需要修改,必須複製所有數據和關鍵字。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1 hhubeh}(h]apiah ]h"]引導配置apiah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h函數與結構體h]h函數與結構體}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhhhM ubh)}(h"相關定義的kernel-doc參見:h]h"相關定義的kernel-doc參見:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hj hhubh block_quote)}(h0- include/linux/bootconfig.h - lib/bootconfig.c h]h bullet_list)}(hhh](h list_item)}(hinclude/linux/bootconfig.hh]h)}(hj h]hinclude/linux/bootconfig.h}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hlib/bootconfig.c h]h)}(hlib/bootconfig.ch]hlib/bootconfig.c}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]bullet-uh1j hhhM$hj ubah}(h]h ]h"]h$]h&]uh1j hhhM$hj hhubeh}(h]id11ah ]h"]函數與結構體ah$]h&]uh1jhjhhhhhM ubeh}(h]id1ah ]h"] 引導配置ah$]h&]uh1jhhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjV error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j0 j- j jj/j,jjjrjoj'j$jdjaj,j)jjj$j!jjj. j+ j j j( j% u nametypes}(j0 j j/jjrj'jdj,jj$jj. j j( uh}(j- jjjj,j jjqjojj$jujaj2j)jgjjj!jjj/j+ jj j1 j% j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jd K sRparse_messages]transform_messages] transformerN include_log];Documentation/translations/zh_TW/admin-guide/bootconfig.rst(NNNNta decorationNhhub.