সিস্টেমড ব্যর্থতার সাথে উবুন্টু 16.04 এ নেটওয়ার্ক ইন্টারফেসটির নামকরণ


14

আমি দুটি শারীরিক নেটওয়ার্ক কার্ড সহ একটি হেডলেস উবুন্টু 16.04 এলটিএস সার্ভার ব্যবহার করছি, যার নাম দেওয়া হয়েছে এনপি 5 এস0f0 এবং এনপি 5 এস0f1।

আমি এই ইন্টারফেসগুলির নাম পরিবর্তন করতে চাই এবং এই উদাহরণটি অনুসরণ করব । তাই আমি ফাইলটি তৈরি করেছি /lib/systemd/network/70-myinterface.link(মূল উত্সটি কাজ করে না বলে মনে হয়) (আমি সঠিক ম্যাক ঠিকানা সেট করেছি):

[Match]
MACAddress=12:34:56:78:9a:bc

[Link]
Name=dmz0

এবং সার্ভারটি পুনরায় বুট করে। দুর্ভাগ্যক্রমে ইন্টারফেসটির নতুন নামকরণ হয় নি, যদিও udevadmদেখায় যে আমার কনফিগারেশন ফাইলটি ব্যবহৃত হয়েছে:

$ udevadm info /sys/class/net/enp5s0f1
P: /devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper)
E: ID_MODEL_ID=0x1096
E: ID_NET_DRIVER=e1000e
E: ID_NET_LINK_FILE=/lib/systemd/network/70-myinterface.link  <-- my file
E: ID_NET_NAME_MAC=enx123456789abc
E: ID_NET_NAME_PATH=enp5s0f1
E: ID_OUI_FROM_DATABASE=Intel Corporation
E: ID_PATH=pci-0000:05:00.1
E: ID_PATH_TAG=pci-0000_05_00_1
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_VENDOR_ID=0x8086
E: IFINDEX=3
E: INTERFACE=enp5s0f1
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp5s0f1
E: TAGS=:systemd:
E: USEC_INITIALIZED=1900192

নতুন নামকরণ কেন কাজ করে নি সে সম্পর্কে আপনার কি ধারণা আছে?


1
আমি এই ফাইলটি তৈরি করার জন্য আমার / / etc / systemd / নেটওয়ার্কই সেরা অবস্থান হতে পারে thought
এনজিআরডস

@ এনজিআরহডস আমি উদ্ধৃত উদাহরণের ভিত্তিতে একটি টাইপো ধরেছিলাম, তবে কে জানে?
বয়স্ক গীক

এছাড়াও, চেক NetworkManager চলছে না, superuser.com/a/948996/127393 প্রস্তাব দেওয়া NetworkManager থাকার অগ্রাধিকার
NGRhodes

আমি অনুগ্রহ করার পরে আমি লক্ষ্য করেছি যে ১ 16.০৪-তে একটি নতুন উদেব রুল ফাইল রয়েছে যা সর্বদা ইউএসবি অ্যাডাপ্টারের জন্য ম্যাক অ্যাড্রেস টাইপ নামকরণকে নেটওয়ার্কডের পরামর্শ নেওয়ার আগে বাধ্য করে (/lib/udev/rules.d/73-usb-net-by -mac.rules)। এটি মোটেও অনুভূত হয় না ... আমাকে এর নিয়মটি পুরোপুরি অক্ষম করতে হয়েছিল, যার ফলে .link ফাইলটি আবার কাজ করে। যদিও এটি সবচেয়ে সঠিক বিকল্প কিনা তা আমি নিশ্চিত নই ''
অ্যান্টি হাপালা

ব্যবহার MACAddress= [Match]করা linkফাইলগুলিতে আমার পক্ষে কাজ করে না , সুতরাং Path=পরিবর্তে আমি শেষ করেছিলাম । আপনারও চেষ্টা করা উচিত। এছাড়াও আপনি যে linkফাইলটি আপনার ডিভাইসের সাথে udevadm test-builtin net_setup_link /sys/class/net/enp5s0f1কমান্ডের সাথে মেলে তা পরীক্ষা করতে পারেন
webKnjaZ

উত্তর:


8

এটি নাও সাহায্য করতে পারে .. আমি /etc/udev/rules.d পরীক্ষা করে দেখতে পারি এবং আপনার 70-প্রসিডেন্ট-নেট.rules আছে কিনা তা দেখুন। সেই ফাইলটি ব্যবহার করে আপনার নাম পরিবর্তন করতে সক্ষম হওয়া উচিত

আমার এইরকম দেখাচ্ছে:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e0:cb:ee:d7:ff:9a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

আপনার যদি এই ফাইলটিতে আপনার কার্ডের জন্য এন্ট্রি থাকে তবে আপনি "NAME = TheNameYouWant" পরিবর্তন করে নামটি যা চান তা পরিবর্তন করতে পারেন


