Ubuntu
如何確定網路介面的“可預測名稱”
我正在設置一個新伺服器並安裝了 Ubuntu Bionic,它使用Predictable Network Interface Names。
安裝程序在救援系統上執行,該系統仍然使用舊的介面名稱,如
eth0
,eth1
,但新安裝的系統已將第一個網卡配置為enp8s0
.使用
lshw
,這張卡的公車資訊是:bus info: pci@0000:08:00.0
我想設置其他網路介面而不引導到新安裝的系統,但不知道如何確定其他卡的可預測網路介面名稱。
使用
lshw
,我發現另一個網卡,目前已禁用:bus info: pci@0000:41:00.0
是否可以從中確定可預測的網路介面名稱?會是這樣的
enp41s0
嗎?我已經搜尋了一段時間,找不到任何工具可以簡單地列出所有設備及其可預測的名稱。
編輯:為什麼我不想啟動新系統來找出答案?因為這會給設置過程增加一個額外的步驟。使用舊的介面命名,我可以執行一個腳本來從託管公司提供的救援系統中設置伺服器,並且可以使用它。現在我必須先設置伺服器減去額外的網路配置。然後我必須在新系統啟動後手動設置網路,只是為了知道介面的名稱。
命名方案的詳細資訊在原始碼中:udev/udev-builtin-net_id.c。以前,這有一個很好的可讀註釋塊來解釋事情,但是由於一個重構刪除了一個更好的參考是在man systemd.net-naming-scheme。
一些常見的方案是 PCI 物理、PCI 熱插拔和板載。您的 enp 界面建議物理。
從評論中去除異國情調和不相關的部分留下以下規則:
* Two character prefixes based on the type of interface: * en — Ethernet * * Type of names: * [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>] * — PCI geographical location * * All multi-function PCI devices will carry the [f<function>] number in the * device name, including the function 0 device. * * * When using PCI geography, The PCI domain is only prepended when it is not 0.
該 PCI 匯流排名稱的格式為domain:bus:slot.function。
假設它不是多功能設備,
pci@0000:41:00.0
顯示為enp65s0
,因為十六進制 41 轉換為十進制 65。