Das checken einer Partition auf der FB selbst braucht aber viel Zeit und CPU
lieber nicht checken und fröhlich weiterschreieben? oder einfach nicht mounten, benutzer soll sich drum kümmern? ersteres wohl auf keinen fall, zweiteres ziemlich aufwändig für den nutzer. soll die fb doch fehler korrigieren, auch wenn's lange dauert.
@coolphoenix: Man kann die Prüfung im Lesemodus durchführen, wie wir bereits irgendwo anders diskutiert hatten.
okey, dachte das höchstens bei ro - wo ist denn genau irgendwo anders?
Herman: Beim mounten von ext3 sieht man Warnmeldungen, wenn gechecked werden sollte. Ext3 mountet normalerweise trotzdem RW, aber gibt halt eben Warnungen aus wie "maximum mountcount reached"
maximum mount-count ist ja kein fehler, nur eine empfehlung - sollte ja auch bei ner fb nicht all zu häufig vorkommen (nach 40-60 mal mounten kommt das erst... selbst wenn man die fb jeden tag neustartet etc.). das kommt also nicht so häufig vor.
schlimmer ist es doch, wenn das system nicht sauber unmounted wurde (needs_recovery ist gesetzt) - dann muss (bei ext3) das journal zumindest abgespielt werden, bei ext2 müsste ein voller check laufen. bin mir nicht ganz sicher, ob für ersteres e2fsck nötig ist, für's zweite offensichtlich schon.
Mal sehen, wie sich sowas einbauen lässt. Das Problem ist, dass das mounten in den Tiefen von AVM-Skripte passiert. Unser fs_mount() sitzt da ziemlich am Ende der Kette. Das als Rückgabewert zurückzuliefern ist nicht sinnvoll. Aber vielleicht kann man ja irgendwo unter /tmp dann so eine Datei anlegen, die dann die "unsauberen" Partitionen beinhalten würde. Un diese Datei könnte man dann mit mounted.cgi, oder was auch immer auswerten. Somit würde man eine saubere Schnittstelle zwischen dem automount, mounted.cgi und check-Routinen verschaffen.
das wäre aber so ein gefrickel und gerade ziemlich unsauber. erst wird gemountet, falls dann gesehen wird, die platte ist unsauber, doch wieder unmountet. zwischendurch wurden schon befehle der autorun.sh abgespielt, die hotplug chain hat ftpd/samba neugestartet und und und. oder wird die platte dann nicht gemountet? dann kann doch an dieser stelle, statt in tmp etwas anzulegen, der check passieren.
ich will jetzt eigentlich nichts sagen, da ich ja nicht der bin, der das programmiert und den aufwand habe, aber wenn man sich schon so viele gedanken darüber macht, dann sollte man versuchen es richtig zu lösen. und richtig bzw. am wenig aufwändigsten ist (meiner meinung nach), irgendwo in den tiefen des avm-skripts einen befehl zwischenzuschieben, der zuerst den zustand der platte prüft, bei bedarf die fehlerkorrektur vor dem mounten startet oder halt nicht, und dann das avm-skript normal weiterläuft. wo dafür die richtige stelle ist, ob das wirklich so geht usw. kann ich nicht sagen, da muss man erstmal die hotplug chain gut verstehen, aber das wäre eine saubere lösung. die autorun.sh/autoend.sh haben ja auch ihren platz in der hotplug-chain gefunden, von daher sollte das doch machbar sein. evtl. noch per webiface konfigurierbar machen, ob der user den check will (für den, dem es zu lange dauert, der deaktiviert es und nimmt inkonsistenz in kauf), und gut ist.
bei dem ganzen hackt es aber natürlich an dem, dass die tools, die die platten checken, erst mal auf die box müssten - bei 16mb flash / neueren modellen vermutlich kein problem, bei anderen schon eher gewaltig... und man müsste wissen, ob es bei ntfs/fat sowas wie "needs_recovery" gibt - ich meine aber, bei einem windows-rechner schon mal die meldung nach einstecken eines sticks gesehen zu haben, dass der stick nicht sauber entfernt wurde - also scheint es sowas auch dort zu geben.