Debian使用preseed安装时如何将网络接口命名为eth0而非ens192
解决方案
- 首先补充内核启动参数,同时禁用一致网络命名和
biosdevname规则,且需要同时对安装程序内核、目标系统内核都添加参数:
把你原有d-i debian-installer/add-kernel-opts行替换为以下两行:
原有配置仅给安装过程的内核加了参数,没有写入目标系统的GRUB配置,导致安装完成后系统启动时还是会启用新的命名规则。d-i debian-installer/add-kernel-opts string net.ifnames=0 biosdevname=0 d-i grub-installer/grub_cmdline_linux string net.ifnames=0 biosdevname=0 - 清理重复的接口选择配置,删除
d-i netcfg/choose_interface select auto行,仅保留d-i netcfg/choose_interface select eth0,避免安装程序优先识别到ens192接口后绑定配置。 - 可选:添加late_command清除udev持久化网络规则,避免遗留的规则强制绑定接口名为ens192:
d-i preseed/late_command string rm -f /target/etc/udev/rules.d/70-persistent-net.rules
完整修改后的网络相关preseed示例
# 内核参数禁用新式接口命名 d-i debian-installer/add-kernel-opts string net.ifnames=0 biosdevname=0 d-i grub-installer/grub_cmdline_linux string net.ifnames=0 biosdevname=0 # 网络配置 d-i netcfg/choose_interface select eth0 d-i netcfg/disable_autoconfig boolean true d-i netcfg/dhcp_failed note d-i netcfg/dhcp_options select Configure network manually d-i netcfg/get_ipaddress string 192.168.0.50 d-i netcfg/get_netmask string 255.255.255.0 d-i netcfg/get_nameservers string 8.8.8.8 d-i netcfg/confirm_static boolean true d-i netcfg/get_hostname string debian-template # 清理udev接口命名规则 d-i preseed/late_command string rm -f /target/etc/udev/rules.d/70-persistent-net.rules
修改后重新部署即可,部署完成后查看/proc/cmdline可以确认内核参数已生效,接口默认会命名为eth0,/etc/network/interfaces中的配置会正常生效。
内容的提问来源于stack exchange,提问作者Moarz
相关产品推荐
相关产品推荐

