Nintendo Switch EMMC nand upgrade guide

Originally written by Nathan Bunn
http://www.nathanbunn.com/NandUpgradeSteps/

archived version:

https://web.archive.org/web/20190310080832/http://www.nathanbunn.com/NandUpgradeSteps/

Nintendo Switch EMMC nand upgrade guide​

First, Thanks to Paul for all his help and patience and the guide this is based and thanks to bnstemp from duowan for his additional work.
Paul’s guide did a great job on the hardware side, and in fact I ended up sending off to a pro to get the EMMC chipped switched over, so I wont go over that here. I will start this guide presuming you have a 256 EMMC already soldered onto your replacement daughter board.
The 256GB chip I used is a sandisk model,sold as SDINBDA4-256G This was the only one I could find in stock, in single chip amounts.

1671196948722.png


I will also presume you understand switch CFM, RCM, payload sending etc, and have a working hekate SD card. There are great switch CFW setup guides out there already if not so I suggest you read them. I will also assume basic Linux Knowledge, I won’t go over making a Ubuntu Live USB, etc, but trust Google to help if anyone gets stuck.

Preparation​

The first thing you need to do is make a full backup of your current EMMC. Boot into Hekate, and under tools - backup boot0/1 and raw nand onto your micro SD card. I recommend a 64GB+ micro SD here, so you get a nice single backup file, with plenty of space. You will also need to get your bis_key_03. This is a console specific key which you can get use lockpick, or biskeydump.bin from RCM mode and then opening the prod.keys file or similar on your PC. You need this to read the switch user partition from windows later on.

Hardware​

Open your switch, i followed the iFixit guide. Remove the back, then the SD card reader, and then the shiny metal shield under it, then you need simply need to use a plastic prying tool to lift up the EMMC board, careful as there is double sided tape holding it down, and replace it with your new board. I replaced the double sided tape too just incase.
Then put your switch back together again, following the iFixit guide in reverse.

Software​

Once you have it all back together, then boot Johns custom version of hakate, linked in the above guide, and under show hardware, check that EMMC is detected. This makes sure your soldering was good and the EMMC is working.
Now remove your SD card and put it in your PC, copy boot0,1 and rawnand.bin into the backup/xxxx/restore folder. where xxxx is a random folder name for your switch.

The put the SD card back into the switch, and go to tools, restore, and restore boot0/1 and then restore rawnand.bin. This will take a while to copy over and then verify, get a cup of tea and come back later.

Once this process is finished, you can shutdown your switch, then try booting normally.

You should be able to load into the switch system, and all your data should be there, however the disk will still only show 26GB, like before, we need to expand the partition to fill the new drive. However since the drive is encrypted, we cannot just wipe it and remake it, we need to both expand the partition, and then format the partition inside the encryption to get the switch to see the new extended size.

For this process you need a linux PC/linux USB bootdisk (ubuntu recommended), and then a windows PC to open the encrypted partition and format it to FAT32.

You will also need the memloader payload, to make the switch emmc be seen over USB by the PC, and also later on hacdiskmount from the same site for windows.

First send the memloader payload to your switch as you normally would, the switch will show some text and offer options of what to mount.


On a Linux Machine.​

Now boot into Linux, and open a root terminal. At the terminal type


to list all connected hardrives and storage media. Make a note of the letters available, /dev/sda, /dev/sdb etc.
Next connect your switch to the linux PC via USB, and using the volume keys on the switch highlight the EMMC option and press the power button to select and mount the EMMC partition on the linux machine.
Now run fdisk -l again to show all the hardrives connected to your PC, and notice which one of the same size as your new drive, was not there before. This is the drive you are working on, be very careful to get this right, as any mistake here can cause irreparable damage to your windows install. You are looking for the drive with 11 partitions, the first 9 being small, then one 2.5GB, then the final 11th being 26GB. All of type unknown. See a copy of my partition layout for the switch EMMC below.

Disk /dev/sdb: 233 GiB, 250148290560 bytes, 488570880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EDD7049E-B2D3-4067-B3D9-E5A8F398258F

Device Start End Sectors Size Type
/dev/sdb1 34 8191 8158 4M unknown
/dev/sdb2 8192 16383 8192 4M unknown
/dev/sdb3 16384 32767 16384 8M unknown
/dev/sdb4 32768 49151 16384 8M unknown
/dev/sdb5 49152 65535 16384 8M unknown
/dev/sdb6 65536 81919 16384 8M unknown
/dev/sdb7 81920 98303 16384 8M unknown
/dev/sdb8 98304 114687 16384 8M unknown
/dev/sdb9 114688 245759 131072 64M unknown
/dev/sdb10 245760 5488639 5242880 2.5G unknown
/dev/sdb11 5488640 60014591 54525952 26G unknown

For me this was /dev/sdb, for the rest of the guide i will write /dev/sdX to remind you to substitute whichever drive letter your switch was assigned.

gdisk /dev/sdX

this opens the gdisk application, and points it at your switch emmc. If you are offered the chance to correct the start position of the drive or the partition table, press y to accept.


Type i, enter, then 11 to show the information for the 11th partition on the drive. Including the GUID, and the unique GUID, we need to mirror all these fields exactly later. Copy all this information into a text editor for easier copy and pasting later.
Mine looked like this:

Partition number (1-11): 11
Partition GUID code: 2B777F63-E842-47AF-94C4-25A7F18B2280 (Unknown)
Partition unique GUID: 5561E2C3-9B40-4D90-A546-20EB6C0151FC
First sector: 5488640 (at 2.6 GiB)
Last sector: 60014591 (at 28.6 GiB)
Partition size: 54525952 sectors (26.0 GiB)
Attribute flags: 0000000000000001
Partition name: 'USER'

Next we need to delete the 11th partition, the user partition, don’t worry, this wont delete the data underneath (although remember you also have the backup of your nand anyway incase something goes wrong). In gdisk with your switch nand selected type:


to delete the partition. Then write these changes to the disk with


you will see the following warning: “Warning! Secondary header is placed too early on the disk! Do you want to correct this problem? (Y/N):” Enter y, then y again on the final check to write those changes to the disk.
We now need to refresh the partition layout with kpartx, so enter

kpartx /dev/sdX

*if you don't have kpartx you can install it by typing sudo apt install kpartx

which will refresh the partition layout, updating it with the new changes in size and layout.
Now re-enter gdisk, making sure to specify the switch emmc from before.

gdisk /dev/sdX

Now create a new partition, in the exact same place as the one we just deleted,

Command (? for help):


the tool will automatically use partition 11, and accept the default for start and end location, noting that the end location is now your new disk size, 6xxxxxx for 64gb, 11xxxxx for 128gb and 24xxxxxx for 240GB.
When prompted for the partition type, copy and paste the partition GUID we made a note of earlier. (not the one labeled unique GUID). The one that ends in (UNKNOWN). For me that was Partition GUID code: 2B777F63-E842-47AF-94C4-25A7F18B2280 (Unknown)
Now the new partition is created, we need to change the partitions unique GUID code back to the same as it was before, so the switch knows which partition to use. We do this by typing


x, to enter advanced mode, c for change partition GUID, and 11 for the USER partition we are working with. The prompt will change to

Enter the partition's new unique GUID ('R' to randomize):

and here we enter the unique GUID for the partition that we made a note of before. ( for me it is ‘Partition unique GUID: 5561E2C3-9B40-4D90-A546-20EB6C0151FC’)

*your actual number will be different, but in this example, it would be just 5561E2C3-9B40-4D90-A546-20EB6C0151FC

We also need to set the partition name, so press m for the main menu


then c for change partition name, 11 for the partition to change, and then set the name to USER in capital letters.

