বিকল্প কার্নেল সহ প্রাক্কলিত নেটওয়ার্ক ইন্টারফেস নাম ব্যবহার করুন Use


12

প্রায় ক্রমাগত, আমি উবুন্টু কার্নেল কনফিগারেশন ব্যবহার করে উবুন্টু কার্নেল পিপিএ , বা কার্নেলগুলি নিজেই সংকলন করেছি।

সমস্যাটি যখন আমি স্টক কার্নেলটি ব্যবহার করি তখন এটি অনুমানযোগ্য নেটওয়ার্ক ইন্টারফেসের নামগুলি (যেমন "p4p1") ব্যবহার করে ডিফল্ট মনে হয় তবে আমি যখন কোনও বিকল্প কার্নেল ব্যবহার করি তখন এটি পুরানো পদ্ধতিটি (যেমন "eth0") ব্যবহার করে ডিফল্ট মনে হয়।

এই প্রশ্নের সাথে সত্যই প্রাসঙ্গিক না হলেও, আমার পরীক্ষার কম্পিউটারে আমার একটি হার্ড ডিস্ক ব্যর্থতা ছিল এবং আমি উবুন্টু সার্ভার 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

উবুন্টু পিপিএ কার্নেল থেকে 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ফাইল তৈরি করার অনুমতি দিয়ে এবং তারপরে যথাযথ ডিভাইসের নামের জন্য এটি সম্পাদনা করে সাময়িকভাবে এই সমস্যাটি পেরিয়ে গিয়েছি । শেষ পর্যন্ত, আমি ফাইলটি থেকে মুক্তি পেতে চাই।

উত্তর:


34

আপনাকে 3 টি জিনিসের মধ্যে পার্থক্য করতে হবে:

  • অনুমানযোগ্য ইন্টারফেসের নাম
  • biosdevname
  • 70-persistance.rules udev নিয়ম

আপনি হয় এই সমাধানগুলির মধ্যে একটি ব্যবহার করতে পছন্দ করেন তবে আপনি একই সময়ে 2 বা 3 ব্যবহার করেন না। (প্রকৃতপক্ষে, আপনি এটি করতে পারেন তবে একটি অগ্রাধিকার গ্রহণ করবে এবং অন্যটিকে মুখোশ দেবে)

বর্তমান পরিস্থিতির একটি ভাল ভূমিকা হ'ল উবুন্টু মেল মেলিং তালিকার পোস্ট

অনুমানযোগ্য ইন্টারফেসের নাম

অনুমানযোগ্য ইন্টারফেসের নামগুলি v197 ইন উত্পন্ন হওয়ার পর থেকে একটি udevd জিনিস/lib/udev/rules.d/80-net-setup-link.rules

সিস্টেমেড ডিফল্টভাবে নতুন অনুমানযোগ্য ইন্টারফেসের নাম ব্যবহার করে। তবে উবুন্টুতে আপস্ট্রিম সিস্টেমড না হওয়া পর্যন্ত আপনাকে ব্যবহার করে অপ্ট-ইন করতে হবেnet.ifnames=1

এটা তোলে কার্নেল সংস্করণ কোন ব্যাপার না আপনি দৌড়াচ্ছে। তবে গ্রাব কনফিগারেশন পরিবর্তন করে এটি কনফিগার করতে আপনার কার্নেল কমান্ড লাইনটি ব্যবহার করতে হবে /etc/default/grub, যেমন:

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"

এবং চালান

sudo update-grub

14.04 বা 14.10 এ, সিস্টেমড ব্যতীত, নোটে নীচে বর্ণিত হিসাবে এটি 70-প্রসিডেন্ট-নেট.rules অপসারণ করার জন্য যথেষ্ট হওয়া উচিত।

biosdevname

বায়োসদেব নামটি সিস্টেমডে পূর্বাভাসযোগ্য ইন্টারফেস নামের তুলনায় অনুরূপ সমস্যা সমাধানের জন্য একটি ডেল প্রচেষ্টা। এটি উবুন্টু সার্ভারে ডিফল্ট । প্যাকেজ ইনস্টল করে আপনি এটি পেতে পারেনbiosdevname

sudo apt-get install biosdevname

বিঃদ্রঃ

