我目前正在使用在实际安装后运行的自定义安装脚本来预置 Debian 安装,以创建一个简单的安装程序,它将创建我需要的一切。
现在我找到了如何安装附加包并添加了 NetworkManager 包,以简化网络工作。但是,该设备具有多个以太网接口,并且在 Debian 安装期间安装 NetworkManager 会创建该文件/etc/NetworkManager/system-connections/Wired connection 1
。但是,该文件为实际系统配置不正确。因此,如果我在 NetworkManager 关闭并重新启动时将其删除,则一切正常。但是拥有该文件会使 NetworkManager 将所有接口标记为“有线连接 1”,并且只有一个接口可以处于活动状态,等等。总而言之,该文件需要删除。
现在我首先尝试在我调用的脚本期间删除文件preseed/late_command
(脚本运行并删除文件,我检查过)。但是在安装后引导进入系统时,文件又回来了。接下来,我尝试在使用 删除文件之前停止 NetworkManager 服务in-target systemctl stop NetworkManager
,但这只是给了我可爱的日志行in-target: Running in chroot, ignoring request.
而且自然也不起作用。
如何在预置时使用空白的“系统连接”配置安装 NetworkManager?
总之,我的相关(和工作)行preseed.cfg
是:
d-i pkgsel/include string ... network-manager ...
d-i preseed/late_command string sh /.../postinstall.sh
在我的postinstall.sh
尝试中
in-target rm /etc/NetworkManager/system-connections/*
(实际上在那一刻删除了文件)和
in-target systemctl stop NetworkManager
in-target rm /etc/NetworkManager/system-connections/*
更新:
正如建议的那样,我尝试nmcli
直接删除与的连接。
这是我的脚本:
in-target nmcli con delete $(in-target nmcli -g uuid con)
这是结果:
May 6 09:16:43 log-output: + in-target
May 6 09:16:43 log-output: nmcli -g uuid con
May 6 09:16:43 log-output: dpkg-divert: warning: diverting file '/sbin/start-stop-daemon' from an Essential package with rename is dangerous, use --no-rename
May 6 09:16:43 in-target: Error: Could not create NMClient object: Could not connect: No such file or directory.
May 6 09:16:44 log-output: + in-target nmcli con delete
May 6 09:16:44 log-output: dpkg-divert: warning: diverting file '/sbin/start-stop-daemon' from an Essential package with rename is dangerous, use --no-rename
May 6 09:16:44 in-target: Error: Could not create NMClient object: Could not connect: No such file or directory.
使用有线连接
默认情况下,NetworkManager 会为其找到的每个有线以太网连接生成一个连接配置文件。在生成连接时,它不知道是否会有更多的以太网适配器可用。因此,它将第一个有线连接称为“有线连接 1”。
no-auto-default
您可以通过配置(参见 参考资料man NetworkManager.conf
)或简单地删除它来避免生成此连接。然后 NetworkManager 会记住不再为这个接口生成连接。您还可以编辑连接(并将其保存到磁盘)或删除它。NetworkManager 不会重新生成新的连接。然后,您可以将名称更改为您想要的任何名称。您可以为此任务使用类似 nm-connection-editor 的东西。因此,您可以
NetworkManager.conf
在安装网络管理器之前创建并根据您的硬件进行设置,并no-auto-default
在需要时提供选项。(还要检查配置文件在安装后没有被覆盖'不应该是这样......')另一种选择可能是用
chmod u-w
or锁定对有问题文件的写访问,chattr +i
但不建议这样做,因为它不打算以这种方式工作并且可能会引入其他问题。资料来源:arch-wiki
我怀疑连接文件 (
/etc/NetworkManager/system-connections/Wired connection 1
) 是在常规引导过程中创建的。如果您无法避免创建连接,一种选择是在使用以下nmcli
命令创建连接后删除连接:获取“有线连接 1”的 UUID:
因此: