HowTo: Korrupten internen Speicher („/sdcard“) unter Android fixen

Nach einem Backup über den Clockworkmod Recovery Mode auf den internen Speicher meines Samsung Galaxy S2 war dieser plötzlich komplett schreibgeschützt („read-only mode“) und nicht einmal die Bildergalerie konnte mehr auf dem Handy gestartet werden. Wie sich herausstellte, war das Dateisystem der internen SD-Katre im Backupverzeichnis korrupt.

Da sich mein SGS2 nur via MTP mit dem Computer verbinden lässt, gestaltete sich die Fehlerbehebung etwas komplizierter. Folgend die Schritte zur Fehlerbehebung.

Backup

Hat man noch eine Zugriffsmöglichkeit auf die interne SD-Karte, sollte man als erstes sämtliche Daten sichern (z.B. per USB-Verbindung auf einen Computer übertragen).

Hinweis: Versteckte Verzeichnisse (in meinem Fall das mir persönlich wichtige Verzeichnis „.torque“) sind über MTP nicht sichtbar. Ich habe das via ADB-Dateitransfer erledigt (adb pull /sdcard/.torque C:/bck/.torque). Zu ADB weiter unten mehr.

Im folgenden wird der interne Speicher evtl. neu formatiert. Dabei gehen sämtliche Daten unter /sdcard verloren (meistens liegen dort Bilder, Videos, Musik etc.).

Vorbereitungen

Ich gehe davon aus, dass das Handy gerootet ist (siehe dieser Artikel Schritt 2, Punkt 1).

  1. Am Computer ein Verzeichnis “C:\adb\” anlegen.
  2. Die ADB-Programmdateien hineinkopieren (z.B. aus dem ZIP-File von HoloBackup):
    1. adb.exe
    2. AdbWinApi.dll
    3. AdbWinUsbApi.dll
  3. Das Handy in den Recovery-Mode booten.
    1. Unter “mounts and storage” die Punkte “mount /system”, “mount /data” und „mount /sdcard“ anwählen
    2. Handy per USB mit dem Computer verbinden (Kies-Installation für USB-Treiber erforderlich).

Dateisystem reparieren

cmd.exe mit Admin-Rechten starten und folgende Befehle abarbeiten:

  1. cd C:\adb
  2. adb devices (es sollte ein Gerät mit Status „recovery“ auftauchen)
  3. adb root
  4. adb shell
  5. mount
    1. Steht bei den angezeigten Mounts bei „sdcard“ das Kürzel „ro“ statt „rw“, wurde die Partition aufgrund von korrupten Daten als schreibgeschützt gemountet.
    2. Den angezeigten Pfad für „sdcard“ notieren.
      Bei meinem SGS2 ist dies: /dev/block/mmcblk0p11
  6. mount -o remount,rw
  7. mount (dies sollte „sdcard“ nun als „rw“ ausweisen“)
  8. fsck_msdos -y /dev/block/mmcblk0p11 (die Partitionsprüfung sollte Fehler melden und als behoben anzeigen)
  9. mount (dies sollte „sdcard“ nun immer noch „rw“ ausweisen“)

Dateisystem formatieren

Sollten obige Schritte den Fehler nicht beheben (Partition wird wieder als „ro“ angezeigt, korrupte Dateien können nicht gelöscht werden etc.), versucht man die Partition zu formatieren:

  • Über den Recovery Mode: unter „mounts and storage“ den Punkt „format /sdcard“ anwählen.
  • Über Android: unter „Einstellungen“, „Speicher“, „USB-Speicher formatieren“.

Dateisystem mit parted neu einrichten

Klappt dies auch nicht oder nicht vollständig (korrupte Dateien nach wie vor vorhanden), hilft hoffentlich die Notbremse über das Partitionierungstool parted. Dazu wie oben auch das Handy im Recovery Mode mit dem Computer verbinden, „/system“ und „/sdcard“ mounten und in cmd.exe eingeben:

  1. cd C:\adb
  2. adb devices (es sollte ein Gerät mit Status „recovery“ auftauchen)
  3. adb root
  4. adb shell
  5. parted /dev/block/mmcblk0 (Pfad durch oben notierten ersetzen, „p11“ weglassen)
    1. Evtl. gemeldete Fehler unbedingt durch drücken der i-Taste ignorieren!
  6. print
    1. Die Partitionstabelle wird angezeigt. In meinem Fall ist Eintrag Nr. 11 mit dem Namen „UMS“ die gesuchte Partition (festzustellen anhand des notierten Namens mmcblk0p11).
    2. Hiervon einen Screenshot machen und speichern (siehe Artikel-Titelbild).
  7. mkfs
    1. Partitionsnummer eingeben (in meinem Fall 11).
    2. fat32 eingeben.
  8. print
    1. Die angezeigte Partitionstabelle mit dem Screenshot abgleichen.
    2. Diese sollte identisch sein (ein evtl. auftauchendes Flag msftres stört nicht).
  9. Strg+X drücken
  10. adb reboot

