我在虚拟环境中使用 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,但是 Kudzu 从 Centos 5 开始已被删除,所以我宁愿避免使用。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
并手动更新到新 NIC 卡的 MAC。
删除该文件会强制检测过程在启动时再次运行,并且不会留下任何克隆过程留下的负担,即旧的 NIC MAC 地址。
我总是不得不在 VMware ESXi 4.1 上使用 CentOS 6 克隆版来做这件事。这很麻烦,kudzu 以前只能用以前的版本来处理。
答案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 ~]# system-config-network-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