Hầu như liên tục, tôi sử dụng hạt nhân từ PPA kernel Ubuntu , hoặc hạt nhân tôi đã tự biên dịch, sử dụng cấu hình kernel Ubuntu.
Vấn đề là khi tôi đang sử dụng kernel stock, nó dường như mặc định sử dụng tên giao diện mạng có thể dự đoán được (tức là "p4p1"), nhưng khi tôi sử dụng bất kỳ kernel thay thế nào, nó dường như mặc định sử dụng phương thức cũ (ví dụ "eth0").
Mặc dù không thực sự liên quan đến câu hỏi này, tôi đã gặp lỗi đĩa cứng trên máy tính thử nghiệm của mình và đang thực hiện cài đặt mới Ubuntu Server 14.04.2.
Tôi chưa thể xác định được sự khác biệt giữa các hạt nhân là gì. Tôi nghi ngờ một tham số cấu hình kernel, nhưng không thể xác định được cái nào.
Câu hỏi của tôi: Làm thế nào tôi có thể làm cho tên giao diện mạng có thể dự đoán hoạt động ổn định trên tất cả các hạt nhân?
Ghi chú bổ sung: Ở đâu đó tôi đã thấy vô hiệu hóa tên giao diện mạng có thể dự đoán để thêm tên này vào grub:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
Vì vậy, tôi nghĩ ngược lại có thể giúp:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
nhưng nó không có gì khác biệt Trên thực tế, tôi không bao giờ có thể lấy kernel không có chứng khoán để sử dụng tên miền sinh học, bất kể cài đặt. Và tôi không bao giờ có thể lấy kernel stock để tạo một /etc/udev/rules.d/70-persistent-net.rules
tập tin (mặc dù, đó không phải là điều tôi muốn), bất kể cài đặt là gì net.ifnames
. Nếu tôi có net.ifnames=1
, thì ít nhất hạt nhân không có chứng khoán không tạo ra một /etc/udev/rules.d/70-persistent-net.rules
tệp không chính xác .
Đoạn trích từ /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
Từ 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
Lưu ý: Tôi đã tạm thời chuyển qua vấn đề này bằng cách cho phép một /etc/udev/rules.d/70-persistent-net.rules
tệp được tạo và sau đó chỉnh sửa nó cho tên thiết bị phù hợp. Cuối cùng, tôi muốn thoát khỏi tập tin.
net.ifnames=1
vàbiosdevname=0
, như được mô tả trong liên kết bạn đưa ra, nhưng tôi nhận được eth0 và eth1 cũ. Dù sao, nó hoạt động cho bất kỳ kernel nào bây giờ (không có/etc/udev/rules.d/70-persistent-net.rules
), sau khi tôi chỉnh sửa/etc/network/interfaces
để phản ánh tên giao diện thích hợp.