디스크를 깨끗하게 정리하기

현재 디스크에 아래와 같이 파티션이 구성되어 있습니다.



해당 디스크에 존재하는 모든 파티션을 깨끗하게 없애고 할당되지 않은 공간으로 되돌리고 싶습니다. 또는 현재 GPT 디스크나 동적 디스크 형식을 사용 중인데 그러한 내용도 깨끗하게 정리하고 싶습니다. 그럴 때 사용할 수 있는 게 바로 Clean 명령입니다.

Select Disk=0
Clean

선택한 디스크에 포함된 파티션과 볼륨, 형식을 모두 삭제하고 디스크를 깨끗하게 정리합니다.


만약 위에서 예제로 보여드린 디스크 1 을 정리한다면 아래와 같이 작업을 진행하면 되는 것이죠.

diskpart
select disk=1
clean

 



그러면 파티션 뿐만 아니라 디스크 형식까지 완전히 정리가 되는 것을 확인할 수 있습니다. 즉, MBR 이나 GPT, 기본, 동적 등의 디스크 형식까지 모두 사라지는 것입니다. 고로 한 순간의 잘못된 디스크 선택은 재앙을 초래할 수 있기 때문에 반드시 주의해서 사용을 하시길 바랍니다. 명령에 대해서는 이 외에 크게 더 드릴 말이 없네요.




Clean 작업의 이해

Clean 명령이 어떻게 디스크를 정리하는지는 Clean 명령이 행하는 작업을 아시면 쉽게 이해하실 수 있습니다. Clean 명령이 행하는 작업은 디스크의 첫 1MB 와 마지막 1MB 를 모두 0 으로 채워 해당 영역의 데이터를 날리는 작업입니다. 단순히 도합 2MB 의 영역만을 삭제하는 것이기 때문에 작업은 매우 빨리 끝나게 됩니다.

Clean 작업 전 - MBR 영역의 모습.


Clean 작업 후 디스크의 첫 1MB 와 마지막 1MB 를 삭제하여 MBR 이 통채로 날아가버린 모습.



그렇다면 Clean 명령은 왜 디스크의 첫 1MB 와 마지막 1MB 만을 삭제하는 것일까요? 그리고 왜 해당 영역을 삭제하면 디스크가 정리될까요?

MBR 디스크에서는 MBR 영역에, GPT 디스크에서는 GPT 영역에, 동적 디스크에서는 동적 헤더 영역에, 각각 해당 디스크의 구성과 유지에 필요한 모든 정보들이(디스크 자체에 대한 정보, 부팅에 관한 정보, 파티션(또는 볼륨)에 대한 구성 정보들이) 저장되어 있습니다. 이러한 MBR, GPT, 동적 헤더 영역은 모두 디스크의 첫 1MB 영역 안에 위치해 있고, 덤으로 GPT 와 동적 헤더의 경우 마지막 1MB 영역 안에 그 미러가 위치해 있습니다. 그렇기에 디스크의 첫 1MB 와 마지막 1MB 의 영역을 날려버리면 MBR 정보, GPT 정보, 동적 헤더 정보가 모두 깨끗하게 사라지는 것이죠.

해당 MBR, GPT, 동적 헤더 정보가 깨끗하게 사라졌다는 것은 저장되어 있던 디스크에 대한 모든 정보가 사라졌다는 것을 의미하며, 이는 해당 디스크에 포함되어 있던 파티션이나 볼륨 등에 대한 정보와 함께 필요한 디스크의 모든 정보가 사라졌다는 것을 의미합니다. 즉, 파티션이나 볼륨도 모두 사라지고 디스크 또한 아무런 형식도 아닌 깨끗한 상태로 되돌아가는 것이죠. 간단하죠? DiskPart 에서 Clean 의 의미는 이와 같습니다.


이렇게 디스크가 정리되면 해당 디스크는 아직 아무런 형식도 아닌 초기화되지 않은(Uninitialized) 상태의 디스크가 됩니다. 이 상태에서 디스크 관리를 실행하면 해당 디스크를 MBR 이나 GPT 중 무슨 형식으로 초기화할 지 묻는 선택 창을 출력해주게 됩니다.