গ্রাব কনফিগারেশনে কার্নেল কমান্ড লাইনটি ব্যবহার করে আপনি এটি অক্ষম করতে পারেন:

GRUB_CMDLINE_LINUX_DEFAULT="biosdevname=0"

এবং চালান

sudo update-grub

অথবা কেবল প্যাকেজটি আনইনস্টল করুন।

sudo apt-get purge biosdevname
sudo update-initramfs -u

udev নিয়ম

এটি উবুন্টু ডেস্কটপে ডিফল্ট । Udev দ্বারা নিয়ম /lib/udev/rules.d/75-persistent-net-generator.rulesপ্রথম বুট একটি কাস্টম নিয়ম সময় সৃষ্টি /etc/udev/rules.d/70-persistent-net.rulesআপনার ইন্টারফেসের জন্য ক্রমাগত নাম পেতে আপনার ইন্টারফেসের MAC ঠিকানা সঙ্গে।

বিঃদ্রঃ

আপনি যদি ইতিমধ্যে udev নিয়ম ব্যবহার করে থাকেন তবে আপনাকে অপসারণ /etc/udev/rules.d/70-persistent-net.rulesকরতে হবে এবং এটি চালানোর জন্য প্রতিটি বুটে পুনরায় জেনারেট হওয়া এড়াতে হবে

sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules

এর পরে, আপনি যদি সিস্টেমেড ব্যবহার করেন তবে উপরের বর্ণনা অনুসারে আপনার পূর্বাভাসযোগ্য ইন্টারফেসের নাম বেছে নিতে হবে।


1
আপনার উত্তরের জন্য ধন্যবাদ. আমার কম্পিউটারটি সার্ভার সংস্করণ, ডেস্কটপ সংস্করণ নয়। পার্থক্যটি মোকাবেলায় আমি আপনার উত্তরে একটি সম্পাদনা জমা দেব (বায়োদেব নামটি ডিফল্টরূপে ইনস্টল করা হয়েছিল এবং তাই গ্রুবের মাধ্যমে বিশেষভাবে অক্ষম করা দরকার)। আমার চিন্তার ত্রুটিটি হ'ল যে আমি আপনার দেওয়া লিঙ্কটিতে বর্ণিত হিসাবে net.ifnames=1এবং এর সাথে বিভিন্ন ইন্টারফেসের নাম প্রত্যাশা করেছি biosdevname=0, তবে আমি পুরানো নীতি0 এবং নৈতিকতা পেয়েছি। যাইহোক, সঠিক ইন্টারফেসের নামগুলি /etc/udev/rules.d/70-persistent-net.rulesপ্রতিবিম্বিত /etc/network/interfacesকরার জন্য আমি সম্পাদনা করার পরে এটি এখন (কোনও সহ ) কোনও কার্নেলের পক্ষে কাজ করে ।
ডগ স্মিথিজ

আমি উবুন্টু 15.10 ডেস্কটপে আছি এবং আমি মনে করি না যে উদেব আর কোনও ডিফল্ট নয়। আমার নেটওয়ার্ক ডিভাইস নামকরণ করা হয় wlp4s0এবং enp0s31f6, এবং ফাইল /etc/udev/rules.d/70-persistent-net.rules& /lib/udev/rules.d/75-persistent-net-generator.rulesকোন অস্তিত্ব নেই।
জোনাথন হার্টলি

উবুন্টু ১.0.০৪ (বিশেষত সিস্টেম 220-7 ), এর 75-persistent-net-generator.rulesপক্ষে ফাইলটি হ্রাস করা হয়েছে net.ifnames
200_সুসেসি

4
  1. উবুন্টু সার্ভারে 16.04LTS আমি যা করেছি তা চালানো হয়েছিল:

    ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
    
  2. তারপরে ফাইলটি তৈরি করুন

    sudo vi /etc/systemd/network/10-internet.link
    

    এবং নিম্নলিখিত যোগ করুন

    [Match]
    Path=pci-0000:(your device mac address)
    
    [Link]
    Name=eth0 (or whatever you want to name it)
    

    :wq ফাইল সংরক্ষণ করতে

  3. তারপরে আপনার /etc/network/interfacesফাইলটি পুনরায় বুট করুন এবং সামঞ্জস্য করুন .. তারপরে আবার রিবুট করুন

আশা করি এটি কাউকে সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.