ঠিক. আমি একটি উত্তর পোস্ট করতে যাচ্ছিলাম যার মধ্যে আমি আকর্ষণীয়ভাবে উল্লেখ করেছি যে, উবুন্টু ব্যবহার করছেন এমন কয়েক জন লোক আছেন যারা বলেছিলেন যে তাদের নেটওয়ার্কের নাম পরিবর্তন করার জন্য @ মফেলের পদ্ধতিটি কার্যকর হয়নি। আমি যা পরামর্শ দিতে যাচ্ছিলাম এটিই ছিল ... +1
বেনামে 2

এখানে অনুগ্রহ করা উচিত।
ইকনস

5

এমন একটি বিকল্পের জন্য যা ইউদেব বিধিগুলির প্রয়োজন নেই (সিস্টেমেড নেটওয়ার্কড। লিঙ্ক ফাইলগুলির বিকল্প) যা উবুন্টু 16.04 এর সাথে কাজ করে এবং অন্যান্য অনেক লিনাক্স সংস্করণ রয়েছে

উদাহরণ:

ifconfig peth0 down  
ip link set peth0 name eth0  
ifconfig eth0 up 

উপরের উদাহরণে Peth0 হ'ল আসল ইন্টারফেসের নাম এবং eth0 হ'ল কাঙ্ক্ষিত নাম। আপনার কাছে বর্তমানে পেথ যেখানে রয়েছে সেই নামটি এবং এথ০ যেখানে রয়েছে সেই নামটি প্লাগ করুন। কোন রিবুট প্রয়োজন বা পরামর্শ দেওয়া হয় না। দ্বিতীয় ইন্টারফেস কার্ডের জন্য প্রক্রিয়াটি পুনরাবৃত্তি করুন

কার্নেল ৪.৪.০-৩6-জেনেরিক # 55-উবুন্টু দিয়ে উবুন্টু 16.04 এ পরীক্ষিত

সম্পাদনা করুন: আপনি যদি পুনরায় বুট থেকে বেঁচে থাকা অবিরাম সমাধানের সন্ধান করেন তবে নেটওয়ার্ক ইন্টারফেসের নাম উবুন্টু 16.04 পরিবর্তন হচ্ছে দেখুন Edit

সূত্র: https://www.freedesktop.org/software/systemd/man/systemd.link.html

http://kernelpanik.net/rename-a-linux-network-interface-without-udev/

পরীক্ষামূলক.

দ্রষ্টব্য: যেহেতু @ অ্যান্টি-হাফল পদ্ধতি আগে কাজ করেছিল এবং হঠাৎ বন্ধ হয়ে গেছে আপনি জানতে আগ্রহী হতে পারেন যে "একটি বিশেষ ক্ষেত্র হিসাবে, একটি খালি ফাইল (ফাইলের আকার 0) বা একই নাম / dev / নাল দ্বারা নির্দেশক কনফিগারেশন ফাইলটি অক্ষম করে সম্পূর্ণ (এটি "মুখোশযুক্ত") "। <-Source


আমি আপনার প্রতিক্রিয়াটি খুব উপকারী হয়েছি, আপনাকে ধন্যবাদ +1 @ এল্ডারজিক

1
@ আলবার্তো আমি আনন্দিত যে এটি সাহায্য করেছে!
বয়স্ক গীক

দুঃখজনকভাবে যথেষ্ট এটি স্থির নয় তবে এখনও +1
ডলফেলার

@ ডিফলার আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ। যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনি এমন একটি সমাধান খুঁজছেন যা একটি পুনরায় বুট থেকে যায়। আমি কি তাতে পরিষ্কার?
বয়স্ক গীক


