Netatalk 이용하여 Mac 데이터를 백업시킬 때 리소스 포크가 말썽일 경우

클래식 맥(OS 9.2.1)의 데이터가 1차 백업까진 무사히 완료되었고 원하는 파일의 실행이 원만히 된다고 가정했을 때, 이 파일을 다시 2차 백업(물리적 다른 기기-PC/HDD 등)했을 경우 맥에서 리소스를 찾지 못하고 ‘알 수 없는 형식’과 같은 오류를 뱉고 파일 실행을 중지한다.

도대체 원인이 뭔지 알 수 없었다. Berkeley DB 또는 DB4 패키지도 설치된 상태고 1차 백업 파일은 잘 열리는데 대체 왜 2차 백업 파일은 1차에서 그대로 카피해서 가져오는데도 불구하고(심지어 Byte 단위까지 일치) 맥에서 실행할 수 없는걸까?

이 문제 때문에 약 3시간동안 헤맸다. 그러던 중 문득 스쳐가는 생각으로 백업 관련 스크립트를 다시 확인해보니 .AppleDouble 이름의 폴더는 제외하라는 옵션이 보였다. 리눅스와 맥을 함께 공유시킬 때 맥이 리눅스 공유 폴더에 들어와 무슨 짓을 하던 특정한 이름의 폴더들(.AppleDouble 등)이 생성된다.

혹시나 하는 마음에 해당 옵션을 지우고 다시 2차 백업을 실행해봤다.

된다.

심지어 맥으로 1차 백업에서 열었던 디렉토리들의 위치까지 그대로 유지됐다. .AppleDouble 이 숨겨진 디렉토리까지 같이 복사하면서 드디어 모든 환경이 그대로 2차 백업까지 연결됐다.

솔직히 .AppleDouble 디렉토리가 무슨 역활을 하는지는 자세히 모르겠지만 얼추 감이 잡히긴 한다. 윈도우 창의 위치 / 크기 / 파일들의 리소스 포크 등.. 앞으로 맥 데이터 백업할 땐 관련된 숨겨진 디렉토리들까지 모두 함께 해야겠다.

 

  • OS X 때부터 점차 확장자 기준으로 파일들이 프로그램에 연결되어 가고 있지만 클래식 맥(? ~ OS 9.2.x)까지는 확장자라는 개념이 없다. 파일 헤더 부분에 연결되는 프로그램이 등록되고 아무리 확장자(.hwp / .doc / .xls)를 붙여봐도 파일 실행시 헤더를 읽고 맞는 프로그램으로 로딩된다. 이게 괜찮은 점도 있지만 오늘 같은 경우엔 정말 맥 집어던지게 만드는 기능인 듯.. 왜 OS X 부터 없어졌는지 뼈저리게 느꼈다.
  • resedit (흔히 레지에딧) 이란 클래식 맥 유틸리티를 사용하며 파일 헤더를 수정/복구하여 연결 프로그램을 바꿀 수 있다. 깨진 파일을 레지에딧 위에 올려놓으면 자동으로 복구되어 바로 실행할 수 있다.