10 月 28 日,我在我的一个 Amazon-EC2 实例上运行了一系列正常更新。由于某种原因,它锁定了,我不得不重新启动它。它启动了,但再也没有网络了。因此,经过大量故障排除后,我从旧快照中恢复了它。更新后(过程很顺利),我按预期重新启动,它启动了,但没有网络连接。这很烦人。
这是一个已知问题吗?当我查看第一个崩溃的实例中的 dpkg.log 时,以下软件包已更新(从 dpkg.log 中筛选的转储)。我在那里看到很多与网络相关的内容。
编辑2:我通过将旧镜像的更新间隔减半来找到有问题的软件包。如果我允许此更新:
netplan.io/focal-updates 0.100-0ubuntu4~20.04.2 amd64 [upgradable from: 0.99-0ubuntu3~20.04.2]
机器重启后将无法再次连接到网络。我当然应该一直怀疑是 netplan 的问题,但不管怎样。我在 /var/log/dmsg 中收到一条错误消息,虽然没有进行足够的调查,但似乎与网络有关:
[ 3.396831] kernel: ena 0000:00:05.0: LLQ is not supported Fallback to host mode policy.
编辑:我现在已经查看了第一个实例,似乎降级软件包并没有帮助(我在另一个使用 chroot 的实例上这样做)。所以我怀疑(但非常不确定)这是只是重启问题虽然看似很难解决。
upgrade ca-certificates:all 20190110ubuntu1.1 20201027ubuntu0.20.04.1
upgrade distro-info-data:all 0.43ubuntu1.1 0.43ubuntu1.2
upgrade accountsservice:amd64 0.6.55-0ubuntu12~20.04.1 0.6.55-0ubuntu12~20.04.2
upgrade libaccountsservice0:amd64 0.6.55-0ubuntu12~20.04.1 0.6.55-0ubuntu12~20.04.2
upgrade bind9-dnsutils:amd64 1:9.16.1-0ubuntu2.3 1:9.16.1-0ubuntu2.4
upgrade bind9-libs:amd64 1:9.16.1-0ubuntu2.3 1:9.16.1-0ubuntu2.4
upgrade bind9-host:amd64 1:9.16.1-0ubuntu2.3 1:9.16.1-0ubuntu2.4
upgrade libplymouth5:amd64 0.9.4git20200323-0ubuntu6 0.9.4git20200323-0ubuntu6.1
upgrade plymouth-theme-ubuntu-text:amd64 0.9.4git20200323-0ubuntu6 0.9.4git20200323-0ubuntu6.1
upgrade plymouth:amd64 0.9.4git20200323-0ubuntu6 0.9.4git20200323-0ubuntu6.1
我的(无可否认,糟糕的)取证结果表明 cloud-init 出了问题。该 init 是必需的,因为实例每次启动时都会获得一个新 IP(它有一个静态 IP,但会路由到动态 IP)。
我看到了两种前进的方式:要么我再次从转储中恢复并尝试以某种方式保留上述软件包,要么我找到一种方法来解决由此产生的网络问题,而无需访问实时机器(因为它没有网络),但当机器关闭时我确实可以访问文件系统。
任何想法或帮助都非常感谢!谢谢!
答案1
我不知道这是否会对您的具体情况有帮助,但我知道它帮助了很多其他遇到 SSH 问题的 EC2 用户。
注意:更改示例中的 MAC 地址以供参考...
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: 06:bf:0c:4a:a5:d6
set-name: eth0
bridges:
br0:
dhcp4: true
macaddress: 06:bf:0c:4a:a5:d6
interfaces:
- eth0
笔记:您可能需要创建/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}
sudo netplan --debug generate
sudo netplan apply
reboot
# 强制的