标题描述不是很准确,其实是这样的一个小问题:为了省事,把一个安装的Linux系统一股脑拷贝到另外一台机器上,想省了安装和配置的时间。
这样拷贝完后,系统启动没有问题,不过一些小问题还是很多,需要去修改配置,比如说,这种方式启动后,你会发现你的第一块网卡名字不是eth0,可能是eth1或者eth2,这取决于你拷贝过来的系统上原来有多少块网卡,如果只有一块网卡,那么现在的系统就是eth1,以此类推。
其原因是udev搞的鬼,udev在/etc/udev/rules.d/下面搞了一个持久命名规则,对于网卡的持久命令,就采取了MAC地址的匹配方式,也就是类似下面这样:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="*", ATTR{address}=="00:19:b9:52:04:3d", \
ATTR{type}=="1", KERNEL=="eth*",NAME="eth0"
上面的ATTR{address}=="00:19:b9:52:04:3d"匹配的就是机器网卡的MAC地址,显然这里填写的应该是拷贝的那台机器上的MAC地址,而不是当前机器的网卡MAC地址。
找到了原因,解决办法就很简单了,要不修改上面的MAC地址,要不直接删除这行。然后重启。