APFS 데이터 복구에 도움이 필요하신가요

Mac에서 제대로 마운트되지 않게 된 후 APFS로 포맷된 드라이브에서 파일을 복구하려고 합니다. 디스크 유틸리티에서는 드라이브를 볼 수 있지만 데이터에 접근할 수 없고, 상황을 더 악화시킬까 봐 걱정됩니다. APFS 데이터 복구를 가장 안전하게 진행하고 파일을 복구하는 방법은 무엇인가요?

저라면 그 APFS 드라이브 사용을 즉시 중단하겠습니다. 그 점이 무엇보다도 중요합니다. 거기에 파일을 저장하지 말고, 복구 도구를 설치하지도 말고, 가능하다면 macOS가 계속 평소 작업을 하도록 두지도 마세요. 삭제된 데이터는 해당 블록이 아직 재사용되지 않았을 때만 복구할 수 있습니다.

여기서는 드라이브 유형이 큰 차이를 만듭니다.

외장 HDD이거나 APFS로 포맷된 하드 드라이브를 사용하는 구형 Mac이라면, 누락된 데이터가 아직 덮어쓰이지 않았다면 가능성이 꽤 괜찮을 수 있습니다.

SSD라면 TRIM 때문에 상황이 훨씬 더 까다로워집니다. TRIM은 SSD에 삭제된 어떤 블록을 비워도 되는지 알려줍니다. 그 정리가 실제로 이루어지고 나면, 복구 소프트웨어는 그 파일들을 마법처럼 다시 만들어낼 수 없습니다. 그러니 APFS SSD에서 이런 일이 발생했다면, Mac을 계속 사용하면서 저절로 해결되길 기대하지 마세요. 더 빨리 멈출수록 가능성이 높아집니다. 최신 macOS 설치에서는 보통 내부 SSD의 TRIM을 끌 수도 없기 때문에, 사실상 속도만이 유일한 이점입니다.

복구 소프트웨어로 바로 들어가기 전에, 먼저 간단한 것부터 확인하세요:

  1. Time Machine 백업.
  2. 사용 가능한 APFS 스냅샷.
  3. FileVault 암호화. 드라이브가 암호화되어 있다면, 대부분의 도구가 제대로 스캔하기 전에 잠금을 해제하거나 복호화해야 합니다.

실제 복구에는 Disk Drill이 제게 가장 잘 맞았습니다. 이 도구는 APFS를 단순한 원시 파일 카빙만 하는 것이 아니라 파일 시스템으로 처리하므로, 메타데이터가 아직 남아 있다면 폴더 경로와 원래 파일 이름을 유지할 수도 있습니다.

가장 안전한 방법은 대략 다음과 같습니다:

  1. Disk Drill은 영향을 받은 드라이브가 아닌 별도의 드라이브에 설치하세요.
  2. 복구하려는 APFS 드라이브를 연결하세요.
  3. 전체 스캔을 실행하세요.
  4. 복구 전에 미리보기를 사용해서 파일이 실제로 온전한지 확인하세요.
  5. 파일은 다른 디스크로 복구하세요. 복구된 파일을 같은 드라이브에 다시 쓰지 마세요.

그 미리보기 단계는 해볼 가치가 있습니다. 망가진 파일만 잔뜩 복구하느라 시간을 낭비하는 일을 막아줍니다.

드라이브가 마운트되지 않거나, 연결이 끊기거나, 이상한 소음을 낸다면 아직 복구 도구를 돌리기 시작하지 않겠습니다. 지금은 First Aid도 건너뛰세요. 복구 시도는 디스크에 변경 사항을 쓸 수 있기 때문입니다. 먼저 중요한 파일을 빼낸 다음, 그 후에 드라이브 수리를 걱정하세요.

이게 단순한 실수로 인한 삭제나 APFS 손상이라면, 드라이브가 물리적으로 고장 나는 경우보다 훨씬 가능성이 높습니다.

Disk Utility에서 보인다고 해서 그 드라이브가 정상적이거나 안전하게 수리할 수 있다는 뜻은 아닙니다. 데이터가 중요하다면 먼저 드라이브를 복제하거나 이미징한 뒤 그 복제본을 스캔하세요. Disk Drill을 쓰든 다른 도구를 쓰든 마찬가지입니다. 고장 난 APFS 디스크에서 직접 작업하는 것은 복구 가능한 사례를 엉망으로 만들 수 있는 지름길입니다.