c
11
USER

Finally we need to set the attributes for the partition, to set it back to system so that the switch won’t notice we were here. x for advanced, then a for attributes, and 11 to chose the partition, and then toggle attribute 0 to set the partition to system.

Expert command (? for help): a
Partition number (1-11): 11
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 0
Have enabled the 'system partition' attribute.
Attribute value is 0000000000000001. Set fields are:
0 (system partition)

Toggle which attribute field (0-63, 64 or <Enter> to exit):

press enter to exit.

We are all done here, but finally we can print the partition information again with


and compare this with the values we saw originally, it should be identical except for the lat sector and partition size fields, which should represent the new size. If any of these are different go back now and double check your work until they match exactly. Once you are done enter w to write, and y that you are sure.


Now you can unplug your switch, press the power button for 5 seconds to exit memloader and then press the power button to boot your switch. It should boot normally into the switch OS, with all your saves and content preserved from before. ##If at this point you have any errors, or the switch won’t boot, go back and try the steps again right from restore your rawnand.bin, as if it wont boot correctly now, the next steps won’t fix that.

Now we need access to a windows PC with HacDiskMount and fat32format.exe.

On a windows PC.​

Shutdown your switch and reboot to RCM mode. Push the memloader payload again, connect the cable to your windows PC, and using volume and power mount the EMMC partition over USB.

In windows open HacDiskMount as administrator, click file and open physical drive.

Choose your switch drive, ignore the error that it does not seem like a full emmc dump.

You should see the 11 partitions listed here, click the USER partition we just remade, and you will see a prompt for encryption keys.

Take the bis_key_03 value from your prod.keys that you dumped earlier, and enter the left half on the top line, and the right half on the line below, then click test.

You should see a message that the was successful and the encryption was opened.

If you do not get a success message stop now, and double check/redump your prod.keys.

If you continue without opening the encryption you lose all your switch data.

Once the keys are verified, install the driver, and mount the drive to an empty drive letter.

In this example i will use the G: drive.

Open windows explorer and copy all the files from the G drive onto your local machine, this is a backup of your saves and settings, do not lose this.

Now we need to go to the location where fat32format.exe is located, run an administrator prompt and enter

fat32format.exe G

This will wipe your switch user partition and reformat it, using the new partition data we created to give us the full size of the new USER partition.

Once this finished we now should see the new EMMC size in windows explorer for the G drive, and we can copy back our backup of the saves and settings we made before the format.

This copy is slow, and if it fails I recommend deleting all the files and re-copying folder by folder until it completes successfully.

Wait 30 seconds for any background file transfers to complete, then in HacDiskMount unmount the drive, and after a few seconds disconnect your switch.

Hold the power button on your switch for 5 seconds to exit memloader, then cross your fingers and press the power button, the switch should boot up normally, but in the settings menu, show your new EMMC size. Success!

If you get a black nintendo error screen, go back to the rawnand.bin stage and start the whole process again, it may take a couple of tries for the stars to align and every step to go flawlessly.

Enjoy your new switch storage space!

Originally Written on January 31, 2019
 
Last edited by binkinator,

Loren_Son

Member
Newcomer
Joined
Jun 4, 2023
Messages
13
Trophies
0
Age
41
XP
42
Country
Spain
I don't know if SDINBDA6-256G-ZA can be used. At present, the stock of this chip is sufficient and the price is favorable.


:switch: :unsure:
Post automatically merged:


This is excellent work, and it might be even better if you could test SDINBDA6-256G-ZA.:lol:
Post automatically merged:


I am currently working on a new product, please wait patiently.:grog:
Aliexpress, Amazon, or similar should be your friends too!!
 

evil_santa

Well-Known Member
Member
Joined
Jan 15, 2020
Messages
388
Trophies
1
Age
39
XP
1,935
Country
Germany
Ohh sorry, I was wrong my bad 😅
Yes there are similar products, but I must say the reader with optionally emmc mount are a really nice option.
Other sellers have much more expensive reader's for bare emmc's.
 

