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
.