我知道在Linux中使用"biosdevname"
功能的目的,但我不確定 究竟是如何工作的。「biosdevname」如何真正起作用?
我與Ubuntu 14.04和Ubuntu 14.10(64位服務器版本) 測試,它看起來像他們啓用它在默認情況下 - 右後系統啓動時我 網絡接口都有一個名稱,如p4p1
而不是eth0
,沒有定製 是必要的。正如我的理解是,爲了biosdevname
啓用,無論這兩個條件 必須滿足:
- 引導選項
biosdevname=1
必須傳遞給內核必須安裝 biosdevname
包
正如我已經提到的,無論是Ubuntu的14.04和14.10似乎提供biosdevname
作爲默認的特點:他們都已經安裝biosdevname
包,我 並不需要修改grub.cfg
要麼 - GRUB_CMDLINE_LINUX_DEFAULT
沒有 參數和我的網絡接口,還有一個BIOS文件名(p*p*
),而不是 內核名稱
後來我想恢復舊風格的設備命名,這就是其中 有趣(eth*
。)部分開始。我決定嘗試一下,試圖禁用 biosdevname
功能。因爲它需要biosdevname
包工作(或 所以我讀到這裏和那裏),我以爲除去這將是足以禁用 功能,所以我輸入:
sudo apt-get purge biosdevname
令我驚訝的是,重新啓動我的網絡後,接口仍然p4p1,
所以 biosdevname
明顯仍然工作,即使biosdevname
包已被 消滅。
作爲下一個步驟,我採用了適當修改/etc/network/interfaces
在 爲了恢復我的網絡接口的舊名稱(刪除條目p4p1
並添加條目eth0
)。因此,在另一次重啓之後,ifconfig
既不報告也不eth0
也不p4p1
這是另一個證明,操作系統仍然 瞭解BIOS名稱而不是內核名稱。
原來,我也只好GRUB項明確更改爲 GRUB_CMDLINE_LINUX_DEFAULT=biosdevname=0
和更新GRUB得到預期的結果 (恢復網絡接口的biosdevname
殘疾人和老人的名字)。
我的問題是:biosdevname
怎麼能不用biosdevname
包?畢竟是不是需要 ?如果是這樣,那麼biosdevname
的功能到底是什麼,它是如何工作的?
你可能想看看在/etc/udev/rules.d/的文件,看是否有規則有推動網絡接口命名 – ComputerDruid 2014-11-24 23:10:36