我正在使用preseeding
自动安装Ubuntu 16.04tftp
安装程序启动,但在第一步检测网络接口时失败。
当我进入 shell 时,我看到dmesg
已eth0
被重命名为eno1
。
我可以使用一些预先设定的命令来防止这种情况发生吗?
我想保留eth0
,而不是eno1
答案1
我在 Debian 中遇到了这个问题。经过一番搜索,我发现对我有用的方法是编辑文件pxelinux.cfg/default
。
我在默认文件中有两行如下:
KERNEL debian-installer/amd64/linux
APPEND initrd=debian-installer/amd64/initrd.gz url=http://server/preseed.txt interface=eth0 auto=true priority=critical net.ifnames=0
让它起作用的是添加
net.ifnames=0
希望这可以帮助。
答案2
不确定是否使用 tftp 进行预先设置,但一般来说,如果您正在修改操作系统,为了防止内核默认网络设备名称被重命名,请net.ifnames=0
在/etc/default/kernel
此行中添加:
$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=default
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="iommu=1 intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1 cgroup_no_v1=all"
GRUB_DISABLE_OS_PROBER=true
GRUB_TERMINAL=console
GRUB_CMDLINE_LINUX="net.ifnames=0"
在 uefi 系统上,运行grub-mkconfig -o /boot/efi/grub/grub.cfg
,或者update-grub
如果你的发行版有它(如果我没记错的话,我认为 Ubuntu 有,但 Debian 没有...)重新启动,然后瞧 - 内核网络设备名称。
注意:您可能必须使用NetworkManager
新的设备名称来配置软件,因为它们在重启后会有不同的名称。
我建议ip link show
在重启之前保留一份输出副本。例如:
$ ip link show | sed -n '3~2p' | cut -b 2- | cut -d ':' -f 2 > netdev-names-orig.txt
这给了我:
$ cat netdev-names-orig.txt
eno1
wlp111s0
br0
lxdbr0
vethf72710d3@if6
有关网络设备重命名约定的更多信息,请参阅 Debian wiki: https://wiki.debian.org/NetworkInterfaceNames