BINFMT.D(5)

NAME
binfmt.d - 在系統啓動時爲可執行文件配置 額外的二進制格式

SYNOPSIS

/etc/binfmt.d/*.conf

/run/binfmt.d/*.conf

/usr/lib/binfmt.d/*.conf

描述

在系統啓動時， systemd-binfmt.service(8) 會從上述目錄中讀取配置文件，並根據配置文件的指引， 在內核中爲可執行文件註冊額外的二進制格式。

配置文件格式

每個配置文件都包含一個 binfmt_misc 內核二進制格式規範的列表。 參見 binfmt_misc.txt[1] 與 《如何在Linux下指定特定類型的文件用特定的程序打開》[2] 以瞭解如何註冊額外的二進制格式， 以及如何編寫規則。

空白行和以 # 或 ; 開頭的行將被忽略。 這意味着不能在二進制格式規則中 將 # 與 ; 用作分隔符。

配置目錄及其優先級

配置文件依次從 /etc/, /run/, /usr/lib/ 目錄中讀取。 配置文件的名稱必須符合 filename.conf 格式。 對於不同目錄下的同名配置文件，僅以優先級最高的目錄中的那一個爲準。 具體說來就是： /etc/ 的優先級最高、 /run/ 的優先級居中、 /usr/lib/ 的優先級最低。

軟件包應該將自帶的配置文件安裝在 /usr/lib/ 目錄中。 /etc/ 目錄僅供系統管理員使用。 所有的配置文件(無論位於哪個目錄中)，統一按照文件名的字典順序處理。 如果在多個配置文件中設置了同一個選項， 那麼僅以文件名最靠後(字典順序)的那一個爲準。 爲了便於排序，建議給所有配置文件 都加上兩位十進制數字的文件名前綴。

如果系統管理員想要屏蔽 /usr/lib/ 目錄中的某個配置文件， 那麼最佳做法是在 /etc/ 目錄中 創建一個指向 /dev/null 的同名符號鏈接， 即可徹底屏蔽 /usr/lib/ 目錄中的同名文件。 如果軟件包自帶的某個配置文件位於 initrd 鏡像中， 那麼還必須重新生成 initrd 鏡像。

例子

Example 1. /etc/binfmt.d/wine.conf 文件：

    # 在執行 Windows 程序時啓動 WINE
    :DOSWin:M::MZ::/usr/bin/wine:

[譯者注]關於Java的實例可以查看OpenSuSE的 java-binfmt-misc[3] 軟件包。

參見

systemd(1), systemd-binfmt.service(8), systemd-delta(1), wine(8)

NOTES

1.  binfmt_misc.txt
    https://www.kernel.org/doc/Documentation/binfmt_misc.txt

2.  《如何在Linux下指定特定類型的文件用特定的程序打開》
    http://blog.csdn.net/roland_sun/article/details/50062295

3.  java-binfmt-misc
    http://rpm.pbone.net/index.php3?stat=3&search=java-binfmt-misc&srodzaj=3

跋
本頁面中文版由中文 man 手冊頁計劃提供。

翻譯人員：金步國
金步國作品集：http://www.jinbuguo.com
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh