Verschieben von /storage/sdcard0 von NAND auf eine austauschbare MicroSD-Karte: Wird dadurch etwas kaputt gehen?

Hintergrundinformation

Ich besitze ein Samsung Galaxy S Relay 4G mit Android 4.1.2. Es kommt mit 8 GB eingebautem NAND-Flash, der mittlerweile fast voll ist. Glücklicherweise hat es auch einen MicroSD-Kartensteckplatz.

Mein Mobilfunkanbieter bietet keine Subventionen für Mobiltelefone an. Ich hoffe, dass ich nicht auf ein neues Telefon upgraden muss, bevor das BlackBerry Priv herauskommt: Ich möchte ein Gerät mit einer physischen Tastatur.

Belegt auf meinem Gerät /storage/sdcard02 GB von den 8 GB.

Von den 2 GB:

  • OsmAnd Offline-Karten nehmen 800 MB ein.

  • Heruntergeladene Podcasts und so weiter belegen etwa 600 MB.

  • Die Offline-Daten von Google Übersetzer nehmen 200 MB ein.

  • Der Rest ist Verschiedenes.

Da ich nicht Android 6.0 „Marshmallow“ oder höher verwende, bietet mein Gerät keine Unterstützung für anpassbaren Speicher.

Meine Fragen

Ich möchte /storage/sdcard0von integriertem NAND (8 GB) auf die von mir gekaufte austauschbare MicroSD-Karte (32 GB) umsteigen. Die gesamte MicroSD-Karte ist als FAT32 formatiert. Anstelle des alten /storage/sdcard0möchte ich einen symbolischen Link hinterlassen.

Ich habe ein bisschen herumexperimentiert, und es ist klar, dass ich mein Telefon zuerst rooten muss. Das ist in Ordnung.

Ich wundere mich:

  1. Enthält /storage/sdcard0es Eigentums- oder Berechtigungsdaten für Dateien, die ich nicht verlieren möchte?

  2. Funktioniert Android (und alle meine Apps) gut, auch wenn /storage/sdcard0es sich tatsächlich um einen symbolischen Link anstelle eines Ordners handelt? Wenn Sie glauben, dass sie gut funktionieren, woher wissen Sie das dann? :)

  3. Gibt es noch etwas, das ich wissen sollte, bevor ich das tue?

Nun, ich denke nicht, dass nur rooten ausreicht. Sie müssen auch die boot.img bearbeiten, um einen Sym-Link für /storage/sdcard0 zu /storage/sdcard1 zu erstellen. (Sie müssen möglicherweise auch die SD-Karte formatieren EXT4-Format). Ich bin mir nicht sicher, ob das 100% funktioniert, probieren Sie es selbst aus. Außerdem ist der interne Speicher tatsächlich Teil der /data-Partition.. Also im Grunde denke ich, dass der interne Speicher tatsächlich in /data/media/0 liegen wird Es ist also nichts Falsches daran, zu versuchen, ob Sie ein ordnungsgemäßes Backup haben und ob Sie Ihr Telefon reparieren können :)
Sie können nach dem Rooten nicht einfach einen Symlink erstellen

Antworten (1)

Mehrere Dinge in diesem Zusammenhang:

  • Apps unterstützen möglicherweise direkt die Verwendung der externen SD-Karte als Speicher, überprüfen Sie dies mit ihren Einstellungen. Das erspart Ihnen einige Kopfschmerzen, da es dann ohne „Tricks“ funktioniert. Beim Wechsel zum neuen Speicher bieten Apps möglicherweise sogar an, ihre Daten zu kopieren/zu verschieben, was für Sie am einfachsten wäre.
  • Wie Gokul in seinen Kommentaren zu Ihrer Frage erwähnte: Es ist nicht so einfach, nur einen Symlink vom alten Speicher zum neuen zu erstellen – nach dem nächsten Start ist das höchstwahrscheinlich weg (was durch Bearbeiten des Boot-Images umgangen werden kann – oder durch Moderation init.dmit einem passenden Skript, falls unterstützt). Sie könnten jedoch jedes Verzeichnis separat symbolisieren (z. B. /storage/sdcard0/foobar -> /storage/external_sd/foobar, das sollte auch ohne root auskommen und, was noch wichtiger ist, einen Neustart ohne "zusätzliche Tricks" überstehen
  • Beide externen Speicher verwenden VFAT, daher werden keine Benutzerberechtigungen abgedeckt (VFAT unterstützt sie nicht), also "nichts zu verlieren" in diesem Zusammenhang;)
Ich bin der Sache noch etwas nachgegangen.
Auf meinem Gerät: • ist auf ( ) /dev/fusegemountet . • ist montiert auf ( ). • An ist auf ( ) gemountet , und anscheinend ist das ein Teil davon . /storage/sdcard0fuse, rw/dev/block/vold/179:33/storage/extSdCardvfat, rwinitramfs/rootfs, ro/storageinitramfs
Es scheint also, dass jeder Symlink, den ich erstellen würde, /storagebeim Neustart verschwinden würde. Ich denke, ich werde stattdessen einen Ihrer Vorschläge übernehmen: Ich denke, ich werde einige einzelne Unterverzeichnisse von verschieben und symbolisch verlinken /storage/sdcard0.
Genau das – es ist die sicherste und einfachste Variante, und sollte per adb shellauch ohne Root möglich sein (das kann ich nicht testen, da ich kein nicht gerootetes Gerät hier habe ;)
OK; Ich habe es versucht. Konnte aber lnkeine Symlinks erstellen. Das Problem ist, dass es /storage/sdcard0sich um eine Art Dateisystem handelt, das keine Symlinks enthalten kann.
link failed Operation not permittedsogar mit root, in der Tat – scheint eine Einschränkung von VFAT zu sein, siehe How to create file links on a vfat filesystem of a mounted disk under Linux? (was eine mögliche Problemumgehung beschreibt, von der ich bezweifle, dass sie hier passt). Wenn Ihr Gerät gerootet ist, können Sie dafür so etwas wie FolderMount verwenden. Wenn nicht, können Sie mit Ihren eigenen FUSE-Mounts experimentieren (und einen Automater wie Tasker , um sie beim Booten wiederherzustellen).
Stattdessen bin ich dazu übergegangen, Ihren ersten Vorschlag zu verwenden. In einem der Einstellungsbildschirme von OsmAnd habe ich es so eingestellt, dass es nach seinem Kartenverzeichnis auf der Wechselkarte sucht. Und ich habe ein Dateiverwaltungstool verwendet, um das Kartenverzeichnis auf diese Karte zu verschieben. Das hat gut funktioniert, und ich habe jetzt mehr als ein Gigabyte verfügbaren NAND-Flash.
„Safety first“ – wenn vorhanden, das ist der beste Ansatz, weshalb ich es zuerst erwähnt habe :) Gut gemacht!