Udev'i yeniden başlatmanın doğru yolu nedir?


46

eth1Arayüzümün adını olarak değiştirdim eth0. udevŞimdi config yeniden okumak nasıl istenir ?

service udev restart

ve

udevadm control --reload-rules

yardım etme. Yani yeniden başlatma dışında geçerli bir yolu var mı? (evet, yeniden başlatma bu konuda yardımcı olur)

  • evet, komutları hazırlamam gerektiğini biliyorum sudo, ama yukarıda gönderdiğimlerden herhangi biri ifconfig -açıktıda hiçbir şeyi değiştirmiyor : hala görüyorum eth1, değil eth0.

  • Sadece NAMEudev-kural çizgisinin özelliğini değiştirdim . Bunun etkisiz olması için hiçbir sebep bilmiyorsunuz.

Her iki komutun da yerine getirilmesinde herhangi bir hata yoktur , ancak ifconfig -açıktıdaki asıl arayüz adını değiştirmezler . Yeniden başlatma yaparsam - arabirim adı beklendiği gibi değişir.

Geliştirme amaçları için sanal makineleri (VirtualBox odaklı) klonlayan ve onları bir şekilde ön ayarlayan bazı senaryolar yazarım.

Bu yüzden VM'yi klonlamak, başlatmak ve MAC ağ arayüzü değiştiği sürece bir komut uygularım - udevikinci kuralı ağ kalıcı kurallarına ekler. Makine ilk kez başlatıldıktan hemen sonra 2 kural vardır:

  • eth0Orijinal VM görüntü MAC’te bulunduğu sürece bu mevcut değildir.
  • eth1, var, ancak tüm dosyalardaki tüm yapılandırmalar atıfta bulunuyor eth0, bu yüzden bu benim için iyi değil

İle Ben So sedsatırı silin eth0(o eskimiş ve klonlanmış görüntüde işe yaramaz) ve değiştirme eth1ile eth0. Yani şu anda geçerli kalıcı bir kural var, ancak hala eth1var /dev.

Sorun: Makineyi yeniden başlatmak istemiyorum (VM-sahne aşamasında iyi bir şey değil, başka bir zaman alacak) ve /devkullanmaya hazır VM'm var. herhangi bir yeniden başlatma olmadan.


Nasıl değişti eth1için eth0? Aygıt dosyasını yeniden adlandırdınız mı? Öyleyse, bunu yapmanın etkili bir yolu değildir (ve değişimin udevarka planın başarılı bir şekilde yeniden başlatılmasıyla geri döndürülmesini beklemelisiniz ). Başka bir yöntem kullandıysanız, lütfen onu ayrıntılı olarak açıklayın ve lütfen denediğiniz komutları çalıştırırken gördüğünüz tüm hata mesajlarının tam ve kesin metnini de verin ( udevarka planını yeniden başlatmak veya kurallarını yeniden yüklemek için). Bu bilgiyi sağlamak için sorunuzu düzenleyebilirsiniz.
Eliah Kagan

@Eliah Kagan: güncellendi. ps: neden geri döndürülmeli?
Olmamalı

udevcihazlarınızı dinamik olarak oluşturur /dev. Yeniden başlatırsanız, onları kurallarına göre yeniden oluşturur. Doğrudan onlara yapılan değişiklikler, genel olarak konuşursak, kalıcı değildir. Yeniden başlatma udeviyi çalışıyor gibi görünüyor , ancak cihaz adlarını tam olarak değiştirmediniz.
Eliah Kagan

@Eliah Kagan: belirli bir cihaz için bir tane bulamazsa udev sadece yeni kurallar ekler (değiştirmez) . Eşleşen bir kural varsa - sadece değişiklik yapmadan onu takip eder.
zerkms

@Eliah Kagan: ve onu doğru şekilde değiştirdim. Sadece yaptığım satırdaki bir karakteri değiştirebileceğime inanıyorum ;-) (ayrıca yeniden başlatma da yardımcı olur ve bu her şeyin kurallara uygun olduğunu kanıtlar)
zerkms

Yanıtlar:


29

Bu ağ yapılandırmasını yeniden yardımcı olur eğer bilmiyorum ama modifiye zaman /etc/udev/rules.d/70-persistent-cd.rulesgelen DVD cihazı bağlantısını düzeltmek için /dev/dvd1için /dev/dvd, ben çalıştırmak zorunda

sudo udevadm trigger

yeni linkleri almak için.


3
sudo udevadm trigger --action=changeNeyin güvenli olduğuna ve neyin güvenli olamayacağına dair bu e-postaya göre daha güvenli olduğuna inanıyorum udev: lists.ubuntu.com/archives/ubuntu-devel/2009-Ojan/027260.html
Ehtesh Choudhury 11:13

Gerçekten de denir/etc/udev/rules.d/70-persistent-net.rules
msanford

