Timing-Probleme bei udev

Christoph Pleger Christoph.Pleger at cs.tu-dortmund.de
Do Aug 12 18:51:39 BST 2010


Hallo,

ich habe öfter mal Timing-Probleme mit udev. Das äußert sich dadurch,
dass beim Booten von besonderen Devices (USB-Stick, CD, ISO-Image)
bestimmte Device-Knoten unterhalb von /dev mal bei manchen Bootvorgängen
erzeugt werden, bei anderen Bootvorgängen aber nicht.

Z.B. werden auf ein und demselben Rechner beim Booten von Festplatte
immer die Deviceknoten für den Sound (z.B. /dev/dsp) erstellt, beim
Booten von einem selbst bootfähig gemachten USB-Stick jedoch manchmal
nicht.

Oder wenn ich ein Image für eine bootfähige CD erstelle, das Image auf
eine CD brenne und von der CD boote, wird /dev/cdrom korrekt als
rootfs gemountet, wenn ich aber direkt das ISO-Image als CD-Abbild
für eine virtuelle Maschine verwende und damit boote, kann /dev/cdrom
nicht gemountet werden, weil der Link /dev/cdrom auf die richtige
Devicedatei nicht erstellt wurde. Sowohl bei dem echten Rechner wie
auch bei der VM ist das CD-Gerät als Master am sekundären
IDE-Controller angeschlossen. Hinzu kommt, dass sich das Verhalten
der zur Initial Ramdisk gehörenden Skripte verändert, wenn ich
Debug-Ausgaben hinzufüge, z.B. wenn ich in scripts/local vor der
Zeile 

while [ -z "${FSTYPE}" ]; do

einfüge:

echo "FSTYPE = $FSTYPE"
ls -al /dev/cdrom*

bleibt FSTYPE leer, einschließlich in der Shell, die sich dann
wegen des erfolglosen Mountversuchs öffnet, wenn ich die beiden
Zeilen aber nicht einfüge, ist hinterher FSTYPE=iso9660, wobei sich
dann wieder die Frage stellt, wie wait-for-root das Dateisystem von
$ROOT ermitteln kann, wenn ROOT=/dev/cdrom ist, dieser Deviceknoten aber
gar nicht existiert. Oder existiert der Knoten erst und
verschwindet dann wieder? Alles sehr merkwürdig.

Kann mir jemand bei einer Lösung dieser Timing-Probleme
weiterhelfen?

Viele Grüße
  Christoph