4 votes

Utilisez la carte sd comme stockage interne et arrêtez définitivement d'écrire sur la mémoire interne.

Les smartphones semblent mourir après deux ans d'utilisation, comme s'ils savaient que vous venez de payer le dernier versement.
La raison la plus courante semble être la défaillance de la mémoire interne.
J'essaie désespérément d'avoir mon téléphone pour échapper à ce cruel destin.
L'idée que j'avais au départ semblait simple, mais le web ne semblait pas partager mon optimisme.
Voilà l'idée :
- créer des partitions ext4 sur une carte sd
- monter au démarrage des partitions sdcard vers /data y /cache (et peut-être /preload y /efs si jamais ils sont écrits)

J'aimerais savoir ce qui cloche dans cette idée et pourquoi elle ne peut pas fonctionner, mais la question principale est la suivante :
Puis-je arrêter définitivement d'écrire sur la mémoire interne ?

J'ai vu toutes les applications qui existent (app2sd, link2sd, DirecoryBind, s2e, etc.) et toutes semblent déplacer les sous-répertoires, jamais le répertoire principal. /data .
Toute aide sera très appréciée.
Merci !

3voto

iXcoder Points 543

Eurêka !
Voici comment je m'y suis pris :

Partition et formatage de la carte SD

Ne sachant pas quelles partitions j'aurais pu déplacer, j'ai décidé de recréer ma carte SD avec la même disposition que la mémoire interne de mon Samsung Galaxy S III.
USERDATA est la dernière partition et il y a une bonne raison à cela :
la taille de ma carte sd est supérieure à celle de la mémoire interne et la meilleure option a été d'élargir le champ d'action de la carte. USERDATA jusqu'au secteur le plus éloigné possible.

Le travail suivant a été réalisé sur mon ordinateur sous linux :

parted /dev/sdb mklabel gpt \
mkpart  BOTA0      ext2     8192s          16383s \
mkpart  BOTA1      ext2    16384s          24575s \
mkpart  EFS        ext2    24576s          65535s \
mkpart  PARAM      ext2    65536s          81919s \
mkpart  BOOT       ext2    81920s          98303s \
mkpart  RECOVERY   ext2    98304s         114687s \
mkpart  RADIO      ext2   114688s         180223s \
mkpart  CACHE      ext2   180224s        2277375s \
mkpart  SYSTEM     ext2  2277376s        5423103s \
mkpart  HIDDEN     ext2  5423104s        6569983s \
mkpart  OTA        ext2  6569984s        6586367s \
mkpart  USERDATA   ext2  6586368s       60749824s

Bien, les partitions sont créées.
Maintenant, toujours en imitant mon appareil Android, je formate les partitions en conséquence :

# /efs
mkfs.ext4  /dev/sdb3   -E root_owner=1001:1000
# /system
mkfs.ext4  /dev/sdb9   -E root_owner=0:0         -L system
# /cache
mkfs.ext4  /dev/sdb8   -E root_owner=1000:2001
# /preload
mkfs.ext4  /dev/sdb10  -E root_owner=0:0
# /data
mkfs.ext4  /dev/sdb12  -E root_owner=1000:1000

La carte sd est prête, maintenant je peux "sauvegarder" les fichiers de emmc vers la partition appropriée de la carte sd, en prenant soin de préserver les attributs des fichiers.

Modifier fstab

Dans les versions pas trop anciennes d'Android, fstab semble toujours être situé à / .
Fichiers dans / sont stockées dans le BOOT partition ( boot.img ) ;
il est temps d'apprendre à éditer le boot.img .
Voici deux tutoriels très utiles qui vous permettront de vous lancer :
HOWTO : Décompresser, modifier et reconditionner les images de démarrage
Manipulation du fichier boot.img d'Android
un petit indice :
~~Modifiez le disque RAM de votre appareil Android.
J'ai passé trois jours de frustration à essayer de le faire sur mon ordinateur, je suppose que c'est une question d'"endianness".~~
En éditant le ramdisk, faites le tri name-list (entrée standard) pour cpio .
J'ai passé trois ans dans des échecs récurrents et frustrants.


Mon fstab avant :

/dev/block/mmcblk0p3        /efs            ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk0p9        /system         ext4        ro,noatime      wait
/dev/block/mmcblk0p8        /cache          ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk0p10       /preload        ext4        noatime,nosuid,nodev,journal_async_commit       wait
/dev/block/mmcblk0p12       /data           ext4        noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic      wait,check,encryptable=footer

