지난 수요일에 SD카드를 한번 포맷했는데 그 과정에서 파일이 깨졌다는 걸 금요일에 발견했더랬습니다.
어제 하루종일 그걸 복구하는 작업을 했고, 그 과정에서 알게 된 것도 있어 여기에 공유해 봅니다.
현상
3DS에서 아래 화면을 통해 게임을 선택하면, 상단 화면에 해당 게임의 3D아이콘이 표시됩니다.
그러나 파일이 깨지거나 없으면 아래와 같은 현상이 일어납니다.
아래의 화면은 그제 발생한 상황을 그대로 담은 건 아니지만, 현상은 동일하기 때문에 연출해 본 겁니다.
다시 밝히지만 현상은 동일합니다.
우측 최 끝단의 아이콘을 선택했지만, 게임이 실행되지 않습니다.
당연히 게임을 구동해도 작동되지 않으며, 이 상황에서는 세이브 데이터 백업도 되지 않습니다.
닌텐도의 권고는 설정창에서 해당 게임을 삭제하고 다시 받으라는 건데, 이 경우.
1. 백업되지 않은 상태에서 세이브 파일도 같이 날아간다.
2. 이미 수신한「엇갈림 통신」이나,「어느새 통신」은 어떻게 되는가?
사전지식
이에 대해 답하기 전에 어떤 파일이 문제를 일으키고, 어떤 상황에서 문제가 일어나는가를 먼저 살펴보겠습니다.
3DS의 SD카드를 꺼내 컴에 연결해, 내용물을 보면 아래 사진 1과 같은 폴더를 볼 수 있습니다.

1
이 중, DL게임 및 DLC, 세이브파일 백업, 업데이트 파일은 모두 우측의 Nintendo 3DS폴더에 저장됩니다.

2
내용물은 좌측의 난수로 생성된 듯한 이름을 가진 폴더에는 컨텐츠가 들어가고, 우측 Private 폴더에는 음성녹음 데이터나 포토 앱 사용과 관련된 이력정보 같은 것들이 남습니다. 좌측 폴더를 클릭하면 다시 난수로 생성된 이름을 가진 폴더가 하나 나오는데 그 안을 보면 아래 사진 3과 같은 내용물이 나옵니다.

3
폴더는 다음과 같습니다.
backups는 3DS를 통해 백업된 세이브 데이터가 옮겨지는 공간입니다. 폴더는 순번대로 생성되며 001 폴더에 게임폴더 00040000으로 시작해 게임식별코드, 예를들면 00800101 이라는 게임코드의 세이브 백업의 경우 하위에 004000000800101 이라는 폴더가 생성되고 거기에 세이브 데이터가 옮겨지는 식입니다.
이 세이브 데이터는 사용자가 인위로 복사해 title폴더 안의 00800101이라는 게임 폴더 안의 세이브파일 폴더에 옮겨 넣기만해도 정상적으로 인식됩니다.
그러나 게임 폴더 안의 세이브파일 폴더에서 세이브 파일을 옮겨, 위의 004000000800101이라는 폴더를 임의로 생성해, 3DS 설정창을 통해 세이브 복원을 할 경우에는 작동하지 않습니다.
이 데이터를 비롯, 각종 데이터의 정보는 우측의 dbs 폴더의 db파일에 저장되기 때문에 이걸 만지지 않고는 리스트화 되지 않기 때문입니다. 본문에서는 이 dbs에 관한 내용은 작성하지 않습니다. 따라서 무시하고 진행하겠습니다.
extradata는 다운로드 컨텐츠들입니다. 매우 많은 파일 조각으로 되어 있는 꾸러미입니다. 따라서 앞서 밝힌 모든 폴더들과 마찬가지로 이곳의 데이터는 깨지는 경우가 흔하지 않습니다. 또, 설령 깨진다해도 새로 받으면 되는 것으로 유저의 게임 플레이에 심각하게 위해가 되는 녀석은 아닐 것입니다.
문제는 title 폴더입니다.

