升级我的 Ubuntu 虚拟服务器导致网络接口消失

升级我的 Ubuntu 虚拟服务器导致网络接口消失

我有一台 Ubuntu 14.10 VPS。每次尝试升级到 15.04 时,都会出现奇怪的症状。我能够毫无问题地从 14.04 升级到 14.10。升级成功后,服务器重新启动,无法再通过正常方式访问,只能通过提供商的紧急 ssh 接口访问。

连接时我的 ifconfig 输出如下:

lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

以前我也遇到过这种情况:

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:14177 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12143 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8039529 (8.0 MB)  TX bytes:7086087 (7.0 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:XXXXXXXXXX  P-t-P:XXXXXXXXXXXXXX  Bcast:XXXXXXXXXXXXX  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

因此,基本上升级后我的虚拟网络接口就消失了,我必须恢复备份。我还注意到几乎没有进程在运行(比如 5 个)。例如,应该自动启动的 apache2 和 mysqld 没有启动。我现在确实回滚到了 14.04,但我真的很想升级而不必重新安装所有内容。在重试之前,是否有一些配置文件我应该备份?我如何升级而不破坏所有内容?

答案1

确保这三个文件相同,您可以复制它们,然后在新系统上恢复它们​​。

/etc/network/interfaces
/etc/resolv.conf
/etc/hosts

看看是否可行。此外,您可能还想检查设备名称是否未更改。例如,venet0 是否已更改为 venet1 或类似名称。您可以通过查看内核日志 (dmesg) 来检查这一点。

另外,至于其余服务,它们可能无法启动,因为它们依赖于网络接口的启动。

答案2

这也许可以解决你的问题:

  1. 使用此命令删除输入组:
    sudo groupdel input
  2. 在 中/var/lib/dpkg/info/udev.postinst删除以下行:
    addgroup --quiet --system input
  3. 重新启动——现在应该有一个界面,您可以通过它来更新系统。

这是基于此 Ask Ubuntu 帖子,其中启动后设备丢失:
更新到 ubuntu 15.04 后出现 udev 问题

下面我重现了 Shenolol 的回答,解释了这个问题。


昨天我遇到了同样的问题。我从 14.10 升级到 15.04,在升级过程中我遇到了与您相同的错误。幸运的是,我能够找出问题的原因。有两种方法可以解决这个问题:

第一种方式(简单)转到终端并执行命令sudo groupdel input。现在运行sudo apt-get update && sudo apt-get dist-upgrade

仅当您对问题的原因感兴趣或第一种方法不起作用时,才阅读第二种方法。

第二种方式(我发这个帖子只是为了解释这个问题)

dpkg 配置脚本中的某一行有问题,我们要删除这一行。首先通过终端打开该文件:

sudo nano /var/lib/dpkg/info/udev.postinst

现在搜索该行addgroup --quiet --system input并将其删除。此行是配置脚本的第一部分。它将组“输入”添加到您的系统中。奇怪的是,当该组已经存在时,它会使整个脚本崩溃。显然,该组的成员可以访问您的系统输入,但这不是必需的,因为输入在没有该组的情况下也可以工作。保存您编辑的文件并运行sudo apt-get update && sudo apt-get dist-upgrade

我希望这能为您解决问题,并在未来为其他用户提供帮助。在修复此问题之前,每次 udev 有更新时,我们都必须应用其中一个修复程序。我不知道如何报告此错误,否则我会这样做。

相关内容