[디스크 관리] 디스크 초기화 - 새로운 디스크의 인식과 기본 디스크로의 초기화


DiskPart 는 살짝 다른데요. 해당 디스크가 아직 아무런 형식도 아니지만 사용자가 해당 디스크에 파티션 생성 작업을 하면 해당 디스크의 용량이 2TB(2TiB) 미만이라면 자동으로 MBR 을 구성하고 MBR 기본 디스크 형식으로 만들어 줍니다. 만약 해당 디스크의 용량이 2TB 를 초과한다면 자동으로 GPT 기본 디스크 형식으로 초기화하게 됩니다.

즉, DiskPart 는 해당 디스크가 아직 MBR 도 GPT 도 동적도 아닌 아무 것도 아닌 Uninitialized 상태이지만, 별다른 변환 작업 없이 곧바로 파티션 생성 작업을 할 수 있게 도와주는 것입니다. 어쨌든 실제로 DiskPart 에서 해당 디스크에 Create Partition 명령을 통해 파티션을 생성하거나 Convert 명령을 통해 변환 작업을 진행하기 전까지는 해당 디스크는 초기화되지 않은 디스크일 뿐입니다.




디스크의 데이터를 깨끗하게 삭제하는 방법

Clean 작업은 디스크의 첫 1MB 와 마지막 1MB 영역만을 정리할 뿐입니다 즉, Clean 명령을 통해 디스크를 정리하였더라도 실제 디스크에는 아직 데이터들이 온전하게 남아 있는 것이죠. 이는 포맷 명령에서 빠른 포맷을 진행하면 파일 시스템만을 날리는 것과 동일한 것이라고 생각하시면 됩니다.

빠른 포맷과 일반 포맷의 차이점 - 실제 포맷 결과 비교


그렇기에 데이터를 파괴하기 위한 목적이라면 단순히 Clean 명령만을 통해서 디스크를 정리하는 작업은 위험하다고 할 수 있습니다. 그럴 때는 All 매개 변수를 추가해주면 됩니다.

Select Disk=0
Clean All

선택한 디스크의 모든 섹터를 0 으로 기록하여 저장된 모든 데이터를 파괴합니다. [디스크 전 영역에 걸쳐 제로필]



즉, Clean All 명령은 디스크의 첫 1MB 와 마지막 1MB 뿐만 아니라 디스크의 전 영역을 0 으로 기록하여 모든 데이터를 제거하는 것입니다. 이는 일반 포맷 작업과 동일한 것이라고 생각하시면 됩니다. 그래서 작업의 결과도 위에서 링크로 걸어드린 빠른 포맷과 일반 포맷의 차이점에서 보았던 것과 동일합니다. [Clean 을 빠른 포맷, Clean All 을 일반 포맷으로 생각하면 됩니다.] 단지 디스크의 모든 영역에 걸쳐서 작업이 이루어기 때문에 Clean All 작업이 일반 포맷에 비해 좀 더 광범위한 영역의 제로필을 진행하는 것이죠.

그래서 Clean All 작업은 시간이 오래 걸립니다. ^^ 하지만 이렇게 제로필 작업만 해주어도 일반적인 사용자는 데이터를 복구할 수 없으니 혹시나 디스크를 타인에게 양도하거나 판매할 때는 이와 같이 제로필 작업을 해주는 것이 좋습니다.

참고로 좀 더 빡시게 지우고 싶으시다면 DoD 5220.22-M 보안 삭제 작업을 진행하는 GDisk 의 DODWIPE 작업을 진행하시면 됩니다. 그건 진짜 오래 걸립니다. ㅎㅎㅎ ^^; 이글은 여기까지 하죠. ^^

부팅(윈도우), 시스템(Bootmgr), 페이지 파일, 크래시 덤프, 최대 절전 모드 볼륨이 들어있는 디스크는 Clean 명령으로 정리할 수 없습니다. ^^ 만약 해당 디스크를 정리하고 싶다면 윈도우 PE 등으로 부팅한 후 정리를 해야 합니다.


블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,