CentOS 6 / RedHat 中如何自動偵測新網卡?

CentOS 6 / RedHat 中如何自動偵測新網卡?

我在虛擬環境中使​​用 CentOS 6。當克隆 CentOS 的虛擬版本時,舊的 eth 適配器將被「刪除」並替換為新的適配器和網路 MAC 位址。但是,ifcfg-ethn 檔案仍然存在。我試圖弄清楚如何讓 CentOS 自動重新掃描和重新建立網路適配器/eth 文件,就像安裝時一樣。

否則,我將面臨如下所述的繁瑣過程:http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

我知道有一種快速方法可以在 GUI 中執行此操作,但我們使用的是伺服器,因此 GUI 不適用於這種情況。幫助?

編輯:@OldWolf 建議使用 Kudzu,但是從 Centos 5 開始,Kudzu 已被刪除,所以我寧願避免這種情況。 Linux 在初始安裝時運行一個程式 - 有人可以幫我弄清楚那是什麼,以便我可以手動觸發它嗎?

答案1

在 CentOS 6 中,一切都由 udev 處理。進入/etc/udev/rules.d並刪除該70-persistent-net.rules檔案並重新啟動。如果您事先打開它,您很可能會看到原始 NIC MAC 列為 ,eth0而新的 NIC MAC 列為eth1

現在您需要編輯/etc/sysconfig/network-scripts/ifcfg-eth0並手動更新新網路卡的 MAC。

刪除該檔案會強制檢測程序在啟動時再次運行,不會留下克隆過程留下的任何痕跡,即舊的 NIC MAC 位址。

我必須一直在 VMware ESXi 4.1 上使用我的 CentOS 6 克隆來執行此操作。這是一個痛苦,葛根過去只能用以前的版本來處理它。

答案2

刪除持久規則檔案:

rm /etc/udev/rules.d/70-persistent-net.rules

編輯 ifcfg-eth0:

nano /etc/sysconfig/network-scripts/ifcfg-eth0

完全刪除該HWADDR行(或變更它以符合新 NIC 的 MAC 位址)。

重新啟動您的系統:

reboot

如果再次變更 NIC,只需重複步驟 #1 和 #3。

答案3

您也可以使用這個工具(這不是 GUI 工具,它是 TUI 工具,基於文字的使用者介面)

[root@localhost ~]# 系統設定網路-tui

輸入上面的命令並按 Enter

然後就會出現這個畫面

在此輸入影像描述

選擇設備配置並按 Enter

然後就會出現這個畫面

在此輸入影像描述

這裡eth0指的是/etc/sysconfig/network-scripts/ifcfg-eth0

無論進行什麼編輯eth0都會影響ifcfg-eth0文件

答案4

我創建並刪除了許多 CentOS 6 虛擬機,我編寫了一些 Bashfu 來在 VirtualBox 中克隆時修復 eth0。

   [root@jp-xm-base ~]# cat fixeth0.sh
if grep -q eth1 /etc/udev/rules.d/70-persistent-net.rules; then
   sed -i '/eth0/d' /etc/udev/rules.d/70-persistent-net.rules;
   sed -i 's/eth1/eth0/g' /etc/udev/rules.d/70-persistent-net.rules;
   ETHERNET=`grep eth0 /etc/udev/rules.d/70-persistent-net.rules | awk -F"," '{print $4}' | awk -F"\"" '{print $2}'`;
   echo Ethernet Addr: $ETHERNET;
   sed -i 's/HWADDR=".*"/HWADDR="'$ETHERNET'"/' /etc/sysconfig/network-scripts/ifcfg-eth0;
   /sbin/start_udev
   /sbin/service network restart;
fi

相關內容