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)
--- etc/init.d/bootup.orig 2010-03-10 19:50:54.000000000 +0100
+++ etc/init.d/bootup 2010-03-10 19:51:35.000000000 +0100
@@ -6,6 +6,8 @@
echo 10 > /proc/progress
[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
+modprobe ext2
+
mount -t sysfs sysfs /sys
echo 12 > /proc/progress
Alles anzeigen
Wer einen diff Output nicht lesen kann:
Nach der Zeile "[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0" muss
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.
--- usr/script/sfdisk_script.sh.orig 1970-01-01 01:00:00.000000000 +0100
+++ usr/script/sfdisk_script.sh 2010-03-10 19:53:52.000000000 +0100
@@ -5,7 +5,7 @@
SDISK=$3
VOLUME=$4
SFDISK=/sbin/sfdisk
-MKFS=/sbin/mkfs.ext3
+MKFS=/sbin/mkfs.ext2
DEVPART=$DEV"1"
SCRIPTNAME="[sfdisk_script.sh]"
OPTIONS="-m0 -O dir_index"
Alles anzeigen
Wir aendern also einfach in der Zeile
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:
--- etc/init.d/umountfs.orig 1970-01-01 01:00:00.000000000 +0100
+++ etc/init.d/umountfs 2010-03-12 01:06:26.000000000 +0100
@@ -13,6 +13,8 @@
mount -o remount,ro /mnt/ram
umount -f -a -r
+mount -o remount,ro /dev/hda1 /media/hda1
+
mount -o remount,ro /
: exit 0
Alles anzeigen
Ich fuege also nach der Zeile umount -f -a -r die Zeile
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:
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.
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!
In der Ausgabe muss jetzt ext2 vorkommen.
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:
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