लगभग लगातार, मैं उबंटू कर्नेल पीपीए से गुठली का उपयोग करता हूं , या गुठली मैंने खुद को संकलित किया है, उबंटू कर्नेल कॉन्फ़िगरेशन का उपयोग कर रहा है।
समस्या यह है कि जब मैं स्टॉक कर्नेल का उपयोग कर रहा हूं, तो यह अनुमानित नेटवर्क इंटरफेस नाम (यानी "p4p1") का उपयोग करने के लिए डिफ़ॉल्ट रूप से लगता है, लेकिन जब मैं किसी वैकल्पिक कर्नेल का उपयोग करता हूं तो यह पुरानी पद्धति (यानी "eth0") का उपयोग करने के लिए डिफ़ॉल्ट लगता है।
इस प्रश्न के लिए वास्तव में प्रासंगिक नहीं होने के दौरान, मुझे अपने परीक्षण कंप्यूटर पर हार्ड डिस्क की विफलता हुई और मैं Ubuntu Server 14.04.2 की एक नई स्थापना कर रहा हूं।
मैं यह निर्धारित नहीं कर पाया कि गुठली में क्या अंतर है। मुझे कर्नेल कॉन्फ़िगरेशन पैरामीटर पर संदेह है, लेकिन यह पहचानने में असमर्थ है कि कौन सा है।
मेरा प्रश्न: मैं सभी कर्नल्स में अनुमानित नेटवर्क इंटरफ़ेस नाम कैसे काम कर सकता हूं?
अतिरिक्त नोट्स: कहीं न कहीं मैंने इसे ग्रब में जोड़ने के लिए अनुमानित नेटवर्क इंटरफ़ेस नामों को अक्षम करने के लिए देखा था:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
तो, मैंने सोचा कि विपरीत मदद कर सकता है:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
लेकिन इससे कोई फर्क नहीं पड़ा। वास्तव में, मैं कभी भी बायोसदेवनाम का उपयोग करने के लिए नॉन-स्टॉक कर्नेल प्राप्त नहीं कर सकता, कोई फर्क नहीं पड़ता। और मैं /etc/udev/rules.d/70-persistent-net.rules
फ़ाइल उत्पन्न करने के लिए स्टॉक कर्नेल कभी नहीं प्राप्त कर सकता हूं (हालांकि, यह वह नहीं है जो मैं चाहता हूं), कोई फर्क नहीं पड़ता सेटिंग net.ifnames
। अगर मेरे पास है net.ifnames=1
, तो कम से कम गैर-स्टॉक कर्नेल एक गलत /etc/udev/rules.d/70-persistent-net.rules
फ़ाइल उत्पन्न नहीं करता है ।
इसके अंश /var/log/udev
:
स्टॉक कर्नेल:
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 कर्नेल से 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
नोट: मैं एक /etc/udev/rules.d/70-persistent-net.rules
फ़ाइल बनाने की अनुमति देकर अस्थायी रूप से इस मुद्दे को पिछले ले गया हूं , और फिर इसे उचित डिवाइस नामों के लिए संपादित कर रहा हूं । अंततः, मैं फ़ाइल से छुटकारा पाना चाहूंगा।
net.ifnames=1
औरbiosdevname=0
लिंक आप दे दी है में वर्णित है, है, लेकिन मैं पुराने eth0 और eth1 मिलता है। वैसे भी, यह किसी भी कर्नेल के लिए काम करता है (नहीं/etc/udev/rules.d/70-persistent-net.rules
) के साथ , जब मैंने/etc/network/interfaces
उचित इंटरफ़ेस नामों को प्रतिबिंबित करने के लिए संपादित किया ।