“지우기”, “초기화” 또는 디스크를 다시 사용할 수 있게 만든다고 제안하는 어떤 것도 클릭하지 마세요. macOS는 볼 수는 있지만 이해할 수는 없는 드라이브를 다시 포맷하라고 성가실 정도로 아무렇지 않게 제안할 수 있는데, 내용물이 중요하다면 그건 정확히 잘못된 방향입니다.

위 댓글들에서 먼저 복제하라는 말은 맞지만, 자주 놓치는 작은 차이가 있습니다. 디스크 유틸리티가 물리적 드라이브를 본다는 것과 macOS가 APFS 컨테이너와 그 안의 볼륨을 올바르게 본다는 것은 같은 뜻이 아닙니다. APFS는 물리 디스크가 있고, 그다음 컨테이너가 있고, 그 안에 볼륨이 있습니다. 때로는 드라이브가 식별될 만큼은 멀쩡하지만 APFS 컨테이너 메타데이터가 손상되었거나 볼륨이 잠금 해제되거나 마운트되지 않을 수 있습니다. 그런 경우 “디스크 복구”는 복구 소프트웨어가 읽어야 하는 바로 그 메타데이터에 변경 사항을 쓰는 것을 의미할 수 있습니다.

이것이 외장 드라이브라면, 저는 먼저 파괴적인 작업 없이 뻔한 변수부터 제거하겠습니다. 다른 케이블, 다른 USB 포트를 사용해 보고, 저렴한 외장 케이스에 들어 있는 벌거벗은 드라이브라면 다른 케이스나 도크도 시도해 보세요. 불량 USB 브리지는 APFS 볼륨을 실제보다 훨씬 더 나빠 보이게 만들 수 있습니다. 다만 한 시간 동안 계속 꽂았다 뺐다 하지는 마세요. 통제된 몇 번의 시도로 충분합니다. 계속 연결이 끊긴다면 드라이브가 불안정하다고 보고 멈추세요.

스캔 전에 분명히 알고 싶은 세부 사항 하나는 FileVault나 APFS 암호화가 관련되어 있는지입니다. 암호화되어 있다면 복구 도구에 비밀번호나 복구 키가 필요하고, 그것 없이 나오는 결과는 대개 그냥 잡음뿐입니다. APFS 스냅샷이 있는 Time Machine 디스크로 사용된 경우도 비슷합니다. 여러 볼륨이나 스냅샷이 보일 수 있고, “사라진 파일”은 심층 원시 복구가 필요한 것이 아니라 스냅샷 안에 있을 수도 있습니다.

딸깍거리는 소리도 없고 연결이 끊기지도 않는 외장 HDD라면, 제 순서는 이렇습니다:

  1. 문제 있는 드라이브와 같거나 더 큰 다른 빈 드라이브를 준비합니다.
  2. 사용하는 소프트웨어가 허용한다면 불량 드라이브의 바이트 단위 이미지나 복제를 만듭니다.
  3. 원본 드라이브는 치워 둡니다.
  4. 복제본/이미지를 스캔합니다.
  5. 복구는 세 번째 위치로 하세요. 복제본도 원본도 아닙니다.

스캔에 10시간이 걸리고 원본 드라이브 상태가 중간에 더 나빠질 때까지는 과한 것처럼 들릴 수 있습니다. 하지만 그때는 복제본이 “다시 시도”와 “음, 그게 마지막 읽기였네”의 차이를 만듭니다.

Disk Drill은 APFS에 시도해 보기 괜찮습니다. 특히 이름과 폴더 구조가 그대로인 실제 파일을 미리 볼 수 있다면 더 그렇습니다. 다만 미리보기가 제대로 열리기 전까지는 어떤 복구 앱의 파일 목록도 증거로 여기지 않겠습니다. 많은 도구가 실제로는 0바이트이거나, 일부가 덮어쓰였거나, 깨진 파일들로 가득한 그럴듯한 트리를 보여줄 수 있습니다. “재구성된 파일”에 일반적인 이름만 보인다면, 보통은 APFS 구조를 읽을 수 없어서 도구가 파일 시그니처로 카빙하고 있다는 뜻입니다. 그래도 사진, PDF, 동영상 등은 살릴 수 있지만, 그렇게 깔끔하지는 않을 것입니다.

