으악 ! 촬영한 CFe 메모리 인식이 안된다구요 ?

이 글은 CFTek 카페에 쓴 글이나 중요한 내용이라 판단되어 클럽에 공유합니다.

제목 그대로 드물게 카페 회원분들이 촬영한 데이터가 들어있는 메모리가 갑자기 인식이 안되서 큰일이라며 데이터를 복구할 수 없냐고 문의해 오는 분들이 있습니다.

그래서 어떻게 그 문제가 발생했는지 자세히 물어보면 평상시 같이 촬영하고 돌아와서 리더기에 꽂았는데 인식이 안된다는 겁니다.

그리고 SLR을 비롯해 커뮤니티의 게시글을 읽어보면 가끔 비슷한 문제를 겪는 분을 보았고 그 경우 대부분 리더기 또는 메모리를 의심하고 고가의 메모리를 보조용으로 쓰거나 교환을 받으려 고생하는 글도 보았습니다.

이 문제는 메모리 업체를 구분하지 않고 발생하기 때문에 저는 메모리 문제로 판단하지 않고 있었습니다.

그렇게 인식이 안되는 메모리를 들여다 보면 거의 99% 이상 MBR(Master Boot Record) 부트섹터가 손상 받아서 파일을 관리하는 FAT(File allocation table)와 연결이 끊어져서 발생하는 문제였고 이 문제는 아주 복구가 쉬운 사고에 해당됩니다.

그럼 도대체 왜 이런 문제가 발생할까요 ?

오랫동안 저장장치 개발 분야에서 일했던 저도 쉽게 이유가 떠오르지 않았습니다.

이게 과연 어떤 전기적인 충격 때문에 벌어진걸까 ? 아니면 고속으로 통신하는 메모리와 리더기의 접촉 불량 때문일까 ?

윈도우즈가 하는 일이라곤 리더기에 메모리가 꽂히면 메모리의 MBR을 읽고 연결된 FAT를 읽어서 탐색기에 표시해 주는게 전부기 때문에 전기적인 충격이든 접촉불량이든 읽기만 발생하는데 MBR이 손상될 이유가 없기 때문입니다.

그래서 쉽게 원인을 찾기 어려웠습니다.

그런데 카페 회원분 중 한 분이 메모리를 안가리고 이런 문제가 자주 발생한다 해서 직접 방문해서 원인이 될만한게 없는지 살펴 보았습니다. 회원분은 영상쪽 일을 하셔서 정말 어마어마한 시스템을 사용하고 계셨습니다.

AMD CPU에 고가의 Nvidia 그래픽 카드가 2개나 장착되어 있고 내장 하드를 제외하고도 DAS로 하드디스크가 10개 이상 달린 시스템이라 윈도우즈의 드라이브 명이 (C, D, E...Z) 거의 꽉 차 있었습니다.

일단 AMD 메인보드의 오래된 BIOS부터 업데이트 해드리고 제가아는 기술적 상식을 토대로 전체 장비를 연결 속도에 따라 다시 연결해 드리고 문제의 원인을 알 수 없으므로 윈인이 될만한 무엇이라도 막아봐야 했습니다.

그래서 CFTek Trimmer 리더기가 쓰기방지(Write Protect) 기능을 기본으로 동작하게 펌웨어를 수정해서 제공해 드렸습니다. 그러면 리더기 부터 메모리까지 기본적으로 읽기 전용 모드로 동작하므로 어떤 데이터 쓰기도 방지하는 효과가 있을것으로 판단했습니다.

그리고 몇 일이 지난 후 제가 제품 촬영을 할 필요가 있어서 메모리를 카메라에서 포맷하고 촬영을 마친 후 테스트 중인 쓰기 방지 기능이 들어있는 리더기에 메모리를 꽂았더니 인식이 안되는 겁니다.

저 한테 이런일이 발생하니 원인을 찾기 좋은 환경은 만들어진 겁니다.

그래서 왜 인식이 안되지 ? 하고 쓰기 방지 기능이 없는 리더기에 연결하니 바로 인식되서 읽을 수 있었습니다.

확실하게 원인을 찾아 몇 번 더 시행착오를 겪고 이유를 찾았습니다.

먼저 아래 왼쪽 그림은 카메라에서 메모리를 포맷했을 때 MBR 내용이고 오른쪽은 윈도우에서 디스크를 초기화(온라인) 했을 때 MBR 상태입니다.

윈도우는 자신이 포맷하지 않은 어떤 디스크를 발견하면 사용자 모르게 디스크의 MBR에 특정 코드를 기록하는 겁니다.

그래서 도대체 무슨 코드를 기록한거지 ? 하고 찾아보니 아래와 같이 윈도우즈의 레지스트리에도 발견한 디스크와 코드를 기록해 둡니다.

