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!
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 withwsl --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
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 runwsl --unmount <DeviceID>
to disconnect the disk, then check fdisk in wsl, thenwsl --mount <DeviceID> --bare
to remount.
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.
- Start fdisk targetting the SD card
sudo fdisk /dev/sdz
- Delete any existing partition
d
- Create a new GPT label
g
- 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.
- Write the changes to the SD card. This will delete all data on the card.
w
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.
Put your SD card in your Steam Deck and it will recognize the card like normal!
- Reddit thread including the official SD card formatting script
- Using the Windows Subsystem for Linux to create an ext4 partition for Tesla's Dashcam/Sentry Mode
- Reddit threads about the "issues from formatting twice" bug: