// Tuto V3 :
Hello,
Voici l'explication compléte du redimensionnement de l'emummc partition de A à Z.
Dans ce tuto, j'utilise la commande "DD" également utilisable sous linux/mac.
L’exécutable windows se trouve ici : http://www.chrysocom...oads/dd-0.5.zip
Information I (Optionnel) - Composition emuMMC :
1 secteur = 512 octets
Boot0 : Offset : 0 à 3FFFFF
Boot0 : Secteur 0x2000 (0x0000-0x1FFF) = 8192
Taille : 8192 x 512 = 4194304 o = 4096 Ko = 4 Mo
Boot1 : Offset : 0 à 3FFFFF
Boot1 : Secteur 0x2000 (0x2000-0x3FFF) = 8192
Taille : 8192 x 512 = 4194304 o = 4096 Ko = 4 Mo
Rawnand : Offset : 0 à 747BFFFFF
Rawnand : Secteur 0x03A3E000 (0x00000000-0x03A3DFFF) = 61071360
Taille : 61071360 x 512 = 31268536320 o = 30535680 Ko = 29820 Mo
Emummc : Offset 0 à 7483FFFFF
Emummc : Secteur 0x03A42000 (0x00000000-0x03A41FFF) = 61087744
Taille : 61087744 x 512 = 31276924928 o = 30543872 Ko = 29828 Mo
Composition emummc :
= Boot0 : Offset 0 à 3FFFFF // Secteur 0 à 8191
+ Boot1 : Offset 400000 à 7FFFFF // Secteur 8192 à 16383
+ Rawnand Offset 800000 à 7483FFFFF // Secteur 16384 à 61087743
Information II (Optionnel) - Composition de la Partition emuMMC :
Lors de la création de l'emuMMC en mode partition (par hetake), ce dernier laisse un "tampon" avant le commencement de l'emuMMC.
il faut donc le prendre en compte lors de la création de la partition et ne pas juste créer une partition de la taille de l'emuMMC !!!
// Partition emuMMC (0xe0) :
Taille par défaut :61120512 secteurs x 512 = 31293702144 o = 30560256 ko = 29844 Mo
= Tampon : 32768 secteurs
Taille Tampon : 32768 x 512 = 16777216 o = 16384 ko = 16 Mo
+ emummc : 61087744 x 512 = 31276924928 o = 30543872 Ko = 29828 Mo
I - Sauvegardes des jeux :
Attention : Lors de la manipulation du redimensionnement et/ou du déplacement de l'emuMMC, l'emplacement physique des sauvegardes va être modifié et certaine peuvent se retrouver effacé, ou corrompu.
En résultera une erreur au lancement des jeux après déplacement / redimensionnement.
1) Utiliser l'homebrow Checkpoint et faire une sauvegarde de tous les jeux.
Note :si les jeux installé n'ont pas été lancé au moins une fois : l'homebrow crash.
2) Effacer les sauvegarde la console (celle de la partition user) et conserver celle créer dans sd:\\switch\checkpoint\
3) A la fin des manipulations du tuto : Réintégrer les sauvegardes via chekpoint (si besoin en lançant les jeux au préalable)
II a - Nouveau emuMMC (sysnand) :
Dans le cas de la création d'une nouvelle emuMMC (basé sur Sysnand).
1) Soit :
- passer par la switch et payload hekate pour faire le backup sysnand
- mettre la carte µSD dans le PC et l'ouvrir avec NxNandManager 3
2) Récupérer les backups de la carte µSD puis fusionner les fichiers avec la commande :
copy /b BOOT0+BOOT1+rawnand.bin.* emummc.bin
_
Information III (Optionnel) - séparation de l'emuMMC (boot0 + boot1 + rawnand) :
En cas de besoin l'emuMMC peut toujours être séparé :
Mode "lent" (octet) :
dd bs=1c count=4194304 if=emummc.bin of=boot0.bin --progress dd bs=1c skip=4194304 count=4194304 if=emummc.bin of=boot1.bin --progress dd bs=1c skip=8388608 count=31268536320 if=emummc.bin of=rawnand.bin --progress
Mode "moyen" (secteur) :
dd bs=512 count=8192 if=emummc.bin of=boot0.bin --progress dd bs=512 skip=8192 count=8192 if=emummc.bin of=boot1.bin --progress dd bs=512 skip=16384 count=61071360 if=emummc.bin of=rawnand.bin --progress
Mode "rapide" (ko) :
dd bs=4096k count=1 if=emummc.bin of=boot0.bin --progress dd bs=4096k skip=1 count=1 if=emummc.bin of=boot1.bin --progress dd bs=4096k skip=2 count=7455 if=emummc.bin of=rawnand.bin --progress
_
II b - Backup emuMMC (déjà existant) :
1) Sur la carte SD : ouvir le fichier (original) : SD:\\emuMMC\emummc.ini
2) Récupérer le secteur de départ de l'emunand (ou emuMMC) en hexa :
Exemple sur une 128go : sector=0xae88000
3) Convertir le secteur hexadécimale en décimale
Par exemple : http://sebastienguil...vertisseur.html
ae88000 (le 0x n'as pas d'incidence) => 183009280
4) Identifier la sd :
- soit via le gestionnaire de périphérique
- soit un outil de partitionnement tel que "MiniTool Partition Wizard" (que je recommande)
- soit avec la commande DD (téléchargé au début du tuto) :
dd --list
_
Dans mon exemple la sd est \\?\Device\Harddisk5
5) Backup emuMMC : Ligne de commande DD :
Secteur de départ d'emuMMC : 183009280
Nombre de secteur d'emuMMC : 61087744
Attention la commande (pourtant logique) suivante ne fonctionnent pas avec une carte sd ou clé usb :
dd bs=512 skip=183009280 count=61087744 if=\\?\Device\Harddisk5 of=emummc.bin --progress
Il faut utiliser à la place :
dd bs=512 skip=183009280 count=61087744 if=\\.\physicaldrive5 of=emummc.bin --progress
Note : "5" étant le numéro de la partition trouvé à l'étape II b 4.
6) Backup emuMMC : copie rapide :
Pour passer au mode "rapide" (vu en partie Information III), on peux diviser le nombre de secteur par 8192.
Secteur de départ d'emuMMC : 183009280 / 8192 = 22340
Nombre de secteur d'emuMMC : 61087744 / 8192 = 7457
Taille du bloc de copie : 512 x 8192 / 1024 = 4096
dd bs=4096k skip=22340 count=7457 if=\\.\physicaldrive5 of=emummc.bin --progress
_
Attention ! : ce mode "rapide" nécessite un nombre entier !
Si on tombe sur un nombre à virgule, on peux rediviser successivement par 2, jusqu’à un entier.
Exemple : 19E2F000 = 434302976
434302976 / 8192 = 53015,5 => Fail
434302976 / 4096 (8192 / 2) = 106031 => ok donc on peux continuer (sinon on redivise 2048,1024 etc...)
61087744 / 4096 =14914
Taille du bloc de copie : 512 x 4096 / 1024 = 2048
dd bs=2048k skip=106031 count=14914 if=\\.\physicaldrive5 of=emuMMC.bin --progress
_
Information IV (Optionnel) - Départ de la partition :
Comme évoqué en partie "information II", le secteur de départ de la partition peut-être trouvé :
1) Dans les propriété de la partition via un outil comme "Partition Wizard".
2) Si on soustrait le tampon du secteur de départ emummc (trouvé en partie II b 3)
183009280 - 32768 = 182976512
Secteur de départ de partition initiale : 182976512
III - Resize user : V2 - NxNandManager
MAJ : la toute nouvelle version de NxNandManager, permet d'effectuer cette étape, très simplement et sous windows [merci à eliboa].
L'ensemble du tuto est donc désormais faisable sous windows .
Note : Je laisse disponible l'ancienne méthode tout en bas du tuto pour ceux qui serait intéressé !
1) Télécharger NxNandManager 3
2) Ouvrir la NAND qu'on veut redimensionner
3) Dans Options, charger le fichier clé de la console (récupéré via payload Lockpick_RCM)
4) Dans Tools, choisir Resize NAND
5) Renseigner la taille voulue pour la partition USER et le fichier de destination puis lancer le redimensionnement
IV - Restauration / Migration carte SD :
A présent que nous avons l'emunand resize, il faut l'écrire sur la carte SD, et cela pas au même endroit qu'elle était au départ...
Ce qui permet également d'effectuer une migration vers une carte SD de plus grande capacité .
0) Dans le cas d'un changement de carte SD :
Créer la partition fat32 : taille = {total carte sd} - {partition emummc}*
* Non obligatoire mais pour rappel {partition emummc} = tampon (voir partie "Information II") + emummc (resize ou non)
1) Avec l'outil de votre choix, on supprime l'ancienne partition emmuMMC (elle peut être "non formaté" ou dans un système "other" selon la méthode de création initiale)
2) On créer une partition de la taille de l'emunand resize, puis on réattribue l'espace gagné à la FAT32.
3) Optionnel : Pour respecter le tampon vu partie "Information II et IV" :
On fait donc l'opération inverse avec le secteur de la nouvelle partition resize :
Secteur de départ de partition resize : 216530944
Tampon : 32768
Secteur de départ emunand resize : 216530944 + 32768 = 216563712
Conversion en hexa : 216563712 : ce88000
4) Optionnel :Si on veux respecter encore plus le mode de création de hekate, on peux modifier le type de partition (toujours avec partition wizard).
0x7 : Unformatted
0xe0 : Other (utilisé par hekate)
Note : sur certaine version de partition wizard, on ne peux pas saisir la lettre du type de partition, l'astuce consiste donc juste à saisir "99" (pour 0x99) et de faire "+" pour passer a A0 et "++++...."jusqu'a "e0"
5) Optionnel : pour vérifier qu'il n'y a pas d'erreur sur le secteur :
Numéro de secteur x 512 /1024 / 1024 / 1024 = Taille (Go) qu'on devrait avoir sur la FAT32 resize.
Exemple : 216530944 x 512 /1024 /1024 / 1024 = 103.25
J'ai bien désormais une partition FAT32 de 103Go.
6) Dans SD:\emuMMC\emummc.ini on renseigne :
sector=0xce88000
(uniquement pour la partition de mon exemple bien sur... mettre vos propres valeurs).
7) Et enfin, on renomme et écrit l'emunand (emummc) resize :
dd bs=512 seek={nouveau_secteur_de_depart_emunand} if=emummc.bin of=\\.\physicaldriveX --progress
_
Attention : idem qu'en partie "II B 5" certaine commande ne fonctionne pas :
dd bs=512 seek=216563712 if=emummc.bin of=\\?\Device\Harddisk5 --progress dd bs=512 seek=32768 if=emummc.bin of=\\?\Device\Harddisk5\Partition1 --progress dd bs=512 seek=32768 if=emummc.bin of=\\?\Device\HarddiskVolume8 --progress
_
Exemple fonctionnel :
dd bs=512 seek=216563712 if=emummc.bin of=\\.\physicaldrive5 --progress
Si quelqu'un se pose la question, le seek est bien de 216563712 (dans mon exemple) et non pas de 216563712 -1 = 216563711.
On pourrait effectivement se dire que le secteur de départ de l'emunand étant 216563712 on doit "sauter" 216563711 secteurs... Seulement le disque commence au secteur 0 et non 1, du coup le secteur de départ de l'emunand est bien 216563712 mais c'est le 216563713 ème secteur du disque et donc on "saute" bien 216563712 (de 0 à 216563711).
Comme en partie "II b 6", on peux accélérer l'écriture : 216563712 / 8192 = 26436
dd bs=4096k seek=26436 if=emummc.bin of=\\.\physicaldrive5 --progress
_
8) Optionnel : vérification
On peux vérifier (avec un éditeur hexa) que l'emuMMC commence bien au secteur 216563712.
Note : il y a 1 secteur "vide" au début de l'emuMMC, donc les datas commencent à 216563712 + 1 = 216563713 (ou 216563714 eme secteur).
9) Si on à migré la carte SD et donc effectué l'étape "IV - 0" :
Attention : cette étape dois être impérativement réalisé AVANT le moindre boot Atmosphere sur la console !!! (sinon il faudrat tout réinstaller)
- Copier l'intégralité du contenu de la partition Fat32 de l'ancienne carte SD vers la partition FAT32 de la nouvelle carte SD à l'exception du fichier emummc.ini (SD:\\emuMMC\emummc.ini).
Note : Passer par une copie intermédiaire sur le PC si on possède 1 seul lecteur de carte.
V - Conclusion :
On peux même réduire beaucoup plus sans problème, j'ai testé avec user 3Go.
@ bientôt ^^
----------
Obsolète :
III - Resize user : V1 - Script python linux/mac only
Pour resize la partition User, j'utilise le script de ce "tuto" :
http://www.logic-sun...mmc-atmosphere/
Disponible ici :
https://gist.github....75f2720a1e5e486
Basé cette source :
Attention : contrairement au tuto et malgré mes très nombreuses tentatives il m'a été impossible de le faire fonctionner sous windows.
Il faudra donc passer sur un PC linux ou une machine virtuel pour cette étape :/.
1) Placer le script "resize-user.py", "emummc.bin" et "prod.keys" dans un dossier.
2) Puis exécuter successivement :
sudo su
apt update
apt install python3
apt install python3-pip
apt upgrade python3-pip
pip3 install --upgrade pip
pip3 install --upgrade setuptools
pip3 install -U python-mbedtls
sudo chmod 777 *
sudo python3 resize-user.py emummc.bin X prod.keys
X étant le nombre de Go souhaitez pour la partition user.
Sera ajouté à cette taille + 2.6 Go des autres partitions (system, etc.)
Modifié par Hyuunkel, 15 décembre 2019 - 13:58.