네. 윈도우즈는 자신이 발견한 디스크에 GUID 란 코드를 기록하고 그 상태를 레지스트레에 등록해 두는 겁니다.

이 GUID를 가지고 윈도우즈의 디스크관리에 들어갔을 때 아래와 같이 '초기화 안됨'과 '온라인'으로 구분해서 사용하고 있습니다.

결국 카메라에서 포맷한 메모리를 리더기에 연결했을 때 윈도우즈는 바로 MBR을 읽고 자신이 기록한 GUID 코드가 없을 경우 강제로 GUID 코드를 기록하는 겁니다. 그런데 쓰기방지 기능이 있는 리더기에 메모리를 연결하니 GUID 코드를 기록할 수 없었고 초기화 안된 디스크라고 똭 ! 표시해 버리는 몰상식한 짓을 한겁니다. 이때 MBR과 파티션은 정상이지만 자신이 기록해 놓은 코드가 없다고 인식불가 메모리로 표시한 것이지요.

자 이제 원인을 찾았습니다.

즉, 카메라에서 포맷한 메모리를 리더기에 연결하면 윈도우즈는 메모리를 발견하자 마자 중요한 MBR에 GUID 인식 코드를 기록하는 겁니다. 그런데 이 때 데이터 쓰기에 문제가 생길만한 전기적인 환경이 만들어지면 MBR이 깨지고 메모리가 다른 제품에서도 인식할 수 없는 상태로 바뀌는 겁니다.

사용자는 단순히 리더기를 통해 데이터를 읽기만 하려 했던건데 메모리가 깨지는 원인이 될만한 부분이 있던것이지요.

물론 전기적인 문제가 없다면 당연히 윈도우즈가 MBR에 코드를 기록하고 잘 동작합니다.

그럼 어떤게 가장 큰 문제가 될 소지가 있는가 ?

저의 경험상 가장 큰 문제는 아래 3가지 입니다.

1. CFexpress 메모리 리더기나 외장하드류는 반드시 데스크톱 컴퓨터의 후면 USB 포트에 직접 연결해야 합니다.

이게 가장 많은 문제의 원인입니다.

사용 편의를 위해 만들어진 데스크톱 PC의 전면부 USB 포트는 PC 케이스 업체가 제공하는 케이블과 소켓을 통해 메인보드에서 전면 USB 포트로 길이 연장을 한겁니다. 실제로 측정해 보면 USB 전원의 전압도 떨어지고 고속 데이터 전송 라인은 엉망으로 에러 발생이 심하게 발생합니다. 그러므로 데스크톱 PC의 전면부 USB 포트엔 USB 메모리 스틱, 마우스, 키보드 같이 속도가 느리고 전력도 많이 사용하지 않는 장치만 연결하는게 좋습니다.

2. USB 케이블을 교체해 보세요.

최근에 나오는 USB 포트는 10Gbps, 20Gbps로 정말 초고속 데이터 전송을 합니다. 그런데 USB 케이블 광고하는걸 보면 온통 USB PD 충전만 강조하지 제대로 안정되게 고속 데이터 전송이 보장되는 케이블이 10%도 안됩니다.

실제로 국내와 알리등에서 인기리에 판매되는 20Gbps 케이블 30여개를 구입해서 테스트 해 본결과 2개만 정상적인 데이터 전송이 가능했습니다.

3. CFexpress 메모리는 컴퓨터 내장 디스크와 같이 PCIe Gen3 이상으로 동작하는 초고속 메모리 입니다. 그래서 접촉부 단자에 작은 이물질이나 기름때가 있으면 접촉 불량으로 심각한 문제를 일으킬 수 있습니다.

메모리를 자주 꽂았다 뺃다하면 어쩔 수 없이 메모리의 접촉부에 아래와 같이 온갖 이물질이 낄 수 밖에 없습니다.

이것은 습하고 더운 날 먼지와 결합해서 심각한 상태가 진행됩니다. 가끔씩 전용 클리너로 세척하며 사용하는게 사고 방지에 도움이 됩니다.

예상했지만 위 증상은 쓰기 방지 기능이 있는 타사의 리더기도 마찬가지 결과 였습니다.

결국 CFe 리더기의 쓰기방지 기능은 쓸모가 없지않나 싶습니다.

위와같은 원인 제거가 우선이지 고가의 CFe 메모리를 불량으로 의심해서 보조용으로 사용하는 일은 없기 바랍니다.

*** 윈도우즈는 사용자에게 경고도 않하고 바로 MBR 같이 중요한 섹터를 업데이트 하는데 맥에서는 어떻게 처리하는지 확인해 보지 못 했습니다.