fipsy
Stamm-User
- 293
Ich weiß nicht, ob dies ein spezielles CM7-Problem ist, aber ich poste es hier einfach mal. Vielleicht hat ja jemand Ahnung, wo das Problem liegt:
Beim Booten des Gerätes sichere ich immer einige Verzeichnisse auf die SD-Karte. Dazu habe ich in /etc/init.d eine Shellscript, das die SD-Karte mountet, die Daten kopiert und die Karte dann wieder unmountet. Das Ganze sieht etwa so aus:
Das Problem ist nun: Nur in etwa 50% der Fälle werden die Daten tatsächlich kopiert. In den anderen 50% passiert gar nichts. D.h. "gar nichts" ist der falsche Ausdruck. Es passiert schon was, hinterher liegen nämlich alle zu kopierenden Dateien als Fragmente im LOST.DIR
Und auch ein "Checkdisk" der FAT32-Partition ergibt eine Reihe verlorener Segmente. Daraus schließe ich, dass der Kopiervorgang noch gar nicht abgeschlossen ist, wenn das umount ausgeführt wird. Aber wie kann das sein??? Eigentlich sollte umount doch warten, bis alle Daten geschrieben und alle offenen Dateien geschlossen sind, bevor es das Device unmountet. Oder nicht?
Es ist eh blöd, dass bei der Ausführung der Scripte in /etc/init.d die SD-Karte noch nicht gemountet ist. Wann wird diese eigentlich gemountet und geschieht dies asynchron? Offenbar schon. Wie es aussieht, gibt es gar keine zuverlässige Methode, während des Bootvorgangs über init.d-Scripte auf die SD-Karte zuzugreifen, oder?
Außerdem kommt es hin und wieder vor, dass die SD-Karte read-only gemountet wird. Ich vermute, das hängt auch mit meinem Script zusammen. Hat jemand vielleicht ne Lösung? *heul*
Beim Booten des Gerätes sichere ich immer einige Verzeichnisse auf die SD-Karte. Dazu habe ich in /etc/init.d eine Shellscript, das die SD-Karte mountet, die Daten kopiert und die Karte dann wieder unmountet. Das Ganze sieht etwa so aus:
Code:
mount -w -t auto /dev/block/mmcblk0p1 /mnt/sdcard
cp -dR -f -L /data/data/blabla /mnt/sdcard/backup/
date >> /mnt/sdcard/.reboot.log
umount /mnt/sdcard
Und auch ein "Checkdisk" der FAT32-Partition ergibt eine Reihe verlorener Segmente. Daraus schließe ich, dass der Kopiervorgang noch gar nicht abgeschlossen ist, wenn das umount ausgeführt wird. Aber wie kann das sein??? Eigentlich sollte umount doch warten, bis alle Daten geschrieben und alle offenen Dateien geschlossen sind, bevor es das Device unmountet. Oder nicht?
Es ist eh blöd, dass bei der Ausführung der Scripte in /etc/init.d die SD-Karte noch nicht gemountet ist. Wann wird diese eigentlich gemountet und geschieht dies asynchron? Offenbar schon. Wie es aussieht, gibt es gar keine zuverlässige Methode, während des Bootvorgangs über init.d-Scripte auf die SD-Karte zuzugreifen, oder?
Außerdem kommt es hin und wieder vor, dass die SD-Karte read-only gemountet wird. Ich vermute, das hängt auch mit meinem Script zusammen. Hat jemand vielleicht ne Lösung? *heul*
Zuletzt bearbeitet: