I’ve recently had an incident where a Red Hat Enterprise Linux server that had been migrated between two VMware clusters (in this case dev to live) had no network connectivity after the migration. The server had lost eth0 and had gained an unconfigured eth1 instead. After a little bit of research I found that this was because the UUID and the MAC address had changed on the virtual hardware making the ifcfg-eth0 configuration file invalid
The fix was fairly simple – remove the UUID from ifcfg-eth0, delete the udev rules for the the network card, correct the MAC address and restart the network service.
I wrote this simple script for others to use:
#!/bin/bash # Backup all files first mkdir nic_change_backup cp /etc/sysconfig/network-scripts/ifcfg-eth0 nic_change_backup cp /etc/udev/rules.d/70-persistent-net.rules nic_change_backup tar jcpvf nic_change_backup.tar.bz2 nic_change_backup rm -rf nic_change_backup # Remove the udev rule # They are re-created on boot up rm -f /etc/udev/rules.d/70-persistent-net.rules # Fix the eth0 file # This involves removing the UUID and # updating the HWADDR with the MAC # address of the new card. grep -v UUID /etc/sysconfig/network-scripts/ifcfg-eth0 | sed '/HWADDR/c\'$(echo "HWADDR:$(echo "$(ip addr | grep ether | cut -d\ -f 6)" | tr '[:lower:]' '[:upper:]')") > /etc/sysconfig/network-scripts/ifcfg-eth0 # Restart networking, or in this case the server shutdown -r now