4
폴더를 보면 이렇게 되어 있는데 앞서 예로 든 00800101과 같이 게임 식별코드로 저장되어 있습니다. 게임을 찾아내는 유일한 방법은 게임 설정 창이나 닌텐도홈페이지에서 메모리 블럭 수를 알아내어 * 128 하여 용량을 매칭해 찾는 수 밖에 기본적인 방법은 없습니다.
이 글은 파일깨짐에 따른 데이터 강제 백업과 복원, 통신기록에 대한 강좌이므로, 여기에만 집중하겠습니다.
이런 상황이 발생하면 SD카드 내용물을 모두 컴퓨터에 백업하도록 합니다. 이에 관한 설명은 마지막에 다시 하겠습니다.
컴퓨터에 SD카드의 정보를 한차례 백업했다는 가정하에 이제 안심하고 게임기의 설정 화면에서 깨진 파일을 모조리 삭제하면 멀쩡한 게임만 남겼을 때, 위의 이미지 처럼 그 수가 많이 줄어들게 됩니다.
얘들은 구태여 건들일 필요 없이 SD카드를 포맷하고 그대로 옮길 수 있습니다. (요컨대 절대로 깨지지 않을 녀석들이라고 할 수 있습니다.)
누가 문제를 일으키나?

5
문제의 원인은 보통 SD카드에서 대용량 파일을 옮기는 과정에서 파일 자체나 파일 정보가 훼손되면서 벌어지는 문제입니다.
망가지는 파일은 보통 위의 이미지에 나온 .app 확장자를 가진 파일입니다. 바로 DL판 게임 앱입니다.
맥의 경우 '파일의 용량이 너무 커 옮길 수 없다'는 식의 문구가 나옵니다. 이걸 터미널을 통해 강제로 cp -rf 같은 커맨드로 옮기면 옮길 수는 있으나 파일이 깨지거나 망가진 상태로 넘어오므로 하나 마나입니다.
또, 이미 망가진 파일을 다시 옮긴다해도 망가진 다음이므로 SD카드를 포맷한다거나 하는 건 소용없습니다. 다만 철저히 게임 앱이 망가진 것일 뿐이므로 게임만 지우고 새로 다운 받은 다음, 세이브 파일을 복원하는 방식으로 접근하는 게 옳습니다.
따라서, SD카드를 포맷하시려거든.
되도록 많은 게임을 세이브 파일 백업하고, 게임 본편을 삭제해 덩치 큰 파일을 없앤 다음 실행하세요.
그 외에 어떤 상황이 있을 수 있는지 알 수 없으나, 3DS가 사용하는 파일시스템은 일반적이긴 하나 구식인 FAT 혹은 FAT32를 이용하므로 이 파일시스템에서 발생할 수 있는 모든 에러를 경험 할 가능성이 있다는 점만 이해하시면 될 것 같습니다.
어떻게 복원하나?
최초의 문제가 발생 했을 때는 일단 SD카드 전부를 컴퓨터에 백업합니다.
세이브 데이터 백업이 가능한 타이틀에 한정해서 백업 후, 타이틀을 삭제하는 것은 상관 없습니다만.
통신 내역이 아쉬운 게임은 왠만하면 그냥 두세요. 이는 게임에 따라 통신내역을 다루는 방식이 다르기 때문이니 이들이 지워져도 상관 없는 게 아닌 이상은 그냥 진행하시길 바랍니다.
다음으로 SD카드를 다시 3DS에 삽입해, 설정에 들어가「?」로 표시되고 용량도 0으로 표시되는 모든 앱을 지웁니다.
그렇게 하면 사진4와 같은 상황이 될 겁니다.
이 상태에서 다시 SD카드를 빼서 데이터를 백업 후, SD카드를 포맷해도 좋고. 그냥 eShop에서 게임을 새로 다운받아도 상관없습니다.
다만, 세이브를 복원해야 하니. 중복작업을 피하려면 남은 폴더 스샷이나 이름 정도는 남겨두세요. 꼭이요!
게임을 다운 받으면 3DS 상에서는 엇갈림 통신과 어느새 통신 데이터가 지워지지 않은 채 남아 있음을 확인할 수 있습니다.
다시 말해, 이들 통신 기록은 SD카드가 아닌 본체 내장 메모리에 저장되고 있다는 뜻입니다.
이제 통신 기록 문제는 해결 되었으니 세이브 파일을 복원해 보죠.
SD카드를 맥에 삽입해 사진 1, 2, 3을 순서대로 진행해 title폴더를 클릭하면 사진6과 같은 폴더가 보일겁니다.