Nun in Android nochmals den USB-Speicher formatieren. Danach sollte der interne Speicher wieder vollständig nutzbar sein.

Falls immer noch Probleme auftreten, kann man versuchen, die Partition mittels parted komplett zu löschen und neu anzulegen:

  1. print (Screenshot machen!)
  2. rm
    1. Partitionsnummer eingeben (in meinem Fall 11).
  3. mkpartfs logical fat32 2861MB 15.2GB (Werte aus eigenem Screenshot übernehmen!)
  4. name
    1. Partitionsnummer eingeben (in meinem Fall 11).
    2. Partitionsnamen eingeben (in meinem Fall UMS).

Schlusswort

Mit diesen Schritten konnte ich meinen internen Speicher wieder lauffähig machen und anschließend die gesicherten Daten per USB wieder zurückspielen.

Sollte der Speicher auch durch alle o.g. Schritte nicht wieder lauffähig gemacht werden können, liegt wahrscheinlich ein Hardwarefehler vor (Flashspeicher defekt) und man sollte über die Garantie abwickeln, falls noch möglich. Dann aber nicht vergessen, vorher wieder den Root vom Gerät zu entfernen!

Ich freue mich wie immer über Rückmeldungen!

Advertisements

12 Gedanken zu „HowTo: Korrupten internen Speicher („/sdcard“) unter Android fixen

  1. ich habe auf meine Gerät CM 10 drauf und wahrscheinlich auch ein korruptes System.
    Allerdings streikt , wenn ich nach Deiner Anleitung vorgehe , ADB. Meine Partition ist EXT4 formatiert und wird von ADB nicht unterstützt. Probeweise habe ich FAT32 probiert . Dafür ist komischerweise die Partition zu gross , obwohl sie fast die gleichen Werte , wie in deinem Beispiel aufweist. Bin etwas ratlos ….
    Trotzdem glücklich eine (eigentlich ) tolle Anleitung gefunden zu haben .
    Vielleicht könntes du ja auch nochmal was zur Datensicherung schreiben . Das kam oben bissel zu kurz , wenn man z. B. den ganzen internen Speicher sichern möchte.
    Danke vorab
    Gruss Gunnar

  2. Hallo, leider hat es nicht geklappt. Ich sehe die sdcard0 nicht im cmd.
    Das Problem ist, dass die sdcard0 als beschädigt im Handy angezeigt wird.
    Will ich formatieren sagt das Handy 179 public failed.
    Hast du eine Idee?
    Gruss

  3. Habe dasselbe Problem mit meiner externen 64 GB Micro SD.
    Unter Windows – Paragon oder unter Linux wird mir folgendes angezeigt: 3 Partitionen
    1. Partition
    File system: FAT32 – Volume size: 58.9 GB – Partition size: 58.9 GB – Used space: 34.2 GB – Free space: 24.6 GB
    2. Partition
    File system: Linux Ext4 – Volume size: 488.2 MB – Partition size: 488.2 MB – Used space: 15.6 MB – Free space:472.5 MB
    3. Partition
    Partition ID: 0x82 Linux swap – Volume size:31 MB – Partition size: 31 MB

    Habe bisher weder unter Android, Windows oder Linux eine Möglichkeit gefunden die Karte neu zu formatieren (nach Möglichkeit mit nur einer Partition)
    Habe unter adb shell mount folgendes mit RW „/dev/block/mmcblk0p7“ gefunden.

    Wäre schön wenn Du mir weiterhelfen könntest.
    Gruß Klaus

  4. Meine interne sdcard wurde durch korrupte Dateien, die sich durch nichts löschen liessen, dauernd unmounted und quasi unbrauchbar! Dank Deiner Anleitung habe ich per parted und mkfs die sdcard komplett löschen können!

    Vielen, vielen Dank dafür!

  5. Vielen Dank! Das gleiche ist mir vor zwei Tagen auch passiert.. mal sehen ob ich es reparieren kann mit deinem Guide! Ich melde mich zurück!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s