Neredeyse sürekli olarak, Ubuntu çekirdek PPA'sından veya Ubuntu çekirdek yapılandırmasını kullanarak kendim derlediğim çekirdekleri kullanıyorum.
Ben stok çekirdeği kullandığımda sorun, tahmin edilebilir ağ arabirimi adları (yani "p4p1") kullanmak için varsayılan gibi görünüyor, ancak herhangi bir alternatif çekirdek kullandığınızda eski yöntemi (yani "eth0") varsayılan görünüyor.
Bu soru ile gerçekten ilgili olmasa da, test bilgisayarımda bir sabit disk hatası vardı ve yeni bir Ubuntu Server 14.04.2 yüklemesi yapıyorum.
Çekirdekler arasındaki farkın ne olduğunu belirleyemedim. Bir çekirdek yapılandırma parametresinden şüpheleniyorum, ancak hangisini tanımlayamadım.
Sorum: Öngörülebilir ağ arabirimi adlarının tüm çekirdeklerde tutarlı bir şekilde çalışmasını nasıl sağlayabilirim?
Ek notlar: Bir yere bunu gruba eklemek için öngörülebilir ağ arabirimi adlarını devre dışı bıraktığımı gördüm:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
yani, bunun tersinin yardımcı olabileceğini düşündüm:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
ama hiçbir fark yaratmadı. Aslına bakılırsa, ayar ne olursa olsun stok dışı çekirdeği biosdevname kullanmam. Ve stok çekirdeğini hiçbir zaman bir /etc/udev/rules.d/70-persistent-net.rules
dosya oluşturmak için alamıyorum (rağmen, istediğim bu değil), ayarı ne olursa olsun net.ifnames
. Varsa net.ifnames=1
, en azından stok olmayan çekirdek yanlış bir /etc/udev/rules.d/70-persistent-net.rules
dosya oluşturmaz .
Alıntılar /var/log/udev
:
stok çekirdeği:
KERNEL[9.216730] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
IFINDEX=2
INTERFACE=p4p1
SEQNUM=1945
SUBSYSTEM=net
...
UDEV [9.241073] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=p4p1
Ubuntu PPA çekirdeği 4.1RC5'ten:
KERNEL[10.772566] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0
IFINDEX=2
INTERFACE=eth0
SEQNUM=1962
SUBSYSTEM=net
...
UDEV [11.185866] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eth0
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=eth0
SEQNUM=1962
SUBSYSTEM=net
USEC_INITIALIZED=3227
Not: Bir /etc/udev/rules.d/70-persistent-net.rules
dosyanın oluşturulmasına izin vererek ve ardından uygun cihaz adları için düzenleyerek bu sorunu geçici olarak aştım . Sonuçta, dosyadan kurtulmak istiyorum.
net.ifnames=1
ve ile farklı arayüz adları beklememdibiosdevname=0
, ancak eski eth0 ve eth1'i alıyorum. Her neyse, doğru arayüz adlarını yansıtacak şekilde/etc/udev/rules.d/70-persistent-net.rules
düzenlendikten sonra, şimdi (hayır ile ) herhangi bir çekirdek için çalışır/etc/network/interfaces
.