Portál AbcLinuxu, 1. května 2025 06:58
Tento příběh je spíše takovým otvírákem pro diskuzi, zda je popisované chování normální a nebo má smysl začít lobovat za jeho změnu.
Sice platí, že člověk, a už vůbec ne admin, nemá spravovat co není rozbité, ale občas se zdá, že nová verze skýtá neodolatelné možnosti a pohodlí. A tak jsem se rozhodl vyrábět nové CF pro naše routery. Šlo to celkem dobře, což je neklamný znak blížící se katastrofy. Ale katastrofám je třeba předcházet a tak jsem CF pro náš nejhůře přístupný router, umístěný na vysokém komíně na který se leze zvenku po žebříku, mnohonásobně otestoval a prověřil.
Celá akce samozřejmě šla tradičně, začalo pršet a fičel ledový vítr. Ale to už je taková zásada, cokoliv se rozbije, rozbije s v místě, kde se k tomu nelze dostat, uprostřed noci a pokud možno při namrzajícím dešti. Samozřejmě nás počasí nezastaví a tak byla CF osazena, router nabootován a NIC. Systém, který bootoval na zemi nejméně 10x úspěšně nenabootoval ani za nic.
Nu vrátili jsme se k osvědčené verzi a já jsem se jal zkoumat, kde jsem udělal chybu. A co myslíte, chybu jsem udělal, když jsem zapomněl na udev.
Ten si zapamatoval MAC adresy ethernetových karet a když startoval v jiném počítači, tak našel "nové" karty a přidělil jim čísla eth2 a eth3, namísto původních eth0 a eth1. To vedlo k tomu, že samozřejmě konfigurace sítě selhala, neměla co konfigurovat. Řešení bylo prosté, smazat /etc/udev/rules.d/z25_persistent-net.rules
, a nechat jej na novém stroji založit znovu.
Tak teď když znáte pointu i atmosféru, pochopíte, že udev skoro až nemám rád. Resp. ono ani tak nejde o udev jako takový, ale scripty, které jej obklopují.
Považujete za správné, aby systém nerecykloval jména zařízení, pokud se změní jednoznačná identifikace zařízení? Tedy aby existovaly systémy, které mají jedinou ethernetovou kartu a ta neměla jméno eth0?
Tiskni
Sdílej:
V serveru by to prudit nemělo zvlášť v okamžiku, kdy ani jedna ze starých karet v novém systému neexistuje…Jenže právě kvůli tomuhle ti v novém serveru nebo po výměně síťovky nenaskočí síť a když k tomu nemáš připojený monitor ani jinou konzoli …
Zazil jsem motherboard, ktery po studenem startu mel integrovane sitovky v jinem poradi nez po teplem a prave pres pravidla v udev jsem ho umravnil
Máte-li jádro 2.6, pak se obecně o pořadí, v jakém jádro detekuje síťové karty, nedá obecně předpokládat vůbec nic.
Zda se, ze takto odporne se chova jen Etch a od nej odvozene distribuce. SUSE a Red Hat se chovaji prijatelne, sitove karty nechavaji na pokoji.
Tohle zaslouží trochu upřesnění, tedy aspoň co se SuSE týká. Verze SuSE s jádrem 2.4 (tedy do 9.0) nechávaly síťovým rozhraním skutečně jméno přiřazené jádrem. Protože se ale v jádrech 2.6 detekují zařízení jinak a není zaručeno, že pořadí jejich detekce (a tedy ani "jaderná" jména) bude persistentní; proto první verze s jádrem 2.6 (9.1 - 10.0*) přešly na přiřazení konfigurace ne jménu rozhraní, ale persistentnímu identifikátoru (u ethernetových karet odvozenému z MAC adresy), tj. např. ifcfg-eth-id-00:11:2f:5a:29:3e
místo ifcfg-eth0
. Pravděpodobně s ohledem na to, že většina ostatních distribucí (tedy aspoň těch, které problém řešily a nenechaly v něm uživatele vykoupat) zvolila řešení s přejmenováním síťových rozhraní pomocí udev, od verze 10.1* používá SuSE kombinovaný model, kdy rozhraní přejmenovává přes udev také na persistentní jména, ale konfiguraci v /etc/sysconfig/network
stále přiřazuje persistentnímu identifikátoru jako dříve.
* - nejsem si úplně jistý, zda přejmenovávání pomocí udev
používala až 10.1 nebo už 10.0
Podle me by to melo byt tak, ze pravidla pro udev ma clovek delat aktivne a ne aby vznikala sama od sebe.Presne tak. udev je docela dobry, kdyz z nej clovek vyhodi vsechna pravidla, ktera tam nastrkala distribuce, a napise si vlastni. V tech defaultnich jsou obcas i zbesile chyby, jako treba MODE="0644" pro /dev/input/eventX.
/etc/udev/readme-udev-arch.txt
.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.