[gelöst] Brauche HIlfe beim Erstellen eines initrd Scriptes

  • Hallo zusammen...


    Ich bin der Verzweilung nache. Neuerdings funktioniert die Ermittlung eines Laufwerkes mit blkid in meinem initrd nicht mehr. Aber von vorne:
    Um zu sehen, ich den Syntax richtig habe, schrieb ich ein kleines Testcript:


    #!/bin/shLABEL='gentoo'
    echo "Crypt NICHT gesetzt"
    PATTY_BOOT_DEV=$(blkid -L "${LABEL}" -o device)
    echo "hallo $PATTY_BOOT_DEV"



    Und heraus kam:
    vdr gehlhajo # ./test
    Crypt NICHT gesetzt
    hallo /dev/sdc2


    soweit so gut . Wenn ich das aber in meinem initrd-Script übernahm:



    .
    .
    .
    else


    echo "Crypt NICHT gesetzt"


    PATTY_BOOT_DEV=$(blkid -L "${LABEL}" -o device)
    fi


    #---Images mounten------


    BASE="/mnt"
    NEWROOT="$BASE/newroot"
    OVERLAY="$NEWROOT/overlay"
    RO="$NEWROOT/ro"


    echo "checking Boot $PATTY_BOOT_DEV"
    echo "checking Overlay $OVERLAY"
    echo "checking Modus $PARAM_MODE"
    .
    .
    .


    Dann bleibt $PATTY_BOOT_DEV leider immer leer.


    Durch setzten von set -x konnte ich festellen, daß wirklich auch" blkid -L gentoo -o device" im Script ankommt.
    Nu weiß ich nicht mehr weiter... Habe auch keinen blassen Schimmer wie mein ein initrd -Script debugt....


    lg gehlhajo

    VDR-1: streamdev-server | Hummingboard2| TT 3600 USB | Siemens S500 Gehäuse | Archlinux mit eigen Skripten
    VDR-2: streamdev-client | rpihddevice | Raspberry 2b | Siemens S450 Gehäuse| Remote: URC6410 | LG 42LV4500 |
    Archlinux mit eigenen Skripten


    Einmal editiert, zuletzt von gehlhajo ()

  • Funzt es, wenn du den vollen Pfad zu blkid angibst? Also so etwas wie


    /usr/bin/blkid oder besser


    BLKID = $(which blkid)
    und blkid durch $BLKID ersetzen

  • Ich vermute das der PATH nicht passt.


    which findet dann auch das Programm nicht.


    Besser ist er schreibt am Anfrang des Skriptes:


    PATH=/usr/bin:/usr/sbin:/bin:/sbin:$PATH


    Dann funktioniert auch ein which blkid, und sicherlich findet er dann auch blkid.


    Ausserdem hoffe ich das in dem initrd die erste Zeile nicht wie in dem Test Skript aussieht.


    #!/bin/sh
    PATH=/usr/bin:/usr/sbin:/bin:/sbin:$PATH
    BLKID=$(which blkid)
    echo $BLKID

    Gruß
    Frodo

  • Also fehlender oder falscher Pfad ist es wohl nicht. Habe gerade mal mit Absicht den Aufruf falsch geschrieben und da hat er mir gleich angezeigt , daß er die Datei nicht findet. Hat er sonst nicht gemacht.....

    VDR-1: streamdev-server | Hummingboard2| TT 3600 USB | Siemens S500 Gehäuse | Archlinux mit eigen Skripten
    VDR-2: streamdev-client | rpihddevice | Raspberry 2b | Siemens S450 Gehäuse| Remote: URC6410 | LG 42LV4500 |
    Archlinux mit eigenen Skripten


  • Jetzt verstehe ich gar nichts mehr:
    Mir ist es gelungen, innerhalb der initrd eine shell zu starten. Wenn man blkid startet, findet er in der Tat nichts. Auch merkwürdig ( obwohl ich nicht weiß, ob das ev. normal ist): Unter /dev sind keine die PLatten / Partionen auch nicht zu finden. Die Knoten fehlen einfach...

    VDR-1: streamdev-server | Hummingboard2| TT 3600 USB | Siemens S500 Gehäuse | Archlinux mit eigen Skripten
    VDR-2: streamdev-client | rpihddevice | Raspberry 2b | Siemens S450 Gehäuse| Remote: URC6410 | LG 42LV4500 |
    Archlinux mit eigenen Skripten


  • So, Depp saß wie gewöhnlich vor dem Computer:
    Habe vergessen, die SATA-Treiber für mein Board mit den Kernel zu packen. (oder wahlweise mit in die initrd)
    Jetzt schein es zu laufen. Blkid findet wieder was......

    VDR-1: streamdev-server | Hummingboard2| TT 3600 USB | Siemens S500 Gehäuse | Archlinux mit eigen Skripten
    VDR-2: streamdev-client | rpihddevice | Raspberry 2b | Siemens S450 Gehäuse| Remote: URC6410 | LG 42LV4500 |
    Archlinux mit eigenen Skripten


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!