Puncte:0

În timpul cărui cârlig dracut poate un client PXE să redenumească nume de interfețe previzibile cu o regulă udev?

drapel jp

tl;dr: În timpul încărcării unui initramfs (execuția modulelor dracut) pe un client PXE, trebuie să redenumesc numele interfeței (predictibile) date de kernel (în acest moment sunt nume ethX imprevizibile). În acest fel, clientul PXE va porni întotdeauna de la o interfață cu nume previzibil. În prezent citesc informațiile hardware cu dmesg în timpul cârligului dracut cmdline. Aș putea pisică o regulă udev la /usr/lib/udev/rules.d/ aici, astfel încât sistemul să poată redenumi interfețele atunci când dracut declanșează mai târziu udev?

Practic, am asta în cârligul dracut cmdline:

# Prima citire hardware furnizat
dacă dmesg | grep -q „SOME_BOARD_NAME”; atunci
    root=$(echo „$rădăcină” | sed -e 's/PLACEHOLDER_FILE/SOME_ROOTFS.sqsh/')
    # În plus, sunt necesare unele reguli udev specifice acestei plăci.
# mkdir -p /etc/udev/rules.d
# echo „instalează regulile acestor plăci!\n”
# echo << EOF > /etc/udev/rules.d/70-persistent-net.rules
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*1c.0/0000:07:00.0/net/*", NAME="eth0"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*01.1/0000:05:00.0/net/*", NAME="eth1"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*01.1/0000:05:00.1/net/*", NAME="eth2"
#EOF
elif dmesg | grep -q „SOME_OTHER_BOARD_NAME”; atunci
    root=$(echo „$rădăcină” | sed -e 's/PLACEHOLDER_FILE/SOME_OTHER_ROOTFS.sqsh/')
    echo „instalați alte reguli specifice plăcii!\n”
# mkdir -p /etc/udev/rules.d
# echo << EOF > /etc/udev/rules.d/70-persistent-net.rules
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*1c.5/0000:09:00.0/net/*", NAME="eth0"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*02.2/0000:02:00.0/net/*", NAME="eth1"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*02.2/0000:02:00.1/net/*", NAME="eth2"
#EOF
altfel
    warn „Nu am detectat nicio placă - implicit la SOME_OTHER_ROOTFS.sqsh”
    root=$(echo „$rădăcină” | sed -e 's/PLACEHOLDER_FILE/SOME_OTHER_ROOTFS.sqsh/')
fi

Mai multe informatii: Echipa mea și cu mine avem un singur computer de bord pe care PXE pornește de la un server extern. Urmează o succesiune de:

  1. SBC trage un initramfs și îl încarcă.
  2. Initramfs execută un modul dracut care citește informațiile hardware ale SBC (în timpul cârligului dracut „cmdline”).
  3. SBC derulează un anumit sistem de fișiere rădăcină, în funcție de hardware-ul său.

Din păcate, vechile nume de interfețe ethX (imprevizibile) fac uneori ca SBC să tragă în jos sistemul de fișiere rădăcină prin interfața de rețea greșită.

Planul meu este să elimin net.ifnames=0 și biosdevname=0 de la linia de comandă a nucleului folosită la pornirea PXE (pasul 1). Apoi, după ce nucleul a atribuit nume previzibile, vreau să extind modulul dracut pentru a adăuga reguli udev pentru a le redenumi cu numele vechi. Sper că atunci când dracut declanșează udev, SBC va trage întotdeauna sistemul de fișiere rădăcină peste interfața corectă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.