当前位置: > 虚拟化 Virtualization > VMware >

在克隆 Ubuntu 虚拟机后网络失败 (2110602)

时间:2016-04-08 00:50来源:linux.it.net.cn 作者:IT
  • 在克隆 Ubuntu 虚拟机后,网络不再起作用。
  • ifconfig 命令不显示网络接口(例如,eth0),但可能会显示新接口(例如,eth1)。
  • 使用 sudo /etc/init.d/networking restart 命令重新启动 GuestOS 中的网络显示以下错误:

    SIOCSIFADDR: 无此类设备
    eth0: 获取接口标记时出错: 无此类设备
    将插槽绑定到接口: 无此类设备
    无法显示 ethX
    (SIOCSIFADDR: no such device
    eth0: ERROR while getting interface flags: No such device
    Bind socket to interface: no such device
    Failed to bring up ethX)


  • 使用 dmesg | grep eth 命令检查 dmesg 日志显示类似于以下内容的消息:

    udev: 已将网络接口从 ethX 重命名为 ethY (udev: renamed network interfaces ethX to ethY)

Cause

出现此问题是因为虚拟机为每个网络适配器创建了新的 MAC 地址。客户机操作系统检测到这是一个已插入但保留了之前的网络适配器配置的新网络适配器。

Resolution

此问题在 Ubuntu 10.10 中已解决。有关详细信息,请参见 Ubuntu 缺陷 341006。
 
注意:截至 2013 年 7 月 17 日,上述链接正确无误。如果您发现该链接已损坏,请提供反馈,VMware 员工将会更新该链接。

要解决此问题,请更改网络接口的持久 udev 规则:

  1. 在 Ubuntu 客户机中,打开命令提示符。有关详细信息,请参见 Opening a command or shell prompt (1003892)。
  2. 以 root 身份在文本编辑器中打开 /etc/udev/rules.d/70-persistent-net.rules 文件:

    sudo vim /etc/udev/rules.d/70-persistent-net.rules


  3. 该文件包含每个 udev 规则的行,将 MAC 地址与 ethN 接口名称相关联。例如:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


  4. 通过 ATTR{address}=="" 字段中的 MAC 地址标识新旧接口。例如:

    ATTR{address}=="xx:xx:xx:xx:xx:xx" ...NAME="eth0" # old
    ATTR{address}=="xx:xx:xx:xx:xx:xy" ...NAME="eth1" # new


  5. 将 ethN 名称从旧接口复制到新接口行。例如:

    ATTR{address}=="xx:xx:xx:xx:xx:xx" ...NAME="eth0" # old
    ATTR{address}=="xx:xx:xx:xx:xx:xy" ...NAME="eth0" # new


  6. 删除旧 ethN 接口的行。例如:

    ATTR{address}=="xx:xx:xx:xx:xx:xx" ...NAME="eth0" # new


  7. 保存 udev 配置文件。
  8. 重新引导 Ubuntu 虚拟机。
系统重新引导后,之前的网络接口的网络配置将应用于新接口。
 
注意:如果无法重新引导虚拟机,可以使用以下命令手动重新启动网络服务:
 
service networking restart
 
如果此命令失败并显示未知实例错误,请运行以下命令:
 
/etc/init.d/networking restart
 
有关 Ubuntu 网络服务重新启动问题的详细信息,请参见 Ubuntu 缺陷 440179。

 
(责任编辑:IT)
------分隔线----------------------------