3
  • তিনটি কাস্টম নামকরণের পদ্ধতি, পদ্ধতিযুক্ত ব্যাখ্যা করা হয়েছে : অনুমানযোগ্য নেটওয়ার্ক ইন্টারফেস নামগুলি , উদেব নিয়মের সাথে সম্পর্কিত।

    systemd .link এর & udev নিয়মের ফোল্ডারের অগ্রাধিকার রয়েছে। /etcওভাররাইড /runওভাররাইড /lib

    সুতরাং বর্তমান সেটআপ পরীক্ষা করুন।

    # links
    ls -l /*/systemd/network/
    
    # rule that read links
    ls -l /*/udev/rules.d/80-net-setup-link.rules
    
    # rule that check for /etc/.../80-net-setup-link.rules & net.ifnames
    ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
    

    এই udev নিয়মগুলির যে কোনও পরিবর্তন (ওভাররাইড ফাইলগুলি যুক্ত / অপসারণ) কার্যকর হওয়ার পরে, বুট র‌্যাম ডিস্কটি আপডেট করা উচিত:

    sudo update-initramfs -u
    

    ডিফল্টরূপে, আপনি কেবলমাত্র এটিই খুঁজে পেতে পারেন files

    ~$ ls -l /*/systemd/network/
    /etc/systemd/network/:
    total 0
    
    /lib/systemd/network/:
    total 12
    -rw-r--r-- 1 root root 404 Jul 12 17:28 80-container-host0.network ##(virtual-interface)
    -rw-r--r-- 1 root root 482 Jul 12 17:28 80-container-ve.network ##(virtual-interface)
    -rw-r--r-- 1 root root  80 Jul 12 17:28 99-default.link
    
    
    ~$ ls -l /*/udev/rules.d/80-net-setup-link.rules
    -rw-r--r-- 1 root root 292 Jul 12 17:28 /lib/udev/rules.d/80-net-setup-link.rules
    
    ~$ ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
    -rw-r--r-- 1 root root 551 Jul 12 16:37 /lib/udev/rules.d/73-usb-net-by-mac.rules
    

    নীচের লিঙ্কে নথিভুক্ত হিসাবে আমি VBox তাজা 16.04 ইনস্টল এ তাদের সকলের পরীক্ষা করেছি, সমস্ত পদ্ধতি প্রত্যাশা অনুযায়ী কাজ করে:

    উবুন্টু 16.04 জটিল ইন্টারফেসের নাম

  • /etc/udev/rules.d/70-persistent-net-rulesসিস্টেমড। লিঙ্কের দ্বারা প্রতিস্থাপিত পুরানো রিলিজ থেকে (তবে সেগুলি স্বয়ংক্রিয়ভাবে তৈরি হয় না), আমি এটিকে এখানে অষ্টিহাপালার ক্ষেত্রে নয়, নির্দিষ্ট সমস্যার জন্য এর অস্তিত্ব পরীক্ষা করতে এখানে যুক্ত করেছি ।


1

আপনাকে নিজের initrdমতো করে কিছু আপডেট করতে হবে update-initramfs -k all -c, যেহেতু চলমান অবস্থায় udev ইতিমধ্যে এই কনফিগারগুলি প্রয়োগ করে initrd

উবুন্টু 16.04- এ আর 70-ধ্রুবক-নেট-বিধি ফাইল নেই।


1
এটি বিজোড়, এই 16.04 সিস্টেমগুলি করে। আহ তবে এটি একটি আপগ্রেড সিস্টেম system আপনি সঠিক যে এটি একটি নতুন ইনস্টল উপস্থিত নেই।
বয়স্ক গীক

0

আমার মন্তব্য করার মতো যথেষ্ট খ্যাতি নেই, তবে কেবলমাত্র চিহ্নিত উত্তরটিতে যুক্ত করার জন্য, উবুন্টু 16.04 এর পরিষ্কার ইনস্টলেশনগুলিতে /etc/udev/rules.d/70-persistance-net.rules ফাইল উপস্থিত থাকবে না। তবে, আপনি যদি এটি ম্যানুয়ালি তৈরি করেন তবে আপনি এখানে উত্তরের বর্ণনার মতো একটি লাইন যুক্ত করতে পারেন এবং এটি একটি পুরানো সংস্করণগুলির মতো কাজ করা উচিত, যার মধ্যে একটি উল্লেখযোগ্য পার্থক্য রয়েছে - কার্নেল প্যারামিটারটি নাম হিসাবে নির্দিষ্ট করা উচিত ডিফল্টরূপে ইন্টারফেস। উদাহরণস্বরূপ, যদি সিস্টেমটি ইন্টারফেসটির নাম "ens160" হিসাবে রাখে এবং আপনি এটি "eth0" এ পরিবর্তন করতে চান তবে লাইনটি দেখতে দেখতে পারে:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="ens160", NAME="eth0"

এটি কেবলমাত্র নির্দিষ্ট করা ম্যাকের সাথে মিলিত ইন্টারফেসের (এটিটিআর matching ঠিকানা} প্যারামিটারে) এবং কার্নেল প্যারামিটারের সাথে কার্নেলের নামের সাথে মেলে নিয়মকে বলে। বিকল্পভাবে আপনি সম্ভবত কার্নেল প্যারামিটার পুরোপুরি বাদ দিতে পারেন এবং এটিও কাজ করা উচিত।

সম্পাদনা: এবং ইতিমধ্যে উল্লিখিত হিসাবে, আপনি যদি .link ফাইল পদ্ধতিটি ব্যবহার করতে চান তবে এটি কার্যকর হওয়ার জন্য আপনাকে initramfs আপডেট করতে হবে। এছাড়াও নোট করুন যে কাস্টম .link ফাইলটি / etc / systemd / নেটওয়ার্কে তৈরি করা উচিত এবং / lib / systemd / নেটওয়ার্কের মধ্যে নয় (হয় কাজ করবে তবে সেরা অনুশীলন হ'ল / etc / systemd / নেটওয়ার্ক ব্যবহার করা যেহেতু এটি সেখানে - কাস্টম .link ফাইলগুলির জন্য মঞ্জুরি দিন যা / lib / systemd / নেটওয়ার্কের ডিফল্টগুলিকে ওভাররাইড করে)।

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