CentOS7網路卡命名修改為eth0格式

程式猿肖邦發表於2017-02-10

Linux 作業系統的網路卡裝置的傳統命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名規則,預設是基於韌體、拓撲、位置資訊來分配。這樣做的優點是命名全自動的、可預知的,缺點是比 eth0、wlan0 更難讀,比如 ens33 。

一、命名規則策略

規則1:

對於板載裝置命名合併韌體或 BIOS 提供的索引號,如果來自韌體或 BIOS 的資訊可讀就命名,比如eno1,這種命名是比較常見的,否則使用規則2。

規則2:

命名合併韌體或 BIOS 提供的 PCI-E 熱插拔口索引號,比如 ens1,如果資訊可讀就使用,否則使用規則3。

規則3:

命名合併硬體介面的物理位置,比如 enp2s0,可用就命名,失敗直接到方案5。

規則4:

命名合併介面的 MAC 地址,比如 enx78e7d1ea46da,預設不使用,除非使用者選擇使用此方案。

規則5:

使用傳統的方案,如果所有的方案都失敗,使用類似 eth0 這樣的樣式。

 

二、網路卡名稱字元含義

1、前2個字元的含義

en  乙太網    Ethernet
wl  無線區域網  WLAN
ww   無線廣域網  WWAN

2、第3個字元根據裝置型別選擇

o<index>           on-board device index number
s<slot>            hotplug slot index number
x<MAC>             MAC address
p<bus>s<slot>      PCI geographical location
p<bus>s<slot>      USB port number chain

 

三、修改網路卡名稱樣式為ethx

如果不習慣使用新的命名規則,可以恢復使用傳統的方式命名,編輯 grub 檔案,增加兩個變數,再使用 grub2-mkconfig 重新生成 grub 配置檔案即可。

1、編輯 grub 配置檔案

vim /etc/sysconfig/grub   # 其實是/etc/default/grub的軟連線
# 為GRUB_CMDLINE_LINUX變數增加2個引數,具體內容如下(加粗):
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 biosdevname=0 rhgb quiet"

2、重新生成 grub 配置檔案

grub2-mkconfig -o /boot/grub2/grub.cfg

然後重新啟動 Linux 作業系統,通過 ip addr 可以看到網路卡名稱已經變為 eth0 。

3、修改網路卡配置檔案

原來網路卡配置檔名稱為 ifcfg-ens33,這裡需要修改為 ethx 的格式,並適當調整網路卡配置檔案。

mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改ifcfg-eth0檔案如下內容(其它內容不變)
NAME=eth0
DEVICE=eth0
[root@localhost ~]# systemctl restart network.service # 重啟網路服務

注意:ifcfg-ens33 檔案最好刪除掉,否則重啟 network 服務時候會報錯。

 


相關文章