启动时会创建一些东西/run/netplan/eth0.yaml
,但我不知道是什么。(我正在运行 18.04 Bionic Beaver。)该文件导致 eth0 由 systemd-networkd 管理,但我希望它由 NetworkManager 管理。是否有某个 udev 规则或 systemd 服务正在创建该文件?我查看了 netplan 的源代码,它似乎无法自行生成文件/run/netplan/*.yaml
(它只能读取文件)。
内容/run/netplan/eth0.yaml
:
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: "xx:xx:xx:xx:xx:xx"
set-name: eth0
dhcp4: true
dhcp-identifier: mac
critical: true
nameservers:
addresses: ["192.168.0.1"]
search: ["example.com"]
答案1
当您在内核命令行上将网络配置选项传递给系统时(例如,使用 NFS 或 iSCSI 时,或者在 initramfs 中配置 ssh 以进行远程 cryptsetup 解锁时),此文件由 initramfs-tools 创建。
您应该能够覆盖renderer: NetworkManager
按词汇排序的文件中设置eth0.yaml
,并以此方式将此网络接口重定向到 NetworkManager。
答案2
更准确地说,这个文件是由例程创建的,由文件中的netinfo_to_netplan()
顶级函数调用。我真的希望找到一个可以设置在某处的变量来禁用此功能,但我认为上面评论中的 Richard 的 init-bottom 脚本可能是最好的解决方案。configure_networking
scripts/functions
initrd.img
请注意,你可以使用以下命令亲自查看脚本:
mkdir /tmp/initramfs
sudo unmkinitramfs /boot/initrd.img /tmp/initramfs/
cd /tmp/initramfs/
sudo find . -type f -exec grep -il netplan {} \;
sudo less main/scripts/functions