/sd-ext/.xdata: Read-only

F

Florianer

Neues Mitglied
Threadstarter
Hallo,

tl;wr.
sd-ext verabschiedet sich nach beliebigem App-Crash und a2sd xdata quittiert das mit "File system read-only". Was muss man wo und wie eingeben, damit das System wieder läuft?

wir haben hier ein Problem, dass uns verfolgt und nicht loslässt. Wir kennen weder Grund, noch Ursache. Haben aber Vermutungen. Haben schon Einiges gelesen, aber anscheinend nicht genug Ahnung von der Materie.

So, nun zu der Situation:
Wir haben hier ein HTC Desire bravo.
Das Gerät wurde gerootet, ist *** UNLOCKED *** und S-On.
CWM-based Recovery v6.0.4.5
Installiert wurde ein ev_nighlies@evervolv.codefi.re Android 4.4.4 vom 17. August 2014


Da das Desire über chronischen Speichermangel klagt, haben wir mittels Terminal su -> a2sd xdata alles auf die SD Card verschoben. Haben sowohl Samsung 32 GiB, als auch Hama 32 GiB mit 28 GiB fat und 4 GiB ext2|ext3|ext4 partitioniert. Das System läuft dann eine unbestimmte Zeit. Zu irgendeinem Zeitpunkt kommt der Crash. In unserem letzten Fall war das gestern Abend, als die Kamera-App abgeschmiert ist. Danach hat das System neu gebootet und alles war weg.
Es sind nur noch ein leeres System mit den out of the box apps vorhanden. Auf die SD-Karte kann zugegriffen werden. Ein Erneutes Terminal su -> a2sd xdata bringt Folgendes:

Code:
/sd.ext not mounted properly, it might have errors
Found block device: /dev/block/mmcblk0p2
Warning:
This moves /everything/ on /data to /sd-ext/xdata. You may experience significant performance loss. I highly recommend you use a class 6 or 10 sdcard
Do you wish to continue? (y|n) y
Removing flag dc2sd
Removing flag a2sd
Removing flag ad2sd
Setting flag xdata
/system/bin/a2sd: line 73: /sd-ext/.xdata: Read-only file system
chmod: /sd-ext/.xdata: No such file or directory
Your phone needs to be rebooted
Reboot now? (y|n)
Gehe ich nun wieder in das Recovery, erhalte ich ganz unten eine
"Warning: No file_contexts" Ich kann zwar nun auf "Install zip from /storage/sdcard0 gehen und sehe auch den Inhalt der Karte, aber das sd-ext ist weg.

Via Kartenleser kann ich unter Ubuntu auf die sd-ext Partition zugreifen und die Daten als root kopieren. Formatiere ich nun die ext-Partition (egal, welches), kann ich das su -> a2sd xdata wieder durchführen. Alles tut dann, bis wieder irgendeine App sich verabschiedet. Das ist für Unterwegs total unpraktikabel, außerdem müssen alle Apps wieder installiert werden, denn kopiere ich alle Daten unter Ubuntu wieder zurück, ist das sd-ext wieder futsch.

Da stellen sich nun Fragen wie:
Was passiert da genau, wenn eine App abschmiert?
Warum kann der Absturz einer App - es muss ja noch nicht mal eine System-App sein, dass sd-ext kaputt machen?

-->> Was genau ist die Ursache, dass Android denkt, dass das System read-only ist und wie kann man das rückgängig machen? <<--

Ich habe auch schon versucht, zu remounten, aber alles ohne Erfolg. Auch SDFix Tools haben's noch nicht gebracht. Hinterher ist es sowas triviales wie in einer property file was ändern oder über den Terminal Emulator ein Flag entfernen. Ich meine, es ist ja alles da. Es wirkt wir ein Schutzmechanismus, dass nach dem Absturz nichts kaputt geht.

Da ich ganz oben was von nicht mit der Materie vertraut geschrieben habe, bräuchte ich eher so ne step by step Anleitung, statt mit foobar -o xr geht das, wenn ich nicht mal weiß, wo ich den Befehl abzusetzen habe. Ansonsten liefere ich gerne noch mehr Informationen, sollte was fehlen und probiere auch gerne verschiedene Lösungsvorschläge aus.

schon mal Danke fürs Lesen!
Florianer


tl;dr
sd-ext verabschiedet sich nach beliebigem App-Crash und a2sd xdata quittiert das mit "File system read-only". Was muss man wo und wie eingeben, damit das System wieder läuft?
 
magicw

magicw

Super-Moderator
Teammitglied
Habe den Thread mal in den Root-bereich verschoben, weil es kein HTC Desire bravo Forum gibt.

