[HowTo]C´T VDR - nerviges fsck vom Start beim Shutdown erledigen + passende Animation für GraphLcd

  • Hallöchen liebe Mit-VDR´ler


    gelegentlich muß ich unverhältnissmäßig lange auf den Start von meinem VDR warten, und zwar weil ein FileSystemCheck über meine Video -oder Systempartition fliegt...


    Das kann leicht zu Mißverständnissen führen...
    ...da denkt die Frau im Haus schonmal, der Rechner ist hängen geblieben und drückt den reset !! :schiel ...nicht gut...


    Außerdem bin ich noch über diese schönen Screens für GraphLcd unter LinVDR gestolpert... An dieser Stelle Vielen Dank an NoTape :]


    Lange Rede, kurzer Sinn :


    Ich will den langen fsck anstatt beim Booten beim Shutdown, da stört er nicht.
    Außerdem wird der FileSystemCheck auf dem GraphLcd angezeigt, damit man sich nicht wundert, warum die Kiste nicht ausgeht...


    -------------------------------------------------------
    Erstmal wie hier die FileSystemCheck-Animation zum Laufen bringen.
    Ich habe das Verzeichniss für die *.glcd-Dateien "/usr/share/vdr-plugin-graphlcd/splash/fsck" genannt. Dort alle fsck-.graphlcd-Dateien reinkopieren.


    Nun der Test: (vdr stoppen) showpic -c /etc/graphlcd.conf -d EuerDisplayType -s 500 -e $(ls /usr/share/vdr-plugin-graphlcd/splash/fsck/*.glcd) &


    Anzeige läuft? Na dann, weiter geht´s... ;)


    Erstellen einer Datei /etc/init.d/fsck (z.B. mit vi, nano, mcedit)
    Folgendes kommt da rein...



    Zeile 5 - 9 müßt ihr noch an eure Gegebenheiten anpassen.


    Datei speichern, ausführbar machen mit "chmod a+x /etc/init.d/fsck"


    Das ganze wird noch garniert mit einem Link ; entweder in /etc/rc0.d/ oder in /etc/rc6.d/ ; je nachdem, ob euer System beim runterfahren einen Reboot oder Halt macht...
    Der Link MUSS nach dem umountfs-Aufruf(hier /etc/rc0.d/S40umountfs)
    und nach einem evtl. vorhand. umountrootfs
    und vor dem halt-Aufruf(hier /etc/rc0.d/S90halt) erfolgen !!


    z. B.
    ln -s /etc/init.d/fsck /etc/rc0.d/S41fsck


    --------------------------------------------------------
    Zur Fehlerüberprüfung kann man das Script mit sh -x /etc/init.d/fsck ausführen, falls das nötig sein sollte...
    -------------------------------------------------------


    Zum Testen habe ich per "tune2fs -C29 /dev/hda1" den MountCount von hda1 auf 29 erhöht. MaxMountCount der hda1 ist 30.
    Wenn jetzt ein Shutdown erfolgt, wird (wenn alles geklappt hatt) vor dem Shutdown noch der Fsck für alle Platten, die es nötig haben, ausgeführt.


    Viel Erfolg beim Nachbasteln 8)


    Kommentare und Fragen sind gern gesehen :]


    ...Dieser Thread hatt mich auf die Idee gebracht


    MfG


    Crue

  • Hallo Crue,


    ich wollte schon immer eine Animation auf meinem glcd haben wenn der fsck läuft, aber wenns geht dann beim booten, da es mehr sinn macht die Platte vor dem Systemstart zu checken. Leider hab ich es bis heute nicht hinbekommen die Animation beim fsck laufen zu lassen. Die Start- und Stopanimationen von NoTape funktionieren bei mir wunderbar.


    Ich hab schonmal rausgefunden, dass die Rootpartition an folgender Stelle falls nötig überprüft wird:


    /etc/rcS.d/S10checkroot.sh


    Da dies aber nicht so lange dauert, würde ich die Animation auch nur dann laufen lassen, wenn auch die anderen Partitionen gecheckt werden. Das geschieht denk ich mal hier:


    /etc/rcS.d/S30checkfs.sh


    Ist es möglich die glcd Animation an dieser Stelle aufzurufen und wenn ja wie? Ich hab versucht die Animation einfach dazwischen zu schieben, aber es hat irgendwie nicht geklappt und ist jetzt erstmal auskommentiert.



    Gruß


    tec

  • Hiho


    Zitat

    aber wenns geht dann beim booten, da es mehr sinn macht die Platte vor dem Systemstart zu checken.

    Auch bei mir wird fsck beim Systemstart aufgerufen ! Es erkennt dann aber, das letztens erst ein kompletter Check stattgefunden hatt... Ich denke, das ist in Ordnung so :)
    Wird ja auch normalerweise nicht jedesmal ein kompletter Check ausgeführt...


    Zitat

    Ist es möglich die glcd Animation an dieser Stelle aufzurufen und wenn ja wie?

    Ich glaube, da hast du Trauer... Ich hab´s auch versucht, die GLCD-Animationen im Boot-Vorgang nach vorn zu verschieben(ich zeige mir damit eine Start-Animation an), hatt leider noch nicht geklappt. X(


    Dazu aus der README von dem GLCD-Boot-Animations-Script :


    Vielleicht hast du ja den rettenden Einfall... wenn ja, lass es uns wissen :D


    MfG


    Crue

  • Nun klappt alles so wie ich es mir vorgestellt habe. :]


    Damit die glcd Animationen auch beim fsck laufen wenn der rechner bootet, wird direkt checkfs.sh angepasst:


    /etc/init.d/checkfs.sh
    NEU ist Zeile 10-29, 54-58, 61-65


    Damit auch die Start- und Stopanimationen funktionieren, wird eine kleine Änderung an der Reihenfolge der Startscripte vorgenommen und das nötige Modul in /etc/modules eingetragen.


    /etc/modules

    Code
    ide-cd
    ide-disk
    ide-generic
    budget
    dvb-ttpci
    parport_pc   #<- wichtig für die Start und FSCK Animationen!


    Dazu wird noch folgendes Script erstellt:
    /etc/init.d/glcd_splash.sh


    Die Reihenfolge der symlinks in /etc/rcS.d kann z.B. so aussehen:


    /etc/rcS.d/


    glcd_splash.sh (S31start_splash) muss nach checkfs.sh starten und lirc noch vor vdr(devel).
    Die Startanimation muss auch kurz bevor der VDR das glcd-plugin startet zu ende sein. Deswegen sind START_DELAY und alle anderen Konfigurationsvariablen in /etc/init.d/checkfs.sh und /etc/init.d/glcd_splash.sh anzupassen.


    Die Stopanimationen werden folgendermaßen eingebunden:

    Code
    ln -s ../init.d/glcd_splash.sh /etc/rc0.d/K01stop_splash
    ln -s ../init.d/glcd_splash.sh /etc/rc6.d/K01stop_splash


    S44sleep führt ein "sleep 60" aus, damit der vdr in ruhe starten kann.
    Hotplug fehlt bei mir deswegen, weil alle nötigen Module in /etc/modules eingetragen sind und die dvb-firmware in die dvb-module integriert wurde. Das hat die Bootzeit um 20sec verkürzt.
    Der VDR muss natürlich nicht bereits in /etc/rcS.d starten, aber so ist es um ein paar sec. schneller. Runlevel 2 ist bei mir eigentlich nur noch für samba,sshd,vdradmin u.ä. da.


    Screens gibts hier.



    Gruß


    tec

    5 Mal editiert, zuletzt von tecfreak ()

  • erstmal großen dank an crue für dieses geniale howto, leider will es bei mir nicht so ganz funktionieren..


    mit

    Zitat


    showpic -c /etc/graphlcd.conf -d EuerDisplayType -s 500 -e $(ls /usr/share/vdr-plugin-graphlcd/splash/fsck/*.glcd) &


    krieg ich die schöne animation auf mein glcd, dann dein fsck script erstellt und


    mit

    Zitat

    chmod a+x /etc/init.d/fsck

    ausführbar gemacht und mit

    Zitat

    ln -s /etc/init.d/fsck /etc/rc0.d/S41fsck

    in den runlevel 0 gelinkt, da mein system beim shutdown wirklich aus geht und somit keinen reboot macht..


    dann mit

    Zitat

    tune2fs -C29 /dev/hda

    die mount zahl erhöht, system per fb ausgeschaltet, aber leider kein fsck.. :(


    ausgabe des scripts mittels

    Zitat

    sh -x /etc/init.d/fsck

    :



    anmerkung: hab das script nach dem ersten test ausgeführt, deshalb der 30er mountcount (glaube ich zumindestens).. also nochmal ausgemacht, aber auch das hat nix gebracht..


    hab auch mal ins syslog geschaut, weder beim booten noch beim shutdown wird ein fsck durchgeführt..


    gruß,
    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • ich denke schon:



    liegt es vlt daran, dass /dev/hda1 meine root partition ist, und diese (S60) erst nach dem fsck script umounted wird ?


    gruß,
    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • ok daran lags.. als S61fsck läufts perfekt. vlt solltest du oben dein howto diesbzgl ergänzen.


    mich wundert allerdings dass das bei dir mit hda1 funktioniert hat.. nutzt du ctvdr ? vlt hat umountroot da einen niedrigeren wert..
    unter debian jedenfalls nicht.


    gruß,
    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Hiho


    Zitat

    ok daran lags.. als S61fsck läufts perfekt.

    :tup

    Zitat

    .. nutzt du ctvdr ?

    Erkennbar an dem Name des Thread´s und meiner Signatur ;)

    Zitat

    vlt solltest du oben dein howto diesbzgl ergänzen.

    Erledigt.

    Zitat

    vlt hat umountroot da einen niedrigeren wert..

    Ist ja lustig, ich habe überhaupt kein umountrootfs... :rolleyes:

    Zitat

    unter debian jedenfalls nicht.

    Das ist auch so eine Sache... C´T-VDR IST Debian,; allerdings stark modifiziert...Wo wir grade dabei sind. Deine Signatur verwirrt mich!! C´T-VDR? Debian? was denn nun?


    MfG


    Crue

  • Zitat

    Original von Crue
    Erkennbar an dem Name des Thread´s und meiner Signatur ;)


    jo, ich wollte nur nochmal nachfragen, weil oft ists so dass die signatur ned aktualisiert wird ;)


    Zitat

    Original von Crue
    Ist ja lustig, ich habe überhaupt kein umountrootfs... :rolleyes:


    wahrscheinlich ne ctvdr abart *gg*


    Zitat

    Original von Crue Deine Signatur verwirrt mich!! C´T-VDR? Debian? was denn nun?


    habs mal geupdated, ich nutze debian etch als basis mit den ctvdr paketen.. meines erachtens nach die goldene mitte :)


    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Hallo,


    eine Anmerkung dazu, die mir gerade einen Mountcount von 282 für /video beschert hat:


    Wenn man eine der zu checkenden Partitionen auf einem RAID hat, darf Sxxmdadm-raid erst nach dem fsck laufen, sonst erkennt fsck die Partition gar nicht erst.


    Das gleiche Problem gibt es anscheinend beim Hochfahren - mein /dev/md0-RAID5 ist anscheinend schon seit ziemlich langer Zeit nicht mehr gecheckt worden.


    Jetzt ist dank des shutdown-fsck-Skriptes der WAF gerade wieder mächtig gestiegen.


    Btw.: Kann man eigentlich außer direkt auf der Konsole irgendwo die Ausgaben des fsck sehen? Die Logfiles sind nach dem umount ja nicht mehr zugreifbar, oder?


    Grüße,
    Carsten


    Asrock 4CoreDualSATA2 R2.0, VIA KT800, Celeron 2800, 512 MB, 250 GB PATA System,
    4 x 250 GB SATA RAID 5 (No Spare) /video, c't-vdr 4.5 + e-tobi, dist-upgrade auf etch, Intel PRO/1000MT, Kernel 2.6.26-bpo
    2 x Hauppauge Nova-T 2, 2 x Hauppauge MediaMVP E1 unter VOMP

  • Ich habe Xubuntu 9.04 installiert und nutze auch das Skript. Ich habe es angepaßt (ohne Display und Festplatte heißt sda1). Wenn ich den Count auf 29 setze und runterfahre, kriege ich folgendes angezeigt:


    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/302452


    und


    https://bugs.launchpad.net/ubuntu/+bug/357578


    Tut das dem ganzen irgendeinen Abbruch? Es wird auch nicht angezeigt, ob die Festplatten geprüft werden. Die Festplatte rödelt halt ne Weile und irgendwann geht der Rechner aus. Ich gehe also mal davon aus, dass es dennoch klappt. Was würde denn angezeigt, wenn ein Fehler vorliegt? Muss ich dafür ein log checken?


    Danke,
    co.smo

  • Zitat

    Original von Crue
    gelegentlich muß ich unverhältnissmäßig lange auf den Start von meinem VDR warten, und zwar weil ein FileSystemCheck über meine Video -oder Systempartition fliegt...


    Wenn Dich der lange fsck stört, warum benutzt Du dann nicht ein Filesystem das ohne auskommt?


    Bye...


    Dirk

  • Hallo,
    es scheint bei mir nur an einer Kleinigkeit zu hapern, aber ich weiß nicht, was es ist. Ausführbar hab ichs gemacht. Wenn ich den Computer runterfahre, wird das Skript nicht ausgeführt. Wenn ich es teste kriege ich folgende Ausgaben:


    c@Fernsehkiste:~$ sh -x /etc/init.d/fsck
    + DrivesToCheck=/dev/sda1 /dev/sda5
    + RunFsck=false
    + tune2fs -l /dev/sda1
    + grep Mount count
    + cut -c 27-
    tune2fs: Permission denied beim Versuch, /dev/sda1 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + MountCount=
    + echo Mount Count from /dev/sda1 =
    Mount Count from /dev/sda1 =
    + tune2fs -l /dev/sda1
    tune2fs: Permission denied beim Versuch, /dev/sda1 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Maximum mount count
    + cut -c 27-
    + MaxMountCount=
    + echo Max Mount Count from /dev/sda1 =
    Max Mount Count from /dev/sda1 =
    + let MountCountZahl=+1
    /etc/init.d/fsck: 1: let: not found
    + [ -ge ]
    + RunFsck=true
    + echo ---Run fsck for /dev/sda1 is needed---
    ---Run fsck for /dev/sda1 is needed---
    + [ true == true ]
    [: 1: ==: unexpected operator
    + RunFsck=false
    + tune2fs -l /dev/sda5
    tune2fs: Permission denied beim Versuch, /dev/sda5 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Mount count
    + cut -c 27-
    + MountCount=
    + echo Mount Count from /dev/sda5 =
    Mount Count from /dev/sda5 =
    + tune2fs -l /dev/sda5
    tune2fs: Permission denied beim Versuch, /dev/sda5 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Maximum mount count
    + cut -c 27-
    + MaxMountCount=
    + echo Max Mount Count from /dev/sda5 =
    Max Mount Count from /dev/sda5 =
    + let MountCountZahl=+1
    /etc/init.d/fsck: 1: let: not found
    + [ -ge ]
    + RunFsck=true
    + echo ---Run fsck for /dev/sda5 is needed---
    ---Run fsck for /dev/sda5 is needed---
    + [ true == true ]
    [: 1: ==: unexpected operator


    bzw. als sudo das:


    c@Fernsehkiste:~$ sh -x /etc/init.d/fsck
    + DrivesToCheck=/dev/sda1 /dev/sda5
    + RunFsck=false
    + tune2fs -l /dev/sda1
    + grep Mount count
    + cut -c 27-
    tune2fs: Permission denied beim Versuch, /dev/sda1 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + MountCount=
    + echo Mount Count from /dev/sda1 =
    Mount Count from /dev/sda1 =
    + tune2fs -l /dev/sda1
    tune2fs: Permission denied beim Versuch, /dev/sda1 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Maximum mount count
    + cut -c 27-
    + MaxMountCount=
    + echo Max Mount Count from /dev/sda1 =
    Max Mount Count from /dev/sda1 =
    + let MountCountZahl=+1
    /etc/init.d/fsck: 1: let: not found
    + [ -ge ]
    + RunFsck=true
    + echo ---Run fsck for /dev/sda1 is needed---
    ---Run fsck for /dev/sda1 is needed---
    + [ true == true ]
    [: 1: ==: unexpected operator
    + RunFsck=false
    + tune2fs -l /dev/sda5
    tune2fs: Permission denied beim Versuch, /dev/sda5 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Mount count
    + cut -c 27-
    + MountCount=
    + echo Mount Count from /dev/sda5 =
    Mount Count from /dev/sda5 =
    + tune2fs -l /dev/sda5
    tune2fs: Permission denied beim Versuch, /dev/sda5 zu öffnen
    Kann keinen gültigen Dateisystem-Superblock finden.
    + grep Maximum mount count
    + cut -c 27-
    + MaxMountCount=
    + echo Max Mount Count from /dev/sda5 =
    Max Mount Count from /dev/sda5 =
    + let MountCountZahl=+1
    /etc/init.d/fsck: 1: let: not found
    + [ -ge ]
    + RunFsck=true
    + echo ---Run fsck for /dev/sda5 is needed---
    ---Run fsck for /dev/sda5 is needed---
    + [ true == true ]
    [: 1: ==: unexpected operator


    Danke schonmal für Eure Tips!

Jetzt mitmachen!

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