Skip to content

Instantly share code, notes, and snippets.

@Corecii
Last active May 20, 2022 04:42
Show Gist options
  • Save Corecii/044ab10374c3454776641564d3335178 to your computer and use it in GitHub Desktop.
Save Corecii/044ab10374c3454776641564d3335178 to your computer and use it in GitHub Desktop.
Steam Deck SD Card formatting

How to format micro SD card for Steam Deck manually

The Steam Deck seems to cause irreparable issues when it formats an SD card twice.

In hopes of avoiding those issues, I'va manually formatted the SD card. I haven't confirmed if this avoids the "issues when formatted twice" because that would mean potentially breaking the expensive SD card!

Steps

Find a computer running Linux, or use Windows 11 Windows 11 Build 22000 or later with WSL

The Steam Decks expects the SD card to be formatted as ext4, so we'll need a Linux computer to do the formatting.

If using Linux, just plug your card adapter in and it should be detected.

If using WSL:

  • In a Administrator PowerShell run wmic diskdrive list brief
  • Once you've found the device id (e.g. \\.\PHYSICALDRIVE12), mount it to WSL with wsl --mount <DeviceID> --bare
    • If it gives you WSL help then your version of Windows is too old. Switch to an insider build or find a Linux computer. You may be able to boot into a Linux live USB.
  • Switch to a WSL terminal with wsl

Find your SD card

Run sudo fdisk -l to list all disks.

If it's not obvious which disk is the SD card, you can try disconnecting, running sudo fdisk -l, then reconnecting.

  • On Linux, you can just physically disconnect and reconnect the disk
  • On WSL, you can exit back to PowerShell and run wsl --unmount <DeviceID> to disconnect the disk, then check fdisk in wsl, then wsl --mount <DeviceID> --bare to remount.

Format your SD card

I will be using /dev/sdz and /dev/sdz1 as examples, so that if you blindly copy/paste you hopefully won't break a real disk, since it's unlikely that you have 26 disks.

You should use the /dev/ you found in the last step, not the ones I use in the example.

  1. Start fdisk targetting the SD card
  • sudo fdisk /dev/sdz
  1. Delete any existing partition
  • d
  1. Create a new GPT label
  • g
  1. Create a new partition
  • n
  • p for primary if it asks for parimary/extended. I did not see this when I did it.
  • 1 for first partition
  • You can use the default start block (2048 in my case)
  • You should be able to use the default end block. I left around 9,000 blocks at the end just in case extra space could be important, but it shouldn't matter.
  1. Write the changes to the SD card. This will delete all data on the card.
  • w

Make ext4 partition with proper setting

The Steam Deck uses some extra settings when formatting its ext4 partition:

  • -m 0 keeps 0 space reserved for system, since the sd card is solely used for storage
  • -O casefolding makes the filesystem case-insensitive, like Windows. This improves compatibility and performance with games running in Proton.

sudo mkfs.ext4 -m 0 -O casefold -F /dev/sdz1

You should use sdz1 here because you're making an ext4 filesystem on the first partition.

You're done!

Put your SD card in your Steam Deck and it will recognize the card like normal!

Sources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment