在执行新的 Subiquity 服务器自动安装程序的网络部分期间,它会失败并返回非零代码 on netplan apply
,然后它会udevadm settle -t 0
一遍又一遍地运行,返回退出代码 1 直到它最终放弃。
来自一份/var/crash
报告:
# date/time removed for readability
DEBUG subiquitycore.netplan:111 config for ens2f0 = {}
DEBUG subiquitycore.netplan:111 config for ens2f0 = {}
DEBUG subiquitycore.netplan:135 config for bond0 =
{'dhcp4': True, 'interfaces': ['ens2f0', 'ens2f1'], 'parameters': {'lacp-rate': 'slow', 'mode': '802.3ad', 'transmit-hash-policy', 'layer2'}}
DEBUG subiquitycore.utils:74 arun_command called: ['netplan', 'apply']
DEBUG subiquitycore.utils:48 run_command called: ['udevadm', 'settle', '-t', '0']
DEBUG subiquitycore.utils:61 ['udevadm', 'settle', '-t', '0'] exited with code 1
DEBUG subiquitycore.controller.network:196 waiting 0.1 to let udev event queue settle
<repeating udevadm settle commands issued>
(相关)自动安装配置:
#cloud-config
autoinstall:
version: 1
# double network due to a bug
# see https://ubuntu.com/server/docs/install/autoinstall-reference#network
network:
network:
version: 2
ethernets:
ens2f0: {}
ens2f1: {}
bonds:
bond0:
dhcp4: true
interfaces:
- ens2f0
- ens2f1
parameters:
mode: 802.3ad
lacp-rate: slow
transmit-hash-policy: layer2
这会生成以下 Netplan 配置 ( /etc/netplan/00-installer-config.yaml
):
# This is network config written by 'subiquity'
network:
bonds:
bond0:
dhcp4: true
parameters:
mode: 802.3ad
lacp-rate: slow
transmit-hash-policy: layer2
ethernets:
ens2f0: {}
ens2f1: {}
version: 2
我还尝试了一个更简单的 netplan 配置,在一个端口 ( ens2f0
) 上只有一个静态地址,甚至在任何接口匹配eth*
或en*
(在本例中ens2f0
为ens2f1
我的理论是,有一个模块或其他东西在 udev 中创建了一个未处理甚至可能不相关的事件,但是我将如何调试呢?
此外,即使正确配置了相关设备和接口,如果udev中存在此类未处理的事件,Netplan也不会继续进行下去,这不是很大的侵略性吗?
设置:
Ubuntu 20.04 每日构建 20200923(尝试 20.04.1 和初始 LTS 版本)
Netplan 0.99-ubuntuu3~20.04.2
Systemd 245.4-4ubuntu3.2
Supermicro X11DDW-L
Mellanox ConnectX-5 (PCI-E)
BIOS/旧版启动(由于 UEFI 中此 NIC/主板之间不兼容)