[디버깅] 외장하드 오류코드-36 해결법 (Fix Drive Error Code-36 in Mac)

[디버깅] 외장하드 오류코드-36 해결법 (Fix Drive Error Code-36 in Mac)


💡 tl;dr


[❓ Problem ❓]

  • 맥북과 윈도우를 오가며 공용으로 사용하던 NTFS 포맷의 외장하드에서 오류 발생 (mac)
  • 파일 이동이 불가능한 현상 (Error Code - 36)


[❕ Solution ❕]

  • dot_clean 명령어 사용했으나 실패, 이후 설정 폴더들 사라지는 추가 문제 발생
  • ❌ 파일 복구 시스템(disk drill, easyUS, etc .. ) 사용 -> 온전히 복구 실패
  • windows OS cmd 에서 chkdsk로 해결


error code-36


문제 발생


MacWindows 를 동시에 사용하는 나는, 두 데스크탑에서 데이터를 공유하기 위해 USB 허브에 외장 드라이브를 물려 사용해왔다. 처음에 맥에서 외장하드를 연결했을때, 윈도우에서 사용하던 드라이브의 사용이 불가능 했다. 그 이유는 드라이브의 파일 시스템 때문이었다. 기존 사용하던 FAT32 파일 시스템이 맥에서는 사용이 안됐기 때문에, 어쩔 수 없이 NTFS로 포멧하여 사용해야 했다.




❗️ Error Code 36


The Finder can’t complete the operation because some data in “FileName” can’t be read or written. (Error code -36)


그런데 어느 날 Mac에서 작성한 작업 파일이 드라이브에 복사가 되지 않았다.
문제는 error code 36이었다.

오류 코드 36은 맥 OS에서 자주 발생하는 나름 악명높은(?) 오류였다.

간단히 설명하면 NTFS 파일 시스템의 드라이브를 맥에서 이용할 때, 드라이브가 꼬이는 문제였다.
백업 전용 드라이브라 파일을 반드시 저장해야 하는데, 파일이 이동되지 않으니 참으로 난감한 상황이었다.

이때 그냥 윈도우로 옮겨 저장했어야 했는데… 🤔

당시엔 단순히 가벼운 오류라 생각해서 맥에서 이를 해결해보려 했다.



시행착오


처음 구글링을 통해 시행한 방법은 dot_clean 이었다.
특정 macOS 파일을 HFS+/APFS 형식이 지정되지 않은 디스크(예: 파일 공유)에 복사하면 메타데이터가 파일에서 추출되어 dot(‘._’)로 시작하는 보이지 않는 파일에 넣는다고 한다.

이런 숨겨진 시스템 파일을 전송하려는 시도에서 Error Code-36이 자주 발생한다고 한다.
이 dot 파일들을 쉽게 정리하는 명령어가 바로 dot_clean 이다.
이는 단순 파일 삭제가 아니라 원본과 병합하는 과정을 거치기 때문에 안전(?)하다고 한다.

사용 방법은 간단하다.

1
dot_clean /Volumes/MY_VOLUME_PATH

파일 이동이 안되는 드라이브의 경로를 입력해주면 된다.
그런데 나는 이때 딱히 변화를 감지하지 못했다.

그래서 볼륨의 루트 경로 한 번, 문제되는 폴더 경로 한 번.
총 2번의 dot_clean을 시행했다.
사실 각각 시행해도 달라지는건 없었다.

문제는 연결을 잠시 해제(안전하게)하고 난 뒤였다.

폴더 내부 파일의 절반이 날아가버린 것이다.



이어지는 뻘짓


처음엔 너무 당황스러웠다. 마치 약을 먹었는데 그게 더 독이 되어버린 경우였다.

충분히 의심되는 여러 증상들(새 폴더를 생성하면 순식간에 Finder에서 사라지는 등)이 있었지만, 내 머릿속에는 따로 백업도 안된 채 날아간 중요 파일들에대한 걱정 뿐이였다.

나는 결국 데이터 복구 프로그램을 찾기 시작했다.

일단 시중의 Mac용 Drive 복구 프로그램중 제일 유명해보이는 Disk drill과 easyUS, 기타 이름모를 복구 프로그램들을 닥치는대로 받아가며 복구가 가능한지 시도해봤다.

그 중 가장 유의미하게 복구가 가능한 것으로 보여지는 것은 Disk drill이었다.
그러나 그 마저도 잃어버린 50% 파일 중 20%정도 남짓에 불과했다.
그 20% 안에는 중요 계약 서류들이 있어서 이것을 돈주고 복구해야 하는지 내적고민을 엄청나게 했다.

약 10만원 가량의 비용이었기 때문에 정말 앉아서 돈을 잃는 경우라고 생각했고, 조금은 이성을 되찾기로 했다.

이어지는 고민과 명상 도중 드는 생각은 Mac은 왜이렇게 불안정할까 였다.
윈도우에선 이런일이 없었는디… 라는 생각이 들었고,
이 흐름은 마침내 Windows의 chkdsk 기능으로 도달했다.

🔥아 맞다 그런게 있었지!!!!! 🔥


해결


Windows의 CHKDSK 기능은 정말 막강하다.

CHKDSK는 다양한 메모리 관련 문제를 예방하고 해결하기 위한 윈도우의 자체적인 기능이다.
드라이브 포멧을 하던 중 이상이 생겼을 때도, 이 CHKDSK 기능을 활용하여 고쳤던 기억이 났다.

사용법 또한 간단하다. CMD 창을 켠 후

1
2
chkdsk DRIVE_PATH /f /r
# DRIVE_PATH 는 자신의 볼륨 주소 (D:, F: 등)

를 입력하면 된다.

/f는 디스크에 있는 파일 시스템 오류를 자동으로 수정한다. (빠르다)

/r은 불량 섹터를 검사하고 발견되면 복구를 시도한다.
작업시간이 매우 느리므로 주의 ❗ ️(수 시간 소요, 도중 취소 불가)




이 작업을 하자 거짓말처럼 드라이브가 깨끗히 복구되었고,
심지어 맥에서 생성한 빈 폴더마저 나타났다.

이 문제 때문에 몇 시간을 골머리 썩히며 고생했지만,
정말 다행인 점은 복구 프로그램을 결제하지 않았다는 사실이다.

요즘 맥을 메인으로 사용하다보니 이러한 메모리 관련 문제가 자주 발생하는데,
그때 마다 정말 윈도우가 선녀였다는 생각이 들곤 한다.



[디버깅] 외장하드 오류코드-36 해결법 (Fix Drive Error Code-36 in Mac)

https://sklubmk.github.io/2021/06/30/64057afee960/

Author

Jinki Kim

Posted on

2021-06-30

Updated on

2021-08-02

Licensed under

댓글