6
폴더는 이보다 조금 더 많을 수도 있습니다만, 상관없습니다.
게임은 0040000폴더에 저장되니까요.
클릭하면 위의 사진4와 같은 결과가 보입니다.
그중 001a3e00을 클릭해 보겠습니다.

7
클릭하면 content폴더와 data폴더가 있는데, data폴더가 세이브 폴더입니다.
앞서 설명한 것 처럼, 최초에 백업한 폴더에서 세이브데이터를 복사해 여기에 세이브 데이터를 복붙하거나 덮어쓰면 됩니다.
단, SD카드에서 바로 작업하실 경우엔 덮어쓰지 마시고 SD에 먼저 남아 있는 세이브 파일을 삭제 후 복사해서 붙여넣으세요. 꼭이요!
끝으로
제가 이 글을 클리앙에 남기는 이유는, 가끔 루리웹 3DS게시판이나 여타 블로그에서 DL컨텐츠 날리면서 동물의 숲 세이브 데이터를 날렸다는 하소연을 본 기억이 있어서 입니다.
다행히 클리앙 게시물은 검색 노출이 더 잘 되니, 이곳에 남기면 어려움에 처한 분들이 참고하실 수 있겠죠.
SD카드에서 파일이 보이고, 게임기에서 문제가 있다고 뜬다면.
어떻게든 접근해 고칠 수 있다는 뜻이니, 포기하지 마세요.
작업이 복잡하겠지만 여기 남긴 글 참고하셔서 살려내 즐거운 게임라이프 지속하시길 바랍니다.
아무기기에 복원 가능했음 좋겠어요ㅜㅠ
매번 3ds 새 sd카드 넣을때마다 hash값이 들어간 폴더가 생성되는건지 그냥 단순 메모리 복사만으로 다른 기기 이동시 전혀 복원이 안되더라구요
저번에 기기 이전하다 세이브 데이터 홀랑 날려먹었습니다
ㅠㅜ
보안 문제도 있으니 어쩔 수 없지 않나 싶습니다. 어쨌튼 안타깝네요. ㅠ_
날린 이유중 하나가 nnid 연동을 기기 이전 말고는 풀 방법이 없다는 거였어요 그 과정중 날라갔어요 휴
그나저나 게임들 보유 엄청나시네요 dl게임들도 세일 자즈 했음 좋겠어요
저도 딱 한번 해봤는데, 이사가 좀 귀찮죠. (한숨)
세일도 세일이지만, 저는 마이닌텐도 포인트도 연동해서 사긁어 모으는지라. ㅋ
닌텐도 DL정책에 불만도 많이 듣습니다만....
저는 너무 편해서 이게 좋더군요. ㅠ_
다만 다른 기기로 세이브를 이전하기 위해서는 이사만이 유일합니다.
(개조하면 홈브류로 가능하긴 하지만 논외로 하겠습니다)
참고적인 이야기입니다만, 닌텐도쪽 하드의 경우 파나소닉쪽 SD기술 기반으로 만들어진거라.
윈도우 사용자시더라도 OS가 지원하는 포맷시스템 말고 SD카드 협회에서 제공하는 툴로 하시길 권해드립니다.
이걸로 안 하고 윈도우의 FAT32나 FAT 혹은 exFAT으로 포맷하면 문제가 될 수 있어요. ㅠ_