Ubuntu altında 15.04, udevadm triggerX11 oturumumu kapattı ve giriş ekranıma geri attı.
Ian D. Allen

20

Burada verilen tüm tavsiyeleri doğru sırayla birleştirmek zorundasınız:

  1. Ağı indir service networking stop
  2. Sürücü modülünü çekirdekten çıkarın
    1. Modülün adını bulun ve lspci -v"Kullanılan çekirdek sürücü:" ifadesini arayın.
    2. modprobe -r <driver module>
  3. Udev kurallarını yeniden yükleyin udevadm control --reload-rules
  4. Yeni kuralları tetikle udevadm trigger
  5. Sürücü yükle modprobe <driver module>
  6. Ağı yeniden başlat service networking start
  7. (isteğe bağlı) Arabirim adına başvurmadan önce arayüz adına iptablesbaşvuran tüm komut dosyalarını yeniden çalıştırın eth.

Sanırım adım 4 veya adım 5 gerçekten gerekli değil, ama bu adımlar benim için işe yaradı. Tetikleme komutunun zaten 5. adımı yapıp yapmadığını görmek için adım 2.1 ile 4. adımdan sonra kontrol edebilirsiniz. Yaptığınız bulguları yansıtmak için bu cevabı düzenleyin.


1
Ubuntu 15.04 'te listelenen tüm cihazlarla /etc/network/interfaces(böylece Ağ Yöneticisi onları yalnız bırakır): Tek yapmam gereken düzenlemeyi ve /etc/udev/rules.d/70-persistent-net.rulessonra # 2, # 3, # 5' i yapmaktı. Tüm ağı durdurmaya gerek yok; başka bir şeye gerek yok.
Ian D. Allen

5

Ben de benzer bir problem yaşadım. Yeniden başlatmak için zaman ayırmak istemediğimden, Chris Wesseling'in önerisini kullanarak bir liner koştum.

/etc/init.d/networking stop && modprobe -r tg3 && udevadm denetimi - yeniden yükleme kuralları && udevadm tetikleyicisi && modprobe tg3 && /etc/init.d/networking start

Bu benim için Ubuntu 12.04.02 sunucusunu kullanarak çalıştı. Nics, tg3 çekirdek modülü sürücüsünü kullanıyordu, bu nedenle arayüzlerini kullandığınız modüle tg3'ü değiştirin. Benimkinde kullanılanları buldum /etc/udev/rules.d/70-persistent-net.rules:

PCI aygıt 0x14e4: / sys / aygıtlar / pci0000: 00/0000: 00: 1c.4 / 0000: 02: 00.1 (tg3) <-kuşak için çekirdek modül sürücüsü

Sahip olduğum tek sorun basit bir rota ekleme komutu ile çözdüğüm kötü bir rotaydı. Yardımın için teşekkürler Chris!



3

sudo /etc/init.d/udev restarthile yapmalı. Çalıştıysanız, denediğiniz bazı komutlar sudoda etkili olabilir.


Hayır, ifconfig -ahala bana eski eth1arayüzü gösterir
zerkms

3

Bu güvenle yapmalı:

sudo reload udev

Bu komutu hiç sorun yaşamadığım için kullandım.


Hayır, ifconfig -ahala bana eski eth1arayüzü gösterir
zerkms

1

Bunu bir süredir aynı amaçlarla araştırıyordum ve canlı bir sistemdeki ağ arayüzü adını değiştirmenin bir yolunu bulamadım.

Gittiğim geçici çözüm şablondaki /etc/udev/rules.d/70-persistent-net.rules dosyasını silmek, bir sonraki açılışta herhangi bir ağ kartını eth0 olarak göreceği anlamına geliyor.


1

Kural değişikliğini tetiklemek için udev'i yeniden yüklemeniz gerekir , ancak sürücü modülünü kaldırma / yeniden yüklemediğiniz sürece cihaz yeniden adlandırılmaz.

Yani modprobe -r e1000 && modprobe e1000udev yeniden yükledikten sonra hile yapmak gerekir. Tabii ki, ağa ihtiyacınız varsa ve yalnızca e1000 arayüzleri varsa bunu yapmayın.



0

Bu yüzden benim için Ubuntu 12.04 ile VirtualBox'da, genellikle ethernet ve kablosuz arasında geçiş yapıyorum.

Bu yüzden bağlantım değiştiğinde, Aygıtlar> Ağ Ayarları'ndan Bridged Adapter'ü seçmeliyim. Ya 'Intel 82579LM Gigabit Ağ Bağlantısı' ya da 'Intel Centrino Ultimate-N 6300 AGN'.

Bunu yaptıktan sonra koşabilirim

sudo modprobe -r e1000
sudo service udev restart
sudo modprobe e1000
ping google.com # To test I ran this between each command.

Bu sadece yukarıdaki cevapları okuduktan sonra sonuçlarımın bir açıklaması.

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.