Ich kenne euer komisches xdata-Script nicht - klingt mir aber sehr obskur.

Warum nutzt ihr nicht einfach Link2SD und Foldermount? Die SD-Karte ist mit einer 2.Partition vorbereitet - also ideal für Link2SD.
Und Folder auf der internen SD-Karte leitet ihr per Foldermount auf die ext.SD-karte um.

Die beiden Tools sind allgemein verbreitet und genutzt und es gibt für beides entsprechende Threads, falls Fragen dazu auftauchen:

https://www.android-hilfe.de/forum/tools.441/link2sd-einrichtung-und-probleme.252705.html
https://www.android-hilfe.de/forum/tools.441/foldermount-einrichtung-und-probleme.546274.html

Der Weg klingt mir einfacher als der eure mit einem script, mit dem sich keiner auskennt.
 
Thyrion

Thyrion

Ehrenmitglied
Hast du im Recovery mal ein Repair ext2/3/4 versucht? (welches Dateisystem hast du denn nun, du gibst alle 3 an)

Musst du wirklich alle Daten auf die Ext-Partition auslagern? Reicht es dir evtl. nur den Dalvik-Cache zu verschieben? Wäre zumindest mal einen Versuch wert.

BTW: Was meinst du mit *** unlocked ***, wenn du dann doch S-ON hast?

BTW²: Die aktuelle Version wäre die Nightly vom 22.11.2014

@magicw: Das a2sd-Skript ist jetzt auch nicht so das Hexenwerk (ähnelt dem vom DarkTremor). Allerdings habe ich persönlich den Parameter "xdata" nie verwenden.
 
Zuletzt bearbeitet:
Otandis_Isunos

Otandis_Isunos

Ehrenmitglied
Ich hab euch mal ins HTC Desire Forum geschoben. Der Grund ist: Natürlich gibts kein HTC Desire Bravo. Sondern nur das HTC Desire, welches auch Bravo genannt wird ;)
 
F

Florianer

Neues Mitglied
Threadstarter
Guten Abend.

Also, fangen wir mal irgendwo an:
- *** unlocked *** bezeichnet glaub nur, dass der bootloader frei ist, nicht aber, dass ich auf die Systempartition schreiben darf. Deswegen *** unlocked *** aber S-On. Ich kann mir aber nicht vorstellen, dass das S-On was mit dem read-only der sd-ext zu tun haben könnte. Das System läuft ja teilweise Tage und Wochen, bis eine App crasht und das sd-ext dabei zerstört.

- Die aktuelle Version Nightly vom 22.11.2014 haben wir auf nem zweiten HTC Desire. Grad mal meine Frau gefragt, ob da das sd-ext auch laufend kaputt geht. Sie meinte, dafür nutzen wir das zu selten. Da läuft eigentlich nur Ingress für unsre Tochter und noch ein paar kleine Spiele drauf ^^^

