
我在虛擬環境中使用 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