닌텐도 스위치의 SD 카드 파일 시스템, FAT32 와 exFAT 중 어떤게 좋을까?
상당히 오래된 주제지만 언제나 뜨거운 감자가 되곤 하는 SD 카드의 파일 시스템을 다시 한번 살펴보겠습니다.
기본적으로 닌텐도 스위치는 exFAT
을 지원하니 마찬가지로 커스텀 펌웨어와 에뮤낸드는 FAT32
또는 exFAT
모두를 사용할 수 있는 환경입니다.
최근 커뮤니티들에서는 삼성 신형 SD 카드에서 닌텐도 스위치에 다양한 문제가 발생한다는 보고들이 많은데, 직접 구매해서 사용해본 지금도 아직까지 전혀 근거를 못 찾았습니다.
그러나 위와 같은 문제를 최소화하기 위해서 전세계 모두가 하나 같이 추천하는 파일 시스템이 있으니, 그게 바로 FAT32
파일 시스템의 사용입니다.
간단하게 설명하자면 32비트 기반의 구닥다리 파일 시스템으로 단일 4기가 이상의 파일을 넣을 수 없는 단점을 가졌지만, 1996년에 출시되어 워낙 오래 되었다 보니 사실상 이동식 저장장치의 검증된 표준 파일 시스템이라고 할 수 있겠습니다.
Should I format my card to exFAT or FAT32?
by u/FightNegativism in SwitchPirates
지금도 여전히 위와 같이 reddit의 CFW 커뮤니티에는 파일 시스템에 대한 선택을 고민하고 있는사용자들의 주제가 꾸준하게 올라오고 있습니다.
마찬가지로 파일 시스템 관련해서 가장 유용한 언급이 많았던 GBAtemp의 위와 같은 내용도 있습니다.
가장 큰 차이는 파일을 쓰다가 중간에 문제가 생기면 FAT32
는 해당 파일에만 문제가 발생하지만, exFAT
의 경우 전체 데이터가 박살나는 위험이 있다는 것입니다.
그리고 이러한 문제는 정펌(OFW)
과 커펌(CFW)
을 가리지 않고 랜덤하게 발생합니다.
먼 옛날 닌텐도 스위치 CFW의 경우 초창기 초기 3.X
펌웨어 시절 SD 카드에 NSP
등의 Dump
된 파일을 넣어두고 이를 설치하는 식의 사용이 성행했습니다.
지금은 간편하게 PC에 직결해서 USB로 설치하는 방식이 대중화되어 있지만 당시엔 아니었고, 그렇다 보니 사용자들은 exFAT
을 지원해야만 편하게 설치가 가능했기 때문에 자연스럽게 HacDiskMount
같은 툴을 이용해 exFAT
드라이버를 강제로 설치해서 사용하는 식으로 펌웨어를 개조해서 사용했습니다.
이후 닌텐도에서 5.X
대 펌웨어부터 공식적으로 닌텐도의 시스템 펌웨어에서 exFAT
을 지원하게 되자 드디어 자연스럽게 사용자들은 별 생각 없이 exFAT
을 그대로 사용하기 시작합니다.
하지만 스위치의 내부적으로 설치파일(NCA)이 위치하는 Nintendo
폴더의 contens
항목을 살펴보면 지금도 어느 하나 4기가 이상의 파일은 존재하지 않습니다.
결국 스위치는 기본적으로 exFAT
파일 시스템을 형식적으로 지원하고 있으나 그럼에도 SD카드를 사용하면 운영체제인 Horizon OS
는 물론 내부적으로 FAT32
를 우선하여 동작하고 있다고 보실 수 있습니다.
이렇게 마이크로 소프트 독점 드라이버인 exFAT
은 제약이 많은 편인데, 더군다나 심지어 지금도 닌텐도 스위치가 사용하고 있는 exFAT
드라이버는 악명이 자자합니다.
지난 포켓몬스터 소드,실드 출시 당시에는 정펌 커펌 할 것 없이 자동 세이브
를 활성화 했다는 이유로 운이 없다면 SD 카드 내 파일 또는 에뮤낸드 전체가 박살나는 이슈까지 있었습니다.
정펌에서 SD 카드 초기화 시 용량에 따라 FAT32
또는 exFAT
으로 포맷되는데 어짜피 쓰지 않을거라면 왜? FAT32
로 통일하지 않는걸까 생각해볼 수 있는데, 역시나 기준은 윈도우 PC를 가진 수많은 사용자들이 혼란스럽지 않도록 추가했기 때문일겁니다.
그러나 읽기 쓰기의 경우 에뮤낸드로 인해 의도했던 것 이상으로 사용하기 때문에 정펌보다는 유독 CFW 안에서 더욱 문제가 많습니다.
마이크로 소프트의 exFAT
은 오픈소스가 아니기 때문에 소스 전체가 공개 되어야 하는 오픈소스 프로젝트인 Atmosphere
나 Hekate
에서는 공식적으로 지원하지도 않을 뿐더러 사실 지원하려고해도 정책상 사용할 수 조차 없습니다.
물론 그렇다고 기기에서 동작조차 안되는 것은 아니어서 사용자들은 언제나 혼란스럽긴 마찬가지인데, 적어도 정펌에서는 exFAT
으로 발생하는 이슈는 크게 없습니다.
파일 시스템을무엇을 쓸지 논하는 상황은 오로지 불법 설치를 목적으로 하는 CFW 환경에서만 발생하고 있습니다.
지금까지 긴 빌드업을 했던 이유는 바로 오늘날 유행하고 있는 파일 기반 에뮤낸드에 대해 다시 공부하고 있기 때문입니다.
헤카테의 파일기반 낸드가 사실상 사용을 금지한 exFAT
위에서 어떻게 잘 동작하는지에 대한 궁금함이 생겼는데, 최근 뜨거운 관심을 받고 있는 ASAP를 이용해 짧은 테스트를 진행해보겠습니다.
앞서 다루었던 포스팅처럼 install.bat
을 통한 초기 설치시 파일 기반 낸드를 사용하려거든, 기본적으로 hekate 파티션 매니저를 사용하지 않을 수도 있기 때문에 상당히 궁금했습니다.
과연 파일 기반 낸드를 만들면 과거처럼 29GB
가량의 단일 파일이 떨어지는가 하는가? 라는게 첫번째 궁금함이었습니다.
현재 exFAT
에서 시작했으니 귀신이 곡할 노릇이 아니라면 파일만 내부적으로 FAT32
방식으로 만들어 줄 리는 없을테니까요.
물론 파일 시스템의 변경의 경우 테스트를 해볼 필요조차 없는 것이 이미 개발자인 Asadayot 님도 직접 수동으로 Hekate에서 FAT32
로 포맷하는 것을 언급하고 계신 내용입니다.
여담이지만 USB 설치 혹은 Tinfoil의 NCA 설치 방식만 보아도 exFAT + FAT32 같은 구성은 전혀 필요 없으며 이를 통해 얻을 수 있는 장점은 없다고 해도 무방합니다.
exFAT
파일 시스템을 가진 SD 카드에서 아무런 별도의 작업 없이, Hekate의 emuMMC(에뮤낸드)
를 그대로 만들어 보았습니다.
역시나 에뮤낸드를 생성 완료했지만 당연하게도 전체 파일 시스템은 여전히 exFAT
으로 전혀 변화는 없습니다.
따라서 파일 기반 에뮤낸드를 만들기 전에 반드시 Hekate 파티션 매니저에서 파티션을 나누지 않고 미리 한번 포맷을 진행해주셔야 스위치 자체에서 FAT32
로 쉽게 교체는 가능해보입니다.
다행히도 Hekate에서 이미 오래전 변경된 내용이겠지만, 지금은 Hekate가 만들어 준 파일 기반의 낸드가 과거와는 달리 FAT32
기반 카드로 이동이 가능한 형태로 단일 파일 4GB
이하로 모두 분할되어 생성 된 모습입니다.
그러나 이렇게 exFAT
환경에서 만들어낸 에뮤낸드로 부팅을 해보면 아무런 문제가 없으며, 초기 파일기반 낸드처럼 로딩화면에서 1분이 가량이 걸리는 불편한 환경이 더 이상 아니기 때문에 속도에도 불만이 없었습니다.
CFW 부팅도 멀쩡하고 버전표기도 E
로 에뮤낸드가 정상적으로 동작하고 있습니다.
마치 아무런 문제가 없을 것처럼 보이고 심지어 운이 좋다면 별다른 특이 사항 없이 사용이 가능할 것 이기에 이를 "무조건 이렇게 쓰면 안돼!" 라고 비난할 수는 없겠죠.
이런 전혀 문제 없어 보이는 구조 덕분에 지금도 사용자들 사이에서 여러가지 갑론을박이 나오고 있다고 생각합니다.
그러나 앞서 말씀드린 FAT32
와 exFAT
의 파일 깨짐시 파일 일부와 데이터 전체가 문제가 되는 시한폭탄 같은 케이스를 떠올려 보아야겠습니다.
덕분에 재수가 없다면 SD카드에 문제가 생기는 순간 별도의 파티션에 남아있을 RAW Partition
기반 에뮤낸드와는 완전히 상황이 다릅니다.
언제든 위 파일 기반의 낸드 파일들은 SD 카드 오류와 함께 침몰하게 될 확률이 더 높습니다.
따라서 가능한 문제없이 CFW를 오래 사용하려거든 우리는 파일 시스템의 전문가가 아니니 앞선 사례들을 보고 FAT32
환경을 미리 준비하는 것이 좋겠습니다.
스위치의 SD 카드의 파일 시스템은 선택이 아닌 필수로 FAT32
를 사용하는게 맞습니다.