Computer >> 컴퓨터 >  >> 시스템 >> Windows

PC 파일 복구의 원리: 삭제된 파일과 손상된 데이터를 되살리는 방법

누구나 한 번쯤 겪어본 경험이 있을 것입니다. 실수로 파일이나 폴더를 삭제한 뒤 휴지통까지 비워버렸거나, Windows가 부팅되지 않아 하드 드라이브를 다른 PC에 연결했는데도 데이터를 읽을 수 없었던 상황 말입니다. 과연 데이터를 다시 되찾을 수 있을까요? 이 글에서는 PC에서 파일 복구가 어떻게 이루어지는지 그 원리를 자세히 살펴보겠습니다.

하드 드라이브의 구조

먼저 하드 드라이브의 논리적 구조부터 알아보겠습니다. 일반적으로 하드 드라이브는 부트 섹터(Boot Sector), 인덱스(Index), 데이터(Data) 영역으로 구성됩니다. 부트 섹터는 드라이브의 맨 앞부분에 위치하며, 운영체제를 시작하는 역할을 하고 드라이브의 파티션 정보도 담고 있습니다. 인덱스에는 드라이브에 존재하는 파일과 폴더에 대한 정보가 들어 있는데, Windows 기반 시스템의 경우 이것이 바로 MFT(Master File Table, 마스터 파일 테이블)입니다. 데이터 영역에는 실제 파일과 그 내용이 저장됩니다.

삭제된 파일은 어디로 가는가

파일을 삭제하고 휴지통을 비우면 어떤 일이 일어날까요? 파일은 영원히 사라진 걸까요? 사실 파일 내용이 물리적으로 완전히 제거되는 것은 아닙니다. 파일을 가리키던 인덱스 항목이 '삭제됨'으로 표시되고, 해당 파일이 차지하던 데이터 영역은 '덮어쓰기 가능' 상태로 표시될 뿐입니다. 즉, 다른 파일이 그 공간을 덮어쓰기 전까지는 물리적인 데이터가 그대로 남아 있는 것입니다.

따라서 파일을 복구하고 싶다면 컴퓨터를 끄고 하드 드라이브를 다른 컴퓨터에 연결한 상태에서 복구를 시도해야 합니다. 그렇지 않으면 드라이브에서 수행하는 모든 작업이 삭제된 파일의 데이터를 덮어써버릴 수 있습니다.

데이터 손상의 원인

데이터 손상은 다양한 원인으로 발생할 수 있습니다. 중요한 순간의 정전이나 갑작스러운 컴퓨터 충돌 및 재부팅은 파일의 일부, 파일 시스템 전체, 심지어 MFT 자체까지 손상시킬 수 있습니다. 삭제된 파일의 경우와 마찬가지로, 시스템을 끄고 별도의 컴퓨터에서 복구를 시도하는 것이 안전합니다.

파일 복구의 과정

삭제된 파일이든 데이터 손상이든, 두 시나리오 모두 데이터를 복구할 가능성은 상당히 높습니다. 다만 복구 성공률은 파일이 삭제되거나 손상된 지 얼마나 지났는지, 그 이후 컴퓨터를 얼마나 사용했는지에 따라 달라집니다.

데이터 복구를 도와주는 프로그램은 매우 다양합니다. 필자의 경험상 TestDisk가 특히 뛰어난 성능을 보여주었습니다.

삭제된 파일 복구하기

대부분의 데이터 복구 프로그램에는 일종의 빠른 검색(Quick Scan) 기능이 있습니다. 이 기능은 주로 삭제된 파일 복구에만 사용되며, 운영체제가 논리 드라이브를 인식할 수 있어야 합니다. 즉, 파티션이 손상되지 않고 정상적으로 마운트되어 있으며, 파일 탐색기에서 드라이브를 실제로 탐색할 수 있어야 합니다. 빠른 검색은 파일 테이블(앞서 설명한 MFT)을 스캔하여 삭제 표시된 파일을 찾아냅니다.

파일 테이블은 드라이브상에서 파일의 위치를 알려주므로 복구가 가능합니다. 하지만 파일이 있던 공간이 이미 덮어써졌다면 복구가 제대로 이루어지지 않고, 쓰레기 값으로 가득한 파일을 얻게 될 수 있습니다. 대부분의 데이터 복구 프로그램에는 파일 내용을 미리 확인할 수 있는 미리보기 기능이 내장되어 있습니다. 다만 무엇을 찾아야 할지 모르는 경우에는 크게 유용하지 않을 수 있습니다. 일반 텍스트 파일은 이해하기 쉽고, Word 문서도 대체로 16진수 코드가 뒤섞인 사이에 본문 내용이 평문으로 들어 있지만, 다른 미디어 파일은 판별하기가 더 어렵습니다. 아래 이미지의 배치 파일은 상태가 양호하다는 것을 쉽게 알 수 있습니다.

삭제된 파일 복구의 또 다른 어려움은 파일의 원래 위치를 알 수 없는 경우가 많다는 점입니다. 복구하려는 파일을 찾으려면 무작위 이름의 디렉터리 목록을 일일이 뒤져야 할 수도 있습니다. 파일 테이블이 더 이상 파일의 디렉터리 위치 정보와 연결되어 있지 않기 때문입니다. 아래 이미지에서 볼 수 있듯이 왼쪽의 디렉터리 목록은 무작위 문자로 이루어져 있습니다. 그래도 파일명 자체는 대체로 그대로 남아 있으며, 데이터 복구 프로그램의 검색 기능을 활용하면 파일을 찾는 작업이 한결 수월해집니다.

복구할 파일을 확인했다면, 데이터 복구 프로그램으로 마지막 단계를 진행하면 됩니다. 이때 반드시 복구 대상 드라이브와 다른 드라이브를 저장 위치로 지정해야 합니다. 그렇지 않으면 복구 과정에서 되살리려는 파일들을 덮어써버리는 최악의 상황이 발생할 수 있습니다!

손상된 데이터 복구하기

이 시나리오는 조금 더 복잡합니다. 파일 시스템의 다양한 부분이 손상될 수 있는데, 파일 테이블, 데이터의 일부, 그 외 여러 조합이 해당되며, 포맷된 드라이브 복구의 경우도 여기에 포함됩니다. 어떤 상황에서는 데이터 복구 프로그램이 MFT의 일부를 읽어 상당 부분의 파일을 찾아낼 수 있습니다. MFT의 미러 사본이 존재하는 경우도 있어, 복구 프로그램이 미러와 원본을 조합하여 모든 데이터를 찾아낼 수도 있습니다.

'빠른' 손상 데이터 복구 방식이 실패하면, 차선책으로 원시(raw) 드라이브 데이터를 스캔하여 복구하려는 파일 유형의 시그니처를 찾는 방법을 사용합니다. JPEG, MS Word 문서, Excel 파일 같은 파일들은 특정 '시그니처'를 가지고 있습니다. 즉, 파일의 시작과 끝에 해당 파일 유형을 정의하는 고유한 패턴이 존재합니다. 데이터 복구 프로그램은 드라이브에서 이러한 문자열을 스캔하여 잃어버린 파일을 찾아냅니다.

하지만 이 과정은 결코 완벽하지 않습니다. 가장 큰 문제는 특정 파일이 어디서 끝나는지 파악하기 어려워, 여러 파일이 하나로 묶이는 경우가 발생할 수 있다는 점입니다. 소프트웨어는 제한된 정보만으로 판단할 수밖에 없어 어느 정도의 추측에 의존합니다. 이 방법의 또 다른 한계는 연속된 공간에 저장되지 않은 파일(단편화된 파일)은 제대로 복구되지 않는다는 것입니다. 파일 테이블이 없으면 복구 소프트웨어는 파일 조각의 위치를 알 수 없기 때문입니다. 마지막 문제는, 아래 이미지에서 볼 수 있듯이 이 과정이 매우 오래 걸릴 수 있다는 점입니다. (아래 복구 작업은 실제로 물리적으로 손상된 드라이브에서 진행된 것으로, 일반적인 원시 스캔은 3주가 아닌 몇 시간 정도 걸립니다!)

결론

파일 복구 가능 여부는 하드 드라이브에서 파일이 삭제되거나 포맷된 지 얼마나 지났는지에 따라 크게 달라진다는 점을 기억해야 합니다. 예를 들어 파일을 1시간 전에 삭제했다면 아직 상대적으로 온전하게 남아 있어 시스템에 의해 덮어쓰이지 않았을 가능성이 높습니다. 반면 몇 주, 몇 달 전에 삭제된 파일이라면 복구 가능성이 크게 줄어들 수 있습니다. 복구 성공률을 높이려면 새 파일 저장을 비롯한 모든 작업을 즉시 중단하고, 필요한 파일 복구를 바로 시작하는 것이 좋습니다.

이미지 출처: BigStockPhoto의 Broken Hdd Data Loss