H3xxCat

Member
Newcomer
Joined
May 19, 2023
Messages
18
Trophies
0
XP
57
Country
United States
Having some hard time finding emmc chips, especially to the similars specs of 64GB chip that's on Oled model (KLMCG4JETD-B041). There some other models produced by Samsung, but I can't find any datasheets about them.

1687259216141.png
 

Hassal

Well-Known Member
Member
Joined
Apr 22, 2023
Messages
568
Trophies
0
Age
24
XP
516
Country
United Arab Emirates
Your guide is pretty outdated. Hekate to my understanding removed the check on drive size so using the ancient one you linked makes no sense.
 

Omegapsy

Well-Known Member
Member
Joined
Feb 20, 2012
Messages
124
Trophies
1
XP
830
Country
United States
I think I found my next switch project. My one question, is there a way to buy an extra daughter board for the switch so I can just do a simple swap out?
 

Hassal

Well-Known Member
Member
Joined
Apr 22, 2023
Messages
568
Trophies
0
Age
24
XP
516
Country
United Arab Emirates
So has anyone got banned connecting to Big N servers with this drive swap? Does N collect telemetry data about the hardware?
 

marhalloweenvt

Well-Known Member
Member
Joined
Oct 2, 2014
Messages
237
Trophies
0
Age
29
XP
989
Country
So has anyone got banned connecting to Big N servers with this drive swap? Does N collect telemetry data about the hardware?
I have used it for nearly 6 months and still playing Monster Hunter Rise with my friends over internet and buy new games on eshop normally
I think I found my next switch project. My one question, is there a way to buy an extra daughter board for the switch so I can just do a simple swap out?
You can ping @JBDZ , he made daughterboard for emmc and tools for read/write process easier.
 

zal16

Well-Known Member
Member
Joined
Oct 8, 2020
Messages
135
Trophies
0
Age
38
XP
657
Country
Brazil
There's a tool that makes this much easier. Moved my larger nand to a new switch with it.
https://github.com/blawar/nandpart
When I upgraded the eMMC on my Switch OLED , I tried using this program too. I don't recommend it, as it doesn't correctly resize the partition and the console doesn't start. I was forced to use NAND my backup to redo everything, this time doing it the traditional way, with gparted.
 

designgears

Well-Known Member
Member
Joined
Aug 8, 2016
Messages
291
Trophies
0
XP
671
Country
United States
When I upgraded the eMMC on my Switch OLED , I tried using this program too. I don't recommend it, as it doesn't correctly resize the partition and the console doesn't start. I was forced to use NAND my backup to redo everything, this time doing it the traditional way, with gparted.
Strange, I used it twice a few days ago to migrate and once when I did my nand upgrade and everything has worked fine. I don't have an OLED, maybe that's the difference.
 

evil_santa

Well-Known Member
Member
Joined
Jan 15, 2020
Messages
388
Trophies
1
Age
39
XP
1,935
Country
Germany
Anyone try using linageos or Ubuntu from the console itself?
Yes did this long time ago, it's a much better experience if you running Linage or Ubuntu from the emmc. Everything feels much smoother.

Btw installed a 256gb Samsung emmc on 2 Switch OLED for a customer.
 

Attachments

  • IMG_20240119_002945960.jpg
    IMG_20240119_002945960.jpg
    2.2 MB · Views: 44
  • IMG_20240117_194251121_HDR.jpg
    IMG_20240117_194251121_HDR.jpg
    391.1 KB · Views: 53
  • IMG_20240117_222212991_HDR.jpg
    IMG_20240117_222212991_HDR.jpg
    1.1 MB · Views: 56

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Sicklyboy @ Sicklyboy: Monitor supports HDR, which means I can finally try out the RTX HDR mod. Pretty neat +1