중요한 것들이 다른 곳에 복사된 뒤까지는 First Aid 사용을 피하겠습니다. First Aid는 복구 도구가 아니라 수리 도구입니다. 가끔은 작동합니다. 가끔은 파일시스템을 마운트는 되지만 복구하고 싶었던 손상된 참조는 이미 버린 상태로 “고쳐” 버리기도 합니다.

드라이브에서 딸깍거리는 소리가 나거나, 스캔 중 사라지거나, 읽기 오류가 엄청나게 많거나, 기본 정보만 나열하는 데도 한없이 오래 걸린다면 소프트웨어 복구는 첫 번째 선택이 아닙니다. 그럴 때는 비용이 아프더라도 전문 복구 업체가 말이 되기 시작합니다. 데이터가 대체 가능하다면 복제본을 스캔해서 무엇이 나오는지 보세요. 데이터가 대체 불가능하다면, 모든 DIY 시도에는 대가가 따릅니다.

안전하게 진행한다면 이 과정은 지루하고 느릴 것이라고 예상하세요. APFS 복구는 보통 클릭 한 번으로 복구되고 모든 것이 돌아오는 상황이 아닙니다. 가장 좋은 경우에는 디렉터리 구조를 읽을 수 있어서 폴더와 파일 이름을 되찾을 수 있습니다. 더 나쁜 경우에는 이름이 없는 조각 복구 파일 더미만 얻게 됩니다. 둘 다 성공적일 수는 있지만, 결과는 매우 다릅니다.

여기서 사람들이 자주 실수하는 작은 부분은 잘못된 계층을 이미지화하는 것입니다. APFS에서는 도구가 선택지를 제공하더라도 예전에 마운트되던 볼륨만 이미지화하지 마세요. 가능하면 전체 물리 장치를 이미지화하세요. APFS 컨테이너와 볼륨 메타데이터가 중요하기 때문입니다. 눈에 보이는 볼륨 하나만 캡처하면 복구 프로그램이 파일 트리를 재구성하는 데 필요한 바로 그 구조를 남겨두게 될 수 있습니다. Disk Utility 기준으로 말하면 최상위 장치, 컨테이너, 볼륨을 각각 따로 볼 수 있도록 Show All Devices가 활성화되어 있는지 확인하세요.

무작위 가이드에 나온 Terminal 수정도 주의하는 것이 좋습니다. fsck_apfs, diskutil repairVolume 같은 명령이나 강제 마운트 시도는 폐기해도 되는 디스크를 고칠 때는 괜찮을 수 있지만, 복구를 위한 첫 단계로 시작할 일은 아닙니다. 무엇이든 convert, rebuild, bless 하려는 시도도 마찬가지입니다. 목표가 우선 데이터라면 드라이브를 증거물처럼 다루세요. 읽고, 복사하고, 개선하려 들지 마세요.

GUI 방식으로 가고 싶다면 Disk Drill은 무난한 선택이지만, 보기 좋은 스캔 결과만 보고 비용을 지불하지는 않겠습니다. 실제로 중요한 파일 몇 개를 미리 보기 해보세요. 큰 동영상, 문서, 사진처럼 가장 중요한 것들이면 됩니다. 미리 보기가 잘 되고 파일 이름과 폴더가 정상적으로 보인다면, 엄청난 수의 복구 가능 파일이 보이는 것보다 훨씬 더 좋은 신호입니다. generic JPEG0001 같은 결과만 찾는다면 그것도 여전히 유용할 수는 있지만, 기대치는 낮추세요.

그리고 지루하지만 중요한 대상 저장소 문제도 잊지 마세요. 이미지용 공간에 더해 복구된 파일을 위한 공간도 필요합니다. 고장 난 2TB 드라이브는 2TB 복제 대상과 복구 데이터를 위한 또 다른 드라이브가 쉽게 필요할 수 있습니다. 사람들은 스캔을 시작하고 파일을 찾은 뒤에야 그것들을 안전하게 저장할 곳이 없다는 사실을 깨닫습니다. 불량 디스크를 건드리기 전에 이 문제를 정리해 두면 불필요한 추가 읽기를 많이 줄일 수 있습니다.