본문 바로가기

디스크와 파티션

[디스크 정보] 파일 시스템과 포맷 2 장 - 일반 포맷과 빠른 포맷

※ 일반 포맷의 [오류 검사 vs 제로필] 문제에 대해

현재 글에서는 윈도우의 일반 포맷이 제로필 작업(0 으로 가득채워 기존의 데이터를 지우는 작업)을 진행한다고 설명하고 있습니다. 하지만 일반 포맷은 제로필 작업을 진행하지 않고 단순히 오류 검사만을 진행한다는 내용의 반론이 제기되었습니다. 그에 따라 재차 확인 과정을 거쳐 새롭게 내리게 된 일반 포맷에 대한 결론은 아래와 같습니다.

*. 윈도우 5.x 버전대 및 그 이하의 윈도우들은 제로필 없이 오류 검사만을 진행한다. (윈도우 XP 및 그 이전 윈도우들)
*. 윈도우 6.x 버전대의 윈도우들은 제로필 작업을 진행하여 데이터를 삭제한다. (윈도우 비스타, 7, 8)

이에 대한 좀 더 자세한 테스트 과정과 필요한 설명은 아래의 글에서 확인하실 수 있습니다.


그리하여 현재 글에서 설명하는 일반 포맷에 대한 내용은 윈도우 비스타 이후 윈도우에서 적용되는 내용임을 알려드리며, 우선은 글의 내용을 작성했던 당시 그대로 수정하지 않았음을 알려드립니다.




Ⅰ. 파일 시스템과 포맷

1. 포맷 - 파일 시스템

지난 글에서 포맷이란 무엇이라고 했죠? 저장 장치에 데이터를 기록하기 위한 초석인 파일 시스템을 구축하는 작업이라고 말씀을 드렸습니다. 파일 시스템은 저장 장치에 데이터 즉, 파일의 이름을 지정하고, 저장하고, 읽고, 검색하는 등의 파일을 기록하고 사용하기 위한 조직적인 관리 체제입니다.

저장소에서 파일이 실질적인 데이터라면 파일 시스템은 이를 체계적으로 관리하는 데이터베이스입니다. 이 구조를 아주 간단하게 나타내면 아래와 같습니다.[사실 아래와 같이 단순화시키기엔 좀 무리가 있지만 큰 개념만 보도록 하겠습니다.]


저장소에 저장되는 파일 및 폴더에 대한 모든 정보는 파일 시스템에 기록되고 관리됩니다. 실제로 파일이 디스크의 어느 위치에 저장되어 있는지 등 모든 정보를 총괄한다고 볼 수 있죠. 운영체제인 윈도우는 이러한 파일 시스템을 통해 파일에 대한 정보를 얻고 활용합니다. 즉, 파일 시스템을 통해 구축된 데이터베이스를 참고로 하여 파일을 찾아 읽고 쓰는 것이죠.

또 다시 도서관을 예로 하죠. 도서관에 책들이 얼마나 보관되어 있고 어느 서고의 어느 위치에 저장되어 있는지 해당 책을 읽을 수 있는 권한이 있는 사람은 누구인지를 모두 정리한 일종의 데이터베이스인 보관 기록지가 있습니다. 방문자(사용자)가 사서(운영체제)에게 책(파일)을 요구(읽기, 검색)하면 사서는 직접 도서관의 모든 공간을 돌며 책을 찾는 게 아니라 보관 기록지(파일 시스템)를 보고 책이 도서관의 정확히 어느 위치에 있는지 파악하여 이를 찾아서 방문자에게 책을 전달하는 겁니다. 또한 새로운 책(파일 쓰기)이 들어오면 도서관의 도서 보관 기준(파일 시스템)에 따라 책을 적절한 위치에 넣고 보관 기록지(파일 시스템)에 언제 어느 위치에 보관했는지 기록을 해 두는 것이죠. 필요없는 책은(파일 삭제) 도서관에서 빼고 보관 기록지에서도 해당 기록을 삭제합니다. 간단하죠?[도서관 일을 정확하게 알지 못해 보관 기록지 등의 용어는 틀릴 수 있습니다.]

이러한 이유로 운영체제인 윈도우는 파일들에 대한 모든 것을 담은 데이터베이스인 파일 시스템에 전적으로 의지합니다. 실제로 저장소에 파일이 있어도 파일 시스템이 그런 파일은 없다고 하면 그 파일은 없는 게 됩니다.[파일 시스템과 운영체제 입장에서는] 만약 저장소에 저장된 모든 데이터들의 데이터베이스인 파일 시스템이 사라진다면 운영체제는 파일을 찾지도 읽지도 쓰지도 못하는 바보가 되어 버립니다.[사서가 보관 기록지를 잃어버리면 멍 때릴 수 밖에 없는 것처럼]


포맷은 이렇듯 중요한 파일 시스템을 저장 장치에 구축하는 작업입니다. 만약 저장 장치에 기존의 파일 시스템이 이미 존재한다면 포맷은 기존의 파일 시스템은 엎어버리고(지워버리고) 새로운 파일 시스템을 다시 구축하는 작업을 의미하게 됩니다. 이 때 기존의 파일 시스템을 엎어버리는 방식에 따라 포맷은 빠른 포맷과 일반 포맷의 두 가지 방식으로 나누어집니다.



2. 빠른 포맷

빠른 포맷이란 저장 장치에서 데이터는 그대로 놔두고 파일 시스템만 지우고 다시 구축하는 것을 의미합니다.


즉, 데이터들은 그대로 있지만 이러한 데이터에 대한 정보를 담고 있던 데이터베이스만 사라진 것이죠. 새롭게 구축된 파일 시스템은 해당 디스크에 아무 것도 기록되어 있지 않고 깨끗한 상태하고 기록이 되어 있습니다.

새롭게 구축된 파일 시스템에는 현재 저장소에 실제론 남아있는 파일이나 폴더에 대한 아무런 정보가 없습니다. 이는 해당 저장 장치는 아무 것도 없이 "비어있다" 는 것이 되는 것이죠. 파일 시스템에 전적으로 의지하는 운영체제는 이러한 파일 시스템의 기록을 보고 정말로 해당 저장 장치가 비어있는 것으로 인식을 하게 됩니다.

이러한 상태에서 새로운 파일을 기록하면? 현재 남아있는 기존의 데이터 위에 새로운 데이터를 그냥 덮어써버립니다. 그렇게 기존의 데이터는 새로운 데이터에 의해 점차 사라지게 됩니다.

이것이 바로 빠른 포맷입니다. 저장 장치에서 파일 시스템이 실제로 차지하는 용량은 얼마 되지 않기 때문에 이러한 파일 시스템만을 갈아엎는 포맷 과정은 굉장히 빠르게 완료됩니다. 그리하여 빠른 포맷이라고 하는 것 입니다.



3. 일반 포맷

일반 포맷이란 파일 시스템을 구축하면서 저장 영역을 함께 초기화하는 것을 의미합니다.


즉, 새로운 파일 시스템을 구축하면서 이에 맞게 기존의 데이터들도 실제로 모두 삭제하는 것이죠. 기존의 데이터를 모두 삭제하는 방법은 간단합니다. 저장 영역의(파티션, 볼륨) 모든 공간을 0 으로 재기록(데이터 삭제) 하는 것 입니다.

이것이 바로 일반 포맷입니다. 저장 영역의 모든 공간을 0 으로 재기록하는 과정을 거쳐야하기 때문에 저장 영역의 크기에 따라 굉장히 오랜 시간이 걸리기도 합니다.



4. 빠른 포맷과 일반 포맷의 선택

과거에는 일반 포맷을 대체로 많이 사용하였습니다. 하드 디스크와 같은 저장 장치의 생산 기술이 지금보다 떨어지던 시절 알게 모르게 디스크에 문제가 있는 경우가 종종 있었고 모든 저장 공간을 0 으로 재기록하는 일반 포맷을 통하면 1 차적으로 디스크가 데이터를 쓰는데 문제가 없는지 판단할 수 있었기 때문이죠.

허나 지금은 빠른 포맷을 대체로 많이 사용합니다. 저장 장치의 생산 기술이 많이 발전하여 디스크 자체에 문제가 있는 경우는 드물어졌고 무엇보다 저장 장치의 용량이 고용량화 되면서 모든 저장 공간을 0 으로 재기록하는 시간이 엄청나게 길어졌습니다. 즉, 더이상 일반 포맷에 소요되는 시간이 참고 기다릴 수 있을만한 수준을 벗어나 버린 것이죠.

