使用 vmbuilder 时网络接口名称不匹配

使用 vmbuilder 时网络接口名称不匹配

我使用 创建了一个虚拟机vmbuilder,但它无法调出网络接口。我能够使用虚拟机管理器登录虚拟机,看到 中的接口/etc/network/interfaceseth0,但 中的networkctl接口是ens3(可预测的网络接口名称)。我查看了一下/var/log/syslog,发现

10 月 17 日 19:26:43 服务器名称内核:[1.314794] virtio_net virtio0 ens3:从 eth0 重命名
10 月 17 日 19:26:43 服务器名称 ifup[394]:找不到设备“eth0”
10 月 17 日 19:26:43 服务器名称 ifup[394]:无法启动 eth0。
10 月 17 日 19:26:43 服务器名称 systemd[1]:networking.service:主进程已退出,代码=已退出,状态=1/FAILURE
10 月 17 日 19:26:43 服务器名称 systemd[1]:无法启动 Raise 网络接口。
10 月 17 日 19:26:43 服务器名称 systemd[1]:networking.service:设备进入故障状态。
10 月 17 日 19:26:43 服务器名称 systemd[1]:networking.service: 失败,结果为“退出代码”。

在其他日志条目中。

以下内容为空或不存在:

  • GRUB_CMDLINE_LINUX=""/etc/default/grub(和GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  • /etc/udev/rules.d/70-persistent-net.rules
  • /lib/udev/rules.d/75-persistent-net-generator.rules

以下是接口:

$ ls -l /sys/class/net
total 0
lrwxrwxrwx 1 root root 0 Oct 17 20:36 ens3 -> ../../devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
lrwxrwxrwx 1 root root 0 Oct 17 20:36 lo -> ../../devices/virtual/net/lo

这是vmbuilder我使用的命令行:

sudo vmbuilder kvm ubuntu --suite xenial --templates /homes/administrator/vmfiles \
    --hostname servername --dest ./servername --rootsize 200000 --mem 16384 \
    --ip 1.1.1.1 --dns 1.1.1.1 --gw 1.1.1.1 --bridge br0 \
    --network=bridge:br0 --timezone=America/Chicago --libvirt qemu:///system \
    --user USER --name USER --pass PASSWORD \
    --ssh-user-key /homes/USER/.ssh/authorized_keys \
    --addpkg linux-image-generic --addpkg openssh-server \
    --addpkg unattended-upgrades --addpkg python-apt --copy vmfiles/copyspecs

作为测试,我改为/etc/network/interfaces参考ens3,并且能够调出界面。

我同意使用可预测名称,但如何解决这种不匹配的问题?

答案1

vmbuilder在搜索中创建的日志时/tmp,我发现它是使用盲目使用的/etc/network/interfaces模板创建的(或者选择了该模板而不是 IP)。/etc/vmbuilder/ubuntu/interfaces.tmpleth0dhcp

这似乎是一个错误。

相关内容