Hampir selalu, saya menggunakan kernel dari PPA kernel Ubuntu , atau kernel yang telah saya kompilasi sendiri, menggunakan konfigurasi kernel Ubuntu.
Masalahnya adalah ketika saya menggunakan kernel saham tampaknya default untuk menggunakan nama antarmuka jaringan yang dapat diprediksi (yaitu "p4p1"), tetapi ketika saya menggunakan kernel alternatif tampaknya default untuk menggunakan metode lama (yaitu "eth0").
Meskipun tidak benar-benar relevan dengan pertanyaan ini, saya mengalami kegagalan hard disk pada komputer uji saya dan sedang melakukan instalasi baru Ubuntu Server 14.04.2.
Saya belum bisa menentukan apa perbedaan antara kernel. Saya menduga parameter konfigurasi kernel, tetapi tidak dapat mengidentifikasi yang mana.
Pertanyaan saya: Bagaimana saya bisa membuat nama antarmuka jaringan yang dapat diprediksi bekerja secara konsisten di semua kernel?
Catatan tambahan: Di suatu tempat saya melihat untuk menonaktifkan nama antarmuka jaringan yang dapat diprediksi untuk menambahkan ini ke grub:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
jadi, saya pikir yang sebaliknya mungkin membantu:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
tetapi tidak ada bedanya. Sebenarnya, saya tidak pernah bisa mendapatkan kernel non-stok untuk menggunakan biosdevname, tidak peduli pengaturannya. Dan saya tidak pernah bisa mendapatkan stock kernel untuk menghasilkan /etc/udev/rules.d/70-persistent-net.rules
file (walaupun, bukan itu yang saya inginkan), tidak peduli pengaturannya net.ifnames
. Jika sudah net.ifnames=1
, maka paling tidak kernel non-stock tidak menghasilkan /etc/udev/rules.d/70-persistent-net.rules
file yang salah .
Kutipan dari /var/log/udev
:
stock kernel:
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
Dari Ubuntu PPA kernel 4.1RC5:
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
Catatan: Untuk sementara saya telah melewati masalah ini dengan mengizinkan /etc/udev/rules.d/70-persistent-net.rules
file dibuat, dan kemudian mengeditnya untuk nama perangkat yang tepat. Pada akhirnya, saya ingin menyingkirkan file tersebut.
net.ifnames=1
danbiosdevname=0
, seperti yang dijelaskan dalam tautan yang Anda berikan, tetapi saya mendapatkan eth0 dan eth1 lama. Bagaimanapun, ini bekerja untuk kernel apa pun sekarang (tanpa/etc/udev/rules.d/70-persistent-net.rules
), setelah saya edit/etc/network/interfaces
untuk mencerminkan nama antarmuka yang tepat.