또한 여러가지 굉장히 유용한 디스크 진단 프로그램들이 많이 등장하면서 굳이 일반 포맷을 통하지 않고 이러한 전문적인 디스크 진단 프로그램을 통해 디스크의 상태를 보다 자세하고 정확하게 그리고 선택적으로 판별할 수 있게 되었습니다.

그리하여 현재에는 포맷 = 빠른 포맷이라는 공식이 일반적인 모습이 되었습니다. 단적인 예가 윈도우에 포함된 기본 포맷 기능을 통해 포맷을 하게 되면 빠른 포맷 옵션이 기본으로 선택되어있는 것을 확인할 수 있습니다.





Ⅱ. 포맷과 데이터 복구

포맷을 하거나 파일을 삭제해도 복구할 수 있다는 말을 많이 들어보셨을 겁니다. 이는 위에서 알아본 빠른 포맷에 해당하는 내용이며 알아본 것과 같이 빠른 포맷은 실질적인 데이터는 지우지 않고 그대로 놔두기 때문에 가능한 것입니다. 또한 비단 빠른 포맷 뿐만 아니라 우리가 일반적으로 파일을 삭제하는 작업도 실질적으론 파일 시스템의 데이터베이스에서 해당 파일에 대한 정보만 삭제할 뿐, 실제로 디스크에 기록된 데이터는 삭제하지 않기 때문에 가능한 것이죠.[우리가 흔히 하는 파일의 삭제 작업은 빠른 포맷과 그 방식이 동일하다고 할 수 있습니다.]

파일 복구 프로그램들은 파일 시스템을 통하지 않고 직접적으로 디스크의 저장 공간을 노가다로 소위 말해 일일히 훑으면서 기록된 데이터들을 모두 찾는 작업을 합니다. 그리고 이렇게 일일히 하나하나 찾아낸 파일들을 파일 시스템에 다시 기록함으로써(또는 다른 곳으로 복사함으로써) 다시 해당 파일을 사용할 수 있도록 하는 것 입니다. 이것이 바로 파일 복구의 원리입니다.

이러한 연유로 파일 복구을 하고자 한다면 디스크에서 아무런 쓰기 작업도 하지 말라고 하는 것 입니다.[쓰기를 유발 할 수 있는 모든 행동들] 기존의 데이터 위에 새로운 데이터가 기록이 되면 기존의 데이터는 사라지기 때문이죠.


이를 역으로 이용하는 게 바로 데이터 파괴입니다. 즉, 파일 복구 프로그램들이 기존의 데이터를 찾아서 복구할 수 없도록 (기존의) 데이터 위에 0 으로 재기록하는 작업을 진행하거나, 이러한 흔적까지 역추적하는 전문적인 장비를 동원할 경우를 대비하여 데이터 위에 일정한 규칙에 따라 의미없는 데이터를 여러번 덮어쓰는 작업을 진행하는 하게 됩니다. 이러한 작업은 파일 단위에서 이루어지기도 하며 저장 공간 단위에서 이루어지기도 합니다.

이러한 작업을 전문적인 용어로 와이핑(Wipe, Wiping)이라고 하며 비어있는 저장 공간을 0 으로 재기록하는 작업을 따로 제로필(zero fill, zero filling)이라고 부릅니다. 이는 모두 빠른 포맷과 파일 삭제 작업이 실제 데이터가 아닌 파일 시스템 안에서만 이루어지는 것을 보완하고, 디스크에서 데이터를 실제로 삭제하기 위한 작업들 입니다.

이러한 와이핑에는 여러가지 규격이 있는데[데이터를 어떤 규칙에 의해 삭제할 것인지] 대표적인 것이 바로 미 국방성에서 사용하는 DoD 5220.22-M 입니다.


참고로 디스크에 저장된 데이터 파괴의 가장 마지막 단계는 디스크의 물리적인 파괴(소각, 분쇄, 용해) 입니다.

재주 있으면 여기에서 데이터 찾아봐~ 주지사께서 할 짓이 없어서 그 뜨거운 용광로로 퐁당~ 입수하신 게 아니란 말씀!