Bagaimana cara membuat ulang 70-persistent-net.rules tanpa reboot?

14

File /etc/udev/rules.d/70-persistent-net.rulesdihasilkan secara otomatis pada sistem Linux dengan udev, jika tidak ada, selama reboot. Tapi saya ingin tahu cara membuat file aturan ini (dengan perintah) tanpa me-reboot server.

Saya mencari Google sementara waktu dan menemukan bahwa file aturan dihasilkan oleh skrip ini:

/lib/udev/write_net_rules

Namun, tidak mungkin untuk menjalankan skrip ini dari baris perintah, karena (saya berasumsi) skrip ini ingin dimulai oleh udev, dengan beberapa variabel lingkungan diatur dengan benar. Memulai secara manual mencetak pesan kesalahan "missing $ INTERFACE". Bahkan jika saya mengatur env variabel INTERFACE = eth0 sebelum awal skrip, itu masih mencetak kesalahan "tidak ada kecocokan yang valid". Belum lagi saya memiliki dua antarmuka ( eth0dan eth1) dan saya ingin file aturan dihasilkan untuk keduanya.

Saya juga berpikir untuk memicu peristiwa udev seperti ini, berharap ini akan memulai skrip dari udev itu sendiri, tetapi tidak ada yang berubah:

udevadm trigger --type=devices --action=change

Jadi, adakah yang tahu cara membuat ulang aturan net yang tetap dalam file /etc/udev/rules.d/70-persistent-net.rulestanpa reboot?

Tomas M
sumber
Apa distribusimu? Sistem init macam apa yang digunakan?
michas
1
Saya akan mengatakan itu tidak relevan. Saya menggunakan Slackware dengan eUdev dan sysvinit. Saya sedang memeriksa skrip startup untuk mencari tahu apa yang dieksekusi yang menghasilkan file aturan, tetapi hanya menemukan pemicu udevadm, dengan komentar bahwa ini adalah perintah untuk menghasilkan aturan yang persisten, tetapi entah bagaimana ini hanya berfungsi saat reboot, tidak efek jika saya menjalankannya secara manual.
Tomas M
1
Mungkin relevan karena saya, di Arch, tidak memiliki 70-persistent-net.rulesmaupun /lib/udev/write_net_rulesscript. Oleh karena itu, saya tidak dapat memeriksa, tetapi mungkin $INTERFACEvariabel diatur dalam skrip itu sendiri. Kemungkinan besar itu dilewatkan sebagai argumen. Bisakah Anda menunjukkan kepada kami isi skrip?
terdon
Script hanya menggunakan $INTERFACEvariabel. Ada lebih banyak variabel yang hanya digunakan, tidak pernah dideklarasikan. Itu karena itu disebut oleh udev, dan udev menetapkan semua variabel env sebelum menjalankan skrip saat boot.
Tomas M
Apakah Anda benar-benar perlu tahu cara membuat ulang, atau dapatkah Anda mengedit file untuk mencerminkan kenyataan baru?
roaima

Jawaban:

5

Menurut halaman --action=changemanual adalah nilai default untuk udevadm.

   -c, --action=ACTION
       Type of event to be triggered. The default value is change.

Karena itu lebih baik Anda coba --action=addsaja. Ini akan membantu:

/sbin/udevadm trigger --type=devices --action=add
buru-buru
sumber
intel_rapl: tidak ada domain rapl yang valid ditemukan dalam paket 0
Tiina
1

Di Ubuntu Server 16.04LTS, 70-persistent-net.rules tidak ada.

semua yang saya lakukan adalah menjalankan:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Kemudian buat file menggunakan

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

dan tambahkan yang berikut ini

[Match] 
Path=pci-0000:(your device mac address)

[Link] 
Name=eth0 (or whatever you want to name it)

:wq untuk menyimpan file

kemudian reboot dan sesuaikan file / etc / network / interfaces Anda. Kemudian reboot lagi.

jadey1412
sumber
9
Pertanyaannya adalah "Bagaimana cara membuat ulang 70-persistent-net.rules tanpa reboot? " Jawaban Anda berisi dua reboot. Bagaimana ini merupakan jawaban untuk pertanyaan itu?
G-Man Mengatakan 'Reinstate Monica'
0

Saya memiliki masalah yang sama, tetapi saya perhatikan saya masih bisa melihat antarmuka dalam ip addrdaftar. Saya menggunakan yang berikut (sebagai root):

# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules
# replace the 00's with the real mac addr

Ulangi untuk setiap antarmuka. Ini digunakan untuk "memulihkan" file saya. (Catatan: satu permintaan akan mencantumkan semua antarmuka + menambahkan nama untuk mencocokkan, jadi saya sarankan Anda mengintip file keluaran setelah satu permintaan)

Jelas ada perbedaan antara implementasi dan skrip dukungan UDEV OS dan saat ini. Sebagai catatan, saya menggunakan CentOS 6.8 ketika saya berhasil melakukannya.

Kredit - Saya kebanyakan mereferensikan situs ini. Ada komentar beberapa utas yang membahas tentang memodifikasi skrip, tapi saya lebih suka menggunakan variabel lingkungan karena lebih bersih: https://access.redhat.com/discussions/1240213

saus21
sumber
Sial - tunggu. Maaf, itu adalah perintah yang tidak berhasil. Saya perlu memperbarui jawabannya dengan langkah yang saya lakukan
gravy21
Oke, saya telah memperbarui bagaimana saya benar-benar memperbaiki milik saya. Semoga berhasil jika berlaku untuk situasi Anda.
gravy21