Anleitung fuer Umstellung auf ext2 mit oder ohne BA

  • Hallo,
    hier mal eine Anleitung wie man seine Festplatte im laufenden Betrieb auf ext2 umstellt.


    Threads dazu sind hier und hier.


    Ich beschreibe die Vorgehensweise an Beispiel meiner dm800.
    Im Flash ist Gemini 4.7, Barry Allen 5.0.34 ist installiert und Gemini 4.7 auch auf dem USB Stick als aktives Image.


    Wer keinen Barry Allen verwendet und einfach nur Gemini 4.7 im Image hat, kann dieser Anleitung auch folgen und spart sich das Editieren aller Dateien, die hinter /media/ba liegen. Der Rest funktioniert absolut genauso.


    Grund der Umstellung ist dafuer Sorge zu tragen, dass Aufnahmen nicht mehr gestoert werden koennen durch Loeschen von Dateien. Es geht darum die I/O-Performance zu steigern.


    Im USB-BA-Image muss das ext2 Kernelmodul installiert werden:
    Menue->Einstellungen->Software Management->Erweiterte Optionen->Paketverwaltung


    kernel-module-ext2 muss installiert werden!
    e2fsprogs-e2fsck und e2fsprogs-mke2fs sind default maessig drin, sollten aber kontrolliert werden.


    Jetzt das System rebooten und vom Barry Allen aus in das Flash-Image booten.


    Im Flashimage jetzt auch das kernel-module-ext2 hinzufuegen.


    In /etc/init.d/bootup UND /media/ba/ba/gemini2-470-dm800-201002090910/etc/init.d/bootup
    muessen folgende Aenderungen gemacht werden: (Der Name des BA-Image kann abweichen)


    Wer einen diff Output nicht lesen kann:
    Nach der Zeile "[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0" muss

    Code
    modprobe ext2


    eingefuegt werden.


    Nicht vergessen, diese Aenderung muss zweimal gemacht werden, einmal im Flash Image und einmal im USB Image, das koennen wir aber beides vom Flash aus machen.
    Also /etc/init.d/bootup und /media/ba/ba/gemini2-470-dm800-201002090910/etc/init.d/bootup aendern.


    Die naechsten beiden Datein sind /usr/script/sfdisk_script.sh UND /media/ba/ba/gemini2-470-dm800-201002090910/usr/script/sfdisk_script.sh die geaendert werden muessen.



    Wir aendern also einfach in der Zeile

    Code
    MKFS=/sbin/mkfs.ext3

    die 3 in eine zwei.


    Jetzt gibts das naechste Problem!
    Beim Herunterfahren des Gemini 4.7 wird die Festplatte nicht richtig abgehaengt.


    Wenn ein ext2 Filesystem nicht korrekt abgehaengt wird, wird es beim naechsten Boot als nicht sauber erkannt und nur read-only gemountet. Das Problem hatten wohl einige aus obigen Threads.


    Ein automatischer fsck ueber ein ext2 Filesystem ist auch bedenklich, da er Stunden dauern kann.


    Um alle Klarheiten zu beseitigen: Das ist wirklich ein unnoetiger Bug im Gemini, der dafuer sorgt, dass die Festplatte nie ordentlich abgehaengt wird.


    Da ich gerade wirklich nicht den Nerv habe, den Fehler im Gemini zu suchen, der verhindert, dass die Festplatte korrekt abgehaengt wird, mache ich einen bosen aber funktionierenden Hack in den Dateien /etc/init.d/umountfs UND /media/ba/ba/gemini2-470-dm800-201002090910/etc/init.d/umountfs:



    Ich fuege also nach der Zeile umount -f -a -r die Zeile

    Code
    mount -o remount,ro /dev/hda1 /media/hda1

    ein.


    Als naechstes brauchen wir tune2fs. Der Link dazu ist in diesem Posting.


    Das File herunterladen und ins /tmp der Box schreiben.


    Danach gehts jetzt so weiter:

    Code
    ipkg install /tmp/e2fsprogs-tune2fs_1.38-r6_mipsel.ipk
    
    
    rm /tmp/e2fsprogs-tune2fs_1.38-r6_mipsel.ipk
    
    
    init 4
    
    
    umount /dev/hda1


    Wenn sich die Platte nicht abhaengen laesst, dann sind es i.d.R. die NFS und lockd Prozesse, die darauf haengen. Gegebenfalls killen (mit SIGKILL, also mit -9, anders gehts nicht.


    Code
    fsck.ext3 -f /dev/ide/host0/bus0/target0/lun0/part1


    Eigentlich Luxus, ich moechte nur sichergehen, dass das Filesystem clean ist zuvor ich mit tunefs darum rumpfusche.


    Und bitte NIEMALS einen Filesystemcheck ueber ein gemountetes Filesystem!


    Code
    modprobe ext2
    cat /proc/filesystems


    In der Ausgabe muss jetzt ext2 vorkommen.


    Code
    tune2fs -O ^has_journal /dev/ide/host0/bus0/target0/lun0/part1


    Das dauert jetzt ein bischen. Bin ich eigentlich der einzige in der ganzen Linux Welt, der es bescheuert findet, zur Negation das "^", also das sekundaere Pipe Zeichen zu verwenden und nicht das eingefuehrte "!" ?


    Dieser Schritt wandelt das ext3 in ein ext2-Filesystem indem er das Journal entfernt.


    Danach machen wir noch einen Filesystemcheck:


    Code
    e2fsck -f /dev/ide/host0/bus0/target0/lun0/part1
    
    
    mount /dev/ide/host0/bus0/target0/lun0/part1 /media/hda1


    Wenn man nun "mount" eingibt, muss die Platte als ext2 gemountet erkannt werden.


    Nun rebooten wir und booten in das Barry-Allen USB Image.


    Hier installieren wir noch der Sauberkeit halber das tune2fs nach und schon sind wir fertig.


    Wenn nach einem Reboot die Platte nur read/only gemountet ist, habt ihr falsch gemacht.


    Wenn Ihr Files verloren habt, habt Ihr auch was falsch gemacht, aber ich bin nicht schuld.


    Wenn jemand den umount Fehler im Gemini findet und fixed, soll er mir bitte Bescheid sagen.


    Viel Erfolg


    AC

  • Vielen Dank für die excellente Anleitung.
    Ein Problem bleibt bei mir:


    Ausgangssituation:


    DB8000, GP4.7 im flash (kein BA)


    ext2 Kernel installiert und bootup angepasst,
    sfdisk_script.sh angepasst.


    in umountfs folgende Zeilen eingefügt:


    mount -o remount,ro /dev/hdc1 /media/hdc1


    mount -o remount,ro /dev/sdb1 /media/sdb1


    (die zweite Zeile ist für die CF Card)


    e2fsprogs-tune2fs_1.38-r6_mipsel.ipk installiert.


    > reboot


    CF Card ausgehängt und formatiert > wird als ext2 , rw angezeigt


    Swap Datei auf CF-Card installiert > swap aktiviert auf /media/sdb1


    alles klar swap läuft.


    >reboot
    CF-Card ist auf ro und swap ist nicht mehr aktiviert


    wird kein Swapfile installiert bleibt die CF nach einem reboot auf rw


    was macht die swapdatei das das "mount -o remount,ro /dev/sdb1 /media/sdb1" anscheinend nicht funktioniert?

    :499:
    Euer Gruftolm


    DM8000 2S
    DM7080HD OE2.5
    DM900 UHD OE2.5
    LG 55 UH8509
    Samsung UE43K57590

  • Zitat

    Original von gruftolm
    was macht die swapdatei das das "mount -o remount,ro /dev/sdb1 /media/sdb1" anscheinend nicht funktioniert?


    Das Swapfile verhindert den remount.


    Probier mal vor dem remount einen swapoff zu machen!


    Gruss
    AC

  • Hallo!


    Änderungen/Befehler bzgl. der DM8000:


    - mount -o remount,ro /dev/hdc1 /media/hdc1


    - umount /dev/hdc1


    - fsck.ext3 -f /dev/ide/host0/bus1/target0/lun0/part1


    - tune2fs -O ^has_journal /dev/ide/host0/bus1/target0/lun0/part1


    - e2fsck -f /dev/ide/host0/bus1/target0/lun0/part1
    - mount /dev/ide/host0/bus1/target0/lun0/part1 /media/hdc1


    Bezüglich der Swapdatei auf CF:


    Ich habe in dem File umountfs zusätzlich


    Code
    swapoff -a
    mount -o remount,ro /dev/sdb1 /media/sdb1


    eingetragen und einen Neustart gemacht. Das Ergebnis ist, dass zwar die HDD im rw Modus bleibt, allerdings wird die CF Karte ro gemounted. Somit ist auch kein Swapfile mehr aktiv.


    Woran könnte es noch liegen?


    Gruss
    Udo

  • Ich wundere mich, warum der Linux Kernel beim reboot(2) nicht selbst alle Mounts aufloest.


    Wurde da mit Absicht in dem Kernel was gedreht, dass er es nicht tut?
    Der sauberste Weg und einfachste Weg waere doch einfach im Kernel dafuer Sorge
    zu tragen, dass er die Filesysteme ordentlich abhaengt.


    Gibts hier jemand, der den in der Dreambox verwendeten Kernel gut kennt?


    Gruss
    AC

  • Zitat

    Originally posted by yogi2000
    Kann es sein, dass der dienst NFS Server nicht mit ext2 funktioniert?


    NFS geht defintiv mit ext2.


    Vielleicht beschreibst Du etwas ausfuehrlicher, was Dein Problem ist?


    Gruss
    AC

  • Hat sich gelöst, musste den Port ausschalten.
    Danke für die angebotene Hilfe.
    Habe es erfolgreich auf einer DM 8000 aufgesetzt.
    Gruss yogi

  • Zitat

    Originally posted by yogi2000
    Hat sich gelöst, musste den Port ausschalten.
    Danke für die angebotene Hilfe.
    Habe es erfolgreich auf einer DM 8000 aufgesetzt.
    Gruss yogi


    Dann bedank Dich doch mal beim Bedankomat, weil man sich schon bloed vorkommt, alles hier im Forum genau zu dokumentieren und dann kommt fast kein Feedback.


    Gruss
    Ac

  • Ist es denn bei den aktuellen 1.6 Experimental Images nicht ehe so das man beim Formatieren der neuen HDD eine Auswahl ext2 oder ext3 hat, so könnte man sich das ganze manuelle sparen oder hab ich das was falsch gelesen, hab vergessen welches Image das war?

  • Mit dem aktuellen Gemini 5.0 kann man ext2 oder ext3 beim Formatieren auswählen. Die Probleme (r/w), welche ich vorher mit der CF Karte hatte, sind damit auch erledigt - klappt alles wunderbar!


    Gruss
    Udo

  • Woher bekomme ich denn das ext2 module zum installieren? Bei meiner dm600 ist es offenbar nicht installiert. cat /proc/filesystems listet nur ext3

  • Warum wird ein solch essentielles Thema nicht im letzten E1 Image berücksichtigt? Die Besitzer von Boxen <800 sollten auch eine Chance bekommen, mit ext2 zu arbeiten.


    Könnte das Entwicklerteam das Image nicht noch einmal updaten und dieses Modul integrieren? Das 800er Modul lässt sich nicht installieren.