Ağ arabirim adı güncellemeden sonra 15.10'a değiştirildi


55

15.04 Ubuntu sunucusunu çalıştıran bir sanal makineyi yeni yayınlanan 15.10 sürümüne güncelledim.

Ortaya çıkan hiçbir sorun yoktu, ancak yeniden başlattıktan sonra makine ağ bağlantısını kaybetti. lspcidoğru kartı gösterdi ve lsmodsürücünün yüklendiğini kanıtladı.

Düzenleme veya kaldırma ile ilgili ipuçları /etc/udev/rules.d/70-persistent-net.rulesbaşarılı olmadı (hala ağ yok, yeni dosya yok), ünlü /lib/udev/write_net_rulesbile yoktu.

Udev ve systemd hakkında çok fazla ipucum yok, bu yüzden / sys / class / net dizininde ağ arayüz adının değiştiğini bulmak biraz zaman aldı. Adı ens32değiştirildi eth0. Değişimden sonra /etc/network/interfacesağ iletişimi tekrar etkinleştirildi.

Fakat - bu neden oluyor? Ve eğer olursa, arayüzler dosyası otomatik olarak güncellenmemeli mi?

Şimdi sanal ağ kartını sildim ve bir tane eth0daha yarattım eno16777728, o kadar da güzel değil.

Bu davranış (en azından yükseltme prosedürünün davranışı) bir hata olarak mı rapor edilmelidir?

Ayrıca, artık /etc/udev/rules.d/70-persistent-net.rulesmodası geçmiş mi? Ve (sadece kısmen ilişkili olsa da) ne olacak /etc/udev/rules.d/70-persistent-cd.rules?)

Düzenleme - ek soru (kabul edilen cevaptan sonra)/etc/network/interfaces Asıl arayüz adından bağımlılık beni rahatsız etti. Başka bir sanal makineye yeni bir * ubuntu yüklemesi denedim. Sürprizime göre, /etc/network/interfacessadece geridöngü aygıtı için bir başvuru içeriyordu. Ancak, orijinal VM'mde bu değişiklik ağın ortaya çıkmasını engelledi. Peki başka ne değiştirmem gerekiyor?

Düzen Eh, başka testinden Yeni Ubuntu bulundu Sunucu sahip ağ arabirim kartını /etc/network/interfacesXubuntu değil sahipken,. Belki kullanıyor network-managerya da başka bir şey kullanıyor .


Aynı hata 17.04'te tekrar belirir. Sadece sürüm öncesi aşamasında umut ediyorum.
avtomaton

Yanıtlar:


56

Ubuntu 15.10'da (Wily Werewolf), systemd / udev ile başlamak, tüm yerel Ethernet, Wlan ve Wwan arabirimleri ( kaynak ) için otomatik olarak öngörülebilir, kararlı ağ arabirimi adları atayacaktır .

Ağ arayüzleri için aşağıdaki farklı adlandırma şemaları artık yerel olarak udev tarafından desteklenmektedir:

  1. Firmware / BIOS içeren İsimler yerleşik aygıtlar için indeks numaralarını temin (örneğin: eno1)
  2. Firmware / BIOS sağlanan PCI Express Hotplug yuvası dizin numaralarını içeren İsimler (örnek: ens1)
  3. Donanım konektörünün fiziksel / coğrafik konumunu içeren isimleri (örneğin: enp2s0)
  4. Arayüzleri MAC adresini içeren İsimler (örneğin: enx78e7d1ea46da)
  5. Klasik, tahmin edilemez çekirdek-yerel ethX adlandırma (örnek:) eth0- kullanımdan kaldırıldı

Varsayılan olarak, systemd artık şu ilkeyi izleyen arabirimleri isimlendirecektir:

  1. Üretici yazılımındaki bu bilgiler uygulanabilir ve uygunsa geri
  2. Üretici yazılımındaki bu bilgiler uygulanabilir ve uygunsa geri
  3. Varsa geri dönüş
  4. varsayılan olarak kullanılmaz, ancak kullanıcı seçerse kullanılabilir.
  5. diğer tüm durumlarda.

Bunu nasıl devre dışı bırakıyorsun?

Temel olarak aşağıdaki seçeneklere sahipsiniz:

  • Kendi el ile adlandırma düzeninizi oluşturun, örneğin arayüzleri internet0 veya lan0 olarak adlandırın. Bunun için kendi udev kurallarınızı oluşturun ve cihazlar için name özelliğini ayarlayın. Varsayılan ilke dosyasından önce, örneğin adlandırarak sipariş ettiğinizden emin olun./etc/udev/rules.d/70-my-net-names.rules
  • Varsayılan politika dosyasını değiştirin, örneğin farklı bir adlandırma şeması seçmek için, örneğin tüm arayüz adlarını varsayılan olarak MAC adreslerinden sonra adlandırmak için: cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rulesardından dosyayı orada düzenleyin ve satırları gerektiği gibi değiştirin.
  • Geçiş net.ifnames=0çekirdek komut satırında.