- Wir haben CWM-based Recovery 6.0.4.5 installiert. Dort gibt es leider kein repair. Auf dem andren ist ClockworkMod Recovery v5.8.0.2 in der touch-Variante installiert. Dort haben wir unter Advanced -> Fix Permission. Während ich das hier schreibe, testen wir mal folgendes: SD-Karte aus dem kaputten System in das funktionierende eingelegt, ins Recovery und dort auf Fix. Steht quasi instant
Fixing permissions...
Done!
Werden nun die Karte wieder ins andre Handy einsetzen und schauen, ob das was an den Zugriffsrechten geändert hat. [...] So, wieder im ersten Desire. Resultat: Nichts gebracht! Zeile 73 meldet noch immer /sd-ext/.xdata Read-only file system.
(Ich hab sogar 2 Sätze im ersten Post vergessen:
"If you wish to /undo/ this with 'noxdata' your phone will revert back to the way it was before this. So any changes made while on xdata will be lost."

Ich geh' also davon aus, dass hier quasi die normalen Links mit Links zur SD-Karte überschrieben werden. Deswegen habe ich auch noch immer eine winzige Auswahl an Apps zur Verfügung.

- a2sd haben wir deswegen genutzt, weil es schon im Mod mit dabei war. Der xdata Befehl verschiebt halt alles alles alles auf SD-Karte. Steht ja auch was von Performenceeinbußen, wenn keine Class 6 oder Class 10 Card verwendet wird. Sicher sind wir uns nicht mehr ganz, aber ich glaube, wir hatten uns dafür entschieden, weil mit Dalvik alleine zu wenig Platz war. Das Gerät hat ja nur 150MiB und davon behält sich Android ja noch was reserviert. Haben 13MiB frei und können keine 80kib App installieren, da zu wenig Speicherplatz.

- Zum ext System: Ich habe deswegen alle 3 angegeben, weil wir alle 3 durch getestet hatten. Aktuell ist es ein ext2, welches ich mittels USB-Cardreader unter Ubuntu gparted erstellt habe. Wir wollten so ausschließen, dass es ein Problem mit ext4 oder ext3 ist. Da aber auch ext2 versagt, würde ich behaupten, dass es völlig egal ist, welches ext wir verwenden. Zumal das System mit allen 3 Varianten lauffähig ist.

- So, dann habe ich mir mal beide Links angeschaut. Wenn ich das auf die Schnelle richtig verstanden hab', macht Link2SD ja nix weiter, als die Apps auf die SD-Karte zu schieben. Was die App an Daten in der DB erzeugt und Co und was das System so alles sammelt, bleibt intern. Da klang das FolderMount interessanter. Das müsste das selbe wie das a2sd mit der xdata Option machen. Alle (System-)Ordner nach extern binden. Das würden wir uns auf jeden Fall mal ansehen, wenn wir das System doch neu aufsetzen müssen.


Bleibt also generell noch die Frage übrig: Was bedeutet das read-only. Nein, eher, wo kommt es her. Ist ja schon schlimm genug, dass App x abschmiert und dabei das sd-ext mitnimmt, aber irgendwo muss doch ein Flag oder ein chmod oder foo zu ändern sein, damit die Partition wieder beschreibbar ist. Ich sehe die Daten ja auch alle, wenn ich sie unter Ubuntu einhänge. Also sollte es doch total trivial sein :confused2: irgendwer hat definitiv viel mehr Ahnung von der Materie, als ich und weiß, was zu tun ist :) Hinterher ist beim Absturz ne .lock stehen geblieben und wenn ich die lösche, kann ich das System wieder einbinden. :crying: Aber ich will jetzt auch net wild mit der Axt durch den Wald und irgendwelche Files löschen, von denen ich denke, sie könnten dem System das read-only vorgeben.
 
Maysi2k

Maysi2k

Stammgast
Florianer schrieb:
- *** unlocked *** bezeichnet glaub nur, dass der bootloader frei ist, nicht aber, dass ich auf die Systempartition schreiben darf. Deswegen *** unlocked *** aber S-On.
Eigentlich wird unter locked und unlocked der SIM-Lock gemeint. Zumindest nach meinem Wissen.

Das S beim Bootloader steht, wenn ich mich richtig erinnere für "Secure" also "Sicherheit" auf deutsch.

Generell ist es bei den neueren Roms besser wenn man einen S-Off flasht und anschließend einen besser Partitionierten HBOOT und dann das A2SD+ Skript im jeweiligen ROM nutzt.

Hier ist der offizielle Tread zu deinem Rom, eventuell kennt das Problem hier jemand.

https://www.android-hilfe.de/forum/custom-roms-fuer-htc-desire.224/evervolv-kitkat-4-4-4-nightlys.525755-page-23.html


Ich persönlich meide Roms, bei denen der Entwickler nicht bei den XDA-Developers aktiv sind. Zudem nutze ich wenn Verfügbar sowieso nur den CyanogenMOD ;)
 
F

Florianer

Neues Mitglied
Threadstarter
So,

ich hab vorhin mal ne Menge experimentiert. Ich hab die Karte an den Rechner gehängt und dort mal wild Ordner umbenannt. Einfach mal um zu sehen, ob das irgend eine Auswirkung hat. Alles Fehlanzeige. Nachdem sogar read-only angezeigt wurde, nachdem ich die .xdata und den xdata-Ordner umbenannt hatte, bin ich eine Ebene höher. Dort war aber auch nichts an der Berechtigung zu bemängeln. Ich bin dann nochmal in gparted. Hab geschaut, was dort noch für Optionen sind. Thyrion hat ja ein Repair im Recovery vorgeschlagen. Das haben wir zwar nicht in unserer Recovery-Version, dafür hab ich das aber im gparted gefunden und laufen lassen. Nach 9s bekam ich dann ne Liste von fehlerhaften Dingen, die korrigiert wurden. Alles wieder zurück benannt (Ausgangssituation). Karte eingelegt. Ich musste noch nicht mal was im Terminal eingeben. System war sofort wieder voll da.

Fazit: Die Lösung, dass das System auf read-only nach App-Crash steht, kann tatsächlich durch eine Reparatur des Dateisystems behoben werden.
Wir werden dann auch das Recovery updaten, damit die Reparaturoption auch vom Smartphone aus möglich ist. Der nächste App-Crash kommt bestimmt.
 
Oben Unten