刚刚花了几个小时诊断为什么我的 18.04 虚拟机在从 VirtualBox 迁移到 qemu 后无法连接网络。
事实证明,由于“硬件更改”,网卡从 enp0s4 重命名为 enp1s0。而且 - 自然 - /etc/netplan/01-netcfg.yaml明确指定enp0s4 应该获得 DHCP 配置,而不是(其他任何东西)。
将其与新安装且正常工作的 19.04 进行比较并没有真正帮助,因为 19.04 使用其他东西来配置网络。嗯……
无论如何-这是为什么?我以前注意到过这样的变化,例如在我升级主板上的 BIOS 时。但是每次发生这种情况时,我都会花费大量时间来诊断此类问题。特别是因为它很少发生......
那么,是什么导致了这个重命名,我将如何配置我的 Ubuntu 虚拟机以使这不再是一个问题?
可以在src/udev/udev-builtin-net_id.c中找到如何创建名称的说明:
enp0s4
表示以太网,总线 0,插槽 4。enp1s0
表示以太网,总线 1,插槽 0。因此,当总线或插槽发生变化时,名称也会发生变化。它指的是 PCI 设备。看 ...
获取 PCI 设备列表。在我的情况下,这将适用于我的以太网:端口 4,插槽 0,功能 1。对于我的无线:端口 3,插槽 0。请参阅...
有4种方法;其中 2 个是使用您自己的名称(请参阅
/etc/udev/rules.d/70-my-net-names.rules
)或使用 MAC 地址(cp /usr/lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
并根据您的情况编辑文件)。两者都设置了通常不会更改的接口名称(您可以更改某些 NIC 上的 MAC 地址;))