prefsck

  • sorry, hab die Fehlermeldung nicht genau gelesen.
    Gehe im Skript in Zeile 64-65, die so aussieht:


    if [ $[${Mounts}+1] -lt ${MaxMounts} -a \
    $[${NowTs}+108000] -lt ${NextCheckTs} ]; then


    und ersetze diese mit dem:


    if [ $((${Mounts}+1)) -lt ${MaxMounts} -a \
    $(({NowTs}+108000)) -lt ${NextCheckTs} ]; then


    dann müsste das Skript endlich laufen.


    grüße
    noname_gentoo

  • weiß einer wie das aussieht wenn man RAID+LVM benutzt? wohin müssen dann die Links nach oder vor lvm2 mdadm-raid und umountroot?
    meine fstab sieht so aus


    VDR-Server: AMD Athlon X2 5200+ ,ASUS M3N78 (Geforce8200), 2x 2GB RAM, 2xTT DVB-C 1501, 3x WD AV-GP 2000GB in RAID5, yaVDR 0.5
    Client 1: Desktop PC, Win7

    Einmal editiert, zuletzt von m. keller ()

  • Leider nicht...


    vor dem NowTs fehlte noch ein $, so dass ich das hier eingefügt habe:


    Code
    if [ $((${Mounts}+1)) -lt ${MaxMounts} -a \
        $((${NowTs}+108000)) -lt ${NextCheckTs} ]; then


    Damit habe ich aber das gleiche Problem wie vorher.


    Ich glaube aber, du wolltest auch das hier schreiben:

    Code
    if [ $((${Mounts}+1)) -lt $(({MaxMounts})) -a \
        $((${NowTs}+108000)) -lt ${NextCheckTs} ]; then


    Denn bem MaxMounts exisitiert ja das Problem.
    Das hilft erstmal auch; es gibt keinen Fehler mehr. Aber MaxMounts ist immer 0.


    Deshalb hab ich jetzt mal ein
    echo test $MaxMounts test
    eingefügt. Und siehe Da: MaxMounts wird nicht belegt. Das ist also das Problem.


    Wie ich gerade sehe, gilt das gleiche für die Variablen:
    $MaxMounts
    $Mounts
    $NextCheck


    Die Funktion getvalue ist aber zu hoch für mich. Aber ich denke, daran liegt es.


    Gruß,
    Hendrik

  • Zitat

    Original von henfri


    Code
    if [ $((${Mounts}+1)) -lt ${MaxMounts} -a \
        $((${NowTs}+108000)) -lt ${NextCheckTs} ]; then


    Richtig. Das wollte ich so schreiben.


    Zitat


    Ich glaube aber, du wolltest auch das hier schreiben:

    Code
    if [ $((${Mounts}+1)) -lt $(({MaxMounts})) -a \
        $((${NowTs}+108000)) -lt ${NextCheckTs} ]; then


    Nein, dass wollte ich auf keinen Fall schreiben, da $(({MaxMounts})) auf jeden Fall falsch ist. Der Befehl $(( ... )) soll eine mathematische Operation (+ oder - z.b.) ausführen. Wenn du einfach nur eine Variable abrufen willst, dann immer so: $MaxMounts oder ${MaxMounts}, das ist FALSCH {MaxMounts}.


    probiers mal damit:


  • Hallo,


    danke, das scheint zu klappen.


    Sollte man nicht jetzt noch einen Check hinzufügen, ob MaxMountCount=-1 ist? Denn so, wie das Skript ist, wird bei -1 ja immer gecheckt, wohingegen bei -1 NICHT gecheckt werden sollte, oder?


    Gruß,
    Hendrik

  • hallo,


    Code
    # Partition nur prüfen, wenn beim nächsten mounten oder innerhalb
      # der nächsten 30 Stunden ohnehin ein fsck fällig wäre
      if [ $((${Mounts}+1)) -lt ${MaxMounts} -a \
           $((${NowTs}+108000)) -lt ${NextCheckTs} ]; then
        echo "No need to check ${Drive}."
        continue
      fi


    in zeile 52 -a durch -o ersetzen.


    Das mit dem -1 dürfte kein Problem sein, da diese Regel ja nur greift wenn $Mounts <= $MaxMounts.


    Schöne Gruße
    noname_gentoo

  • Hallo,


    nee, das geht nicht.


    Gecheckt wird ja bein nächsten Start, wenn eins von beiden der Fall ist.
    Also darf jetzt (beim Shutdown) nur dann der check *ausgelassen* werden, wenn beides der Fall ist.


    Ich habe jetzt noch einen check auf -1 eingebaut. Damit scheint es zu funktionieren.


    Gruß,
    Hendrik

Jetzt mitmachen!

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