Mon fstab après :

/dev/block/mmcblk0p3        /efs            ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk1p9        /system         ext4        ro,noatime      wait
/dev/block/mmcblk1p8        /cache          ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk1p10       /preload        ext4        noatime,nosuid,nodev,journal_async_commit       wait
/dev/block/mmcblk1p12       /data           ext4        noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic      wait,check,encryptable=footer

Je n'ai changé que le numéro de bloc (de 0 à 1).
Je ne pouvais pas encore oser déménager. EFS Quelqu'un a dit que l'on pouvait endommager l'appareil en jouant avec ça. J'étudie toujours le sujet, mais je sais qu'Android continue d'écrire. EFS (Je le surveille).

Conclusions et questions complémentaires

C'est ainsi que j'ai déplacé la plupart de mes données de stockage interne vers ma carte sd externe.
Les choses sont légèrement lentes, comme prévu, mais Android semble être en parfait état de marche ;
Je peux toujours investir dans une carte SD plus rapide à l'avenir.
J'ai fait tout cela avec ma ROM stock du Samsung Galaxy S III, vous devrez évidemment vous adapter à vos circonstances.
Lorsque j'ai finalement installé CyanogenMod 13 (nous ne voulons pas de firmware stock, n'est-ce pas ! ?) les choses étaient un peu différentes.
Avec un essuyage /data CM passe un peu de temps à la botte à peupler /data et à un moment donné, il abandonne, redémarre et passe en mode récupération.
Après plusieurs tentatives, j'ai abandonné et j'ai déménagé. /system dans la mémoire interne, maintenant tout va bien.
Je sais que /system est monté en lecture seule, mais j'ai remarqué que la durée de vie de l'emmc est définie comme le nombre de cycles de lecture/écriture, ce qui suggère peut-être que, contrairement aux disques durs, la lecture est aussi néfaste que l'écriture.
Si c'est le cas, je serais très reconnaissant si quelqu'un pouvait me dire pourquoi, en CM, je ne peux pas réussir à m'installer ailleurs. /system .

1voto

kumar Points 123

@Claudio vous avez soulevé une très bonne préoccupation. Ayant quelques connaissances en matière d'intégration, je peux vous donner quelques idées à ce sujet :

Lorsque vous allumez un appareil, il est programmé pour démarrer à partir d'un emplacement mémoire spécifique. Cet emplacement mémoire est câblé à la mémoire interne.

Habituellement dans demo Dans les dispositifs embarqués, nous disposons d'un petit commutateur que nous pouvons utiliser pour basculer entre différents dispositifs BOOT - il peut s'agir d'un dispositif interne, externe, voire d'un port série.

Mais en production ou des dispositifs commerciaux, ce commutateur sera supprimé.

Il est donc pratiquement impossible de démarrer directement à partir de la mémoire externe.

Je souhaite que certaines entreprises puissent fournir une option (comme un commutateur) pour démarrer à partir de la mémoire externe même si la mémoire interne est défaillante.

1voto

Irfan Latif Points 16863

J'ai réussi à démarrer à partir de la carte SD sur le QMobile Z8 by :

  • Réplication de la table de partition eMMC par le partitionnement de la carte SD sur une machine Ubuntu à l'aide de parted y fdisk
  • Flashing des images du firmware d'usine sur ces partitions nouvellement créées en utilisant dd
  • Modifier fstab.qcom & init.tegra.rc dans le noyau ( boot.img ) et recovery.fstab y unventd.rc dans TWRP recovery pour initier le montage et le démarrage à partir de la SDCard au lieu de la mémoire interne.

Il a réussi après quelques expériences. Je pense que cette méthode devrait être applicable à tout appareil ayant une configuration similaire. Cependant, les fichiers à éditer peuvent varier d'un appareil à l'autre.

Si vous voulez mettre seulement les données externes des applications sur la carte SD et non pas la partition entière, vous pouvez éditer fstab en boot.img y liste de stockage en cadre-res.apk sur Android 5 et plus.

Pour plus de détails : [[Comment démarrer à partir d'une carte SD [SUCCESSIVEMENT] sur un QMobile Z8 avec une carte eMMC endommagée/morte.](https://forum.xda-developers.com/android/help/how-to-boot-sd-card-qmobile-z8-bricked-t3712171)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X