6
bu kaynak? Ubuntu'nun resmi sürüm notu sayfasına bir link ekleyebilir misiniz (Bir yer olduğundan eminim, bulamıyorum!)
Rmano

2
Evet, bu kaynak.
kyodake

4
Hiç mantıklı gelmeyen, yeni bir yükleme değil, yükseltme yaptığı. Bu, gerçek bir Ubuntu hatası gibi görünmektedir, çünkü yükseltme sistemi çalışır durumda bırakmalıdır.
Will

1
@kyodake ubuntu 15.10'da / usr / lib / udev klasörü bulunmuyor, / lib / udev var
EdiD

1
@EdiD: tamam, hata düzeltildi.
kyodake

39

ArchWiki Beginnersguide tarafından söylenen daha kolay bir yol var .

Öncelikle cihazlarınızın MAC Adreslerini alın

$ ip link

Gibi tarafından çıkış gösterisi

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000     
          link/ether 20:68:9d:xx:xx:xx brd ff:ff:ff:ff:ff:ff

Cihazlarınızın MAC adresi

20:68:9d:xx:xx:xx

Sadece dosyayı oluşturun (yalnızca bir metin editöründe sudo haklarıyla açın)

$ nano /etc/udev/rules.d/10-network.rules    

Aşağıdaki satırı ekle

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"

Adı, istediğiniz adla değiştirin ve aa: bb: cc: dd: ee: ff cihazınızın MAC adresi ile.

Şimdi sadece bilgisayarınızı yeniden başlatın ve cihazın adı değişmiş olmalı.


En doğrudan ve basit çözüm! Büyük teşekkürler!
3bdalla

1
Kuralın vlanınıza uygulanmadığından emin olmak için ve köprü arayüzleri DRIVERS=="?*",sonra ekleyin ACTION=="add",. Ayrıca bakınız askubuntu.com/questions/767786/…
Donn Lee

16

Bu deneyin: düzenle senin /etc/default/grub. Satırı değiştir

GRUB_CMDLINE_LINUX=""

için

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

ve, nihayet koşmak:

# update-grub

root olarak ve sisteminizi yeniden başlatın.


Bu aynı zamanda netboot için de geçerlidir. append (...) net.ifnames=0 (...)
Syslinux.cfg dosyamdaki

Bu çözümler Ubuntu 16.04'te de mükemmel çalışıyor!
Nullldata

Yukarıdaki GRUB parametrelerini eklemek zorundaydım (net.ifnames = 0) ve vlansın çalışması için udev yeniden adlandırma kurallarını kaldırdım, ama şimdi her şey yolunda. Çözüm için teşekkürler.
Albert Veli

TEŞEKKÜR EDERİM. Ubuntu Sunucusu 16.04'ü başsız bir sunucuya kuruyorum ve ağ arayüzü hakkında ne isim verdiğimi ve sonuç olarak sunucunun ağ üzerinde olmadığını bilmiyordum. Bunu yaptım ve / etc / network / interfaces arabirim adı olarak "eth0" olduğundan ve sürücüyü sunucuya geri koyduğundan emin oldum. Şimdi çevrimiçi. Ubuntu'yu Acer Aspire H340 cihazına kurmayla ilgili talimatlar şu ana kadar güncel değil, bu yüzden aynı şeyi yapan başkalarının da benim kadar zaman kaybetmeyeceği umuduyla bir şeyler yazacağım.
MetalMikester

5

Bunun biraz geç olabileceğini biliyorum ve 10-network.rule'lerin eklenmesi çok yardımcı oldu, ancak tamamıyla değil. Yeniden adlandırmak için cihazın çekirdek adını eklemek zorunda kaldım. İşte /etc/udev/rules.d/10-network.rules'ı nasıl çalıştıracağım ...

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC:ADDRESS",KERNEL=="enp4s8", NAME="eth0"

ve KERNEL == "" yerine, çekirdeğin önyükleme yaparken cihaza ad verdiğini değiştirin.

HTH

KC


3

Eğer yeni bir kurulumunuz varsa

apt-get remove biosdevname

Sonra

update-initramfs -u

Udev net ruels dosyanız olup olmadığını kontrol edin. Eğer öyleyse, onu kaldırın.

rm /etc/udev/rules.d/70-persistent-net.rules

Şimdi / etc / network / interfaces komutunu düzenleyin, arayüzleri eth0, eth1, ... etc olarak yeniden adlandırın.

Yeniden Başlatma


2

Bu çalışmayı dosya oluşturarak aldım:

root@odroid:~# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth0", NAME="eth0"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.