디스크 포맷

'''디스크 포맷'''(; Disk formatting)은 처음 사용을 위해 비어 있는 파일 시스템을 설정하고 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 플로피 디스크 또는 USB 플래시 드라이브와 같은 데이터 저장 장치를 준비하는 작업이다. 이러한 과정을 도와 주는 다양한 유틸리티와 프로그램들이 존재하며, 이를테면 FORMAT.COM을 들 수 있다.
커다란 디스크들은 초기화와 파티션 설정을 통해 논리 드라이브로 분할된다. 이 논리 드라이브 분할은 다른 종류의 디스크와의 호환성 문제 때문에 하드 디스크에서만 보통 쓰인다.
멀웨어 감염이나 소프트웨어 문제 등으로 인해 손상된 운영 체제는 디스크를 포맷하고 운영 체제를 다시 설치함으로써 깨끗한 상태로 되돌릴 수 있다. 그러나, 반드시 중요한 파일들은 미리 백업을 받아 놓아야 한다.
디스크를 포맷할 때 낮은 수준(low-level)과 높은 수준(high-level)으로 알려진 처리 방식을 고를 수 있다. 전자는 디스크 컨트롤러를 사용하여 디스크 표면을 포맷하고 보이는 섹터 숫자와 같은 특성들을 설치한다. 반면 후자는 운영 체제에서 기록한 특정한 정보만을 다룬다.
=== 낮은 수준의 포맷 (플로피 디스크) ===
낮은 수준의 플로피 디스크와 초기의 하드 디스크의 낮은 수준의 포맷은 디스크 드라이브 하드웨어를 통해 수행한다.
이 과정은 표준 1.44MB 플로피 디스크의 경우 매우 쉽게 풀이할 수 있다. 낮은 수준의 플로피 디스크 포맷은 보통 플로피 디스크의 160 트랙의 각 부분(각 면의 80개 트랙)에 512 바이트의 18 섹터를 기록하며 1,474,560 바이트의 용량을 제공한다.
섹터는 섹터 번호, CRC 바이트, 그리고 읽기/쓰기 동안의 섹터를 유효성 검사를 위한 정보를 포함하고 있기 때문에 실제로 섹터는 물리적으로는 512 바이트보다 크다.
다른 낮은 수준의 포맷은 동일한 매체에서 사용될 수 있다. 이를테면 커다란 레코드는 상호 레코드 사이 크기를 나누는 데에 사용할 수 있다.
몇몇의 프리웨어, 셰어웨어, 자유 소프트웨어의 포맷 프로그램(GParted, FDFORMAT, NFORMAT, 2M은 포맷에 대한 상당히 많은 제어 기능을 제공하며 높은 밀도를 가진 3 1/2인치 디스크 용량을 최대 2MB까지 늘릴 수 있는 기능도 제공한다.
리눅스는 수많은 섹터 크기를 지원하며 도스와 윈도우는 커다란 레코드 크기의 배포용 매체 형식으로 포맷된 플로피 포맷을 지원한다.
=== 낮은 수준의 포맷 (하드 디스크) ===
하드 디스크의 낮은 수준의 포맷이 인기가 있었던 해는 1980년대였다. 보통 디스크 위에 MFM 패턴을 설치함으로써 바이트마다 섹터가 성공적으로 디스크에 기록될 수 있게 한다. RLL 인코딩이 등장하면서 낮은 수준의 포맷은 점점 쓰이지 않게 되었으며 현대에 출시되는 하드 디스크는 공장 출하시 낮은 수준의 포맷이 되어 있는 임베디드 시스템으로 되어 있다.
각 하드 디스크는 플로피와 매우 비슷하였으나 낮은 수준의 포맷은 보통 운영 체제에서가 아니라 바이오스에서 행해지는 게 보통이었다. 이러한 과정은 MS-DOS DEBUG 명령어를 사용하여 다른 바이오스의 다른 주소에 숨겨져 있는 루틴에 제어권을 전송하였다.
1990년대를 기점으로 낮은 수준의 하드 드라이브 포맷은 다음과 같은 기술적 개선과 더불어 더 복잡해졌다:
* RLL 인코딩을 사용한다.
* 많은 수의 섹터를 바깥의 더 긴 트랙에 저장한다. (전통적으로 모든 트랙은 플로피 디스크와 같은 수의 섹터를 갖추고 있었다)
* 트랙 숫자를 디스크 표면에 인코딩하여 하드웨어를 단순하게 만든다.
* 드라이브의 구조적 속도를 빠르게 한다.
==== 디스크 초기화 ====
1990년대 중반 이후에 나온 현대의 하드 드라이브에는 공장 출하 후의 경우 낮은 수준의 포맷(low-level formatting)을 수행하지 못하지만, "낮은 수준의 포맷"이라는 용어는 여전히 IDE나 ATA 하드 드라이브를 공장 출하값으로 되돌린다는 뜻의 "초기화"(reinitialization)로 잘못 부르는 경우가 많다. "초기화"는 드라이브에 기록하고 읽을 수 없는 섹터를 찾아내는 기능을 제공한다는 것이 올바른 표현이다. 그러나 이 용어는 보통 0 바이트를 디스크 위에서 주소를 매길 수 있는 모든 위치에 기록함으로써 어떠한 경우에는 그러한 과정의 일부, 즉 드라이브의 각 섹터가 기록된다는 것만을 일컫는다. 또, 이를 제로 필링(zero-filling)이라고 부르기도 한다.
많은 드라이브 제조업체들은 이러한 잘못된 개념을 고치지 않았지만, 제조업체 웹사이트에 있는 낮은 수준의 포맷 유틸리티에 "초기화 소프트웨어"라는 설명을 추가하고 있다. 사용자들이 보통 제대로 된 뜻의 낮은 수준의 포맷과 초기화의 차이를 구별할 방법이 없기 때문에 잘못 정보를 제공 받은 사용자와 여러 드라이브 제조업체의 비통일성이 이러한 오류를 없애지 못하게 만들었다.
하드 디스크에 제로 필(zero-fill) 기능만 수행하는 방식은 유닉스 dd 유틸리티를 사용하여 드라이브를 0 바이트로 채우는 것이다.
=== 높은 수준의 포맷 ===
높은 수준의 포맷은 디스크의 비어 있는 파일 시스템을 설정하고 시동 섹터를 설치하는 과정이다. 시간이 오래 걸리지 않으며 가끔 "빠른 포맷"이라고 불린다.
또한 전반적이 디스크의 결점을 감지하는 옵션을 사용할 수 있으며 더 오랜 시간이 걸린다. 이때 하드 디스크가 크면 클수록 많으면 많은 시간이 걸릴 수도 있다.
플로피 디스크의 경우 높은 수준과 낮은 수준의 포맷은 소프트웨어를 통해 사용자 설정에 따라 한 번에 실행할 수 있다. 최근에 대부분의 플로피 디스크는 공장 출하시 DOS FAT12로 미리 포맷이 되어 나온다. 물론 필요하면 다른 포맷으로 포맷할 수도 있다.
MS-DOS와 PC-DOS에서 디스크 포맷은 FORMAT 프로그램으로 수행된다. FORMAT은 보통 데이터를 제거하기 앞서 사용자에게 포맷할 것인지를 물어 본다. 그러나 몇몇 버전의 도스는 문서화되지 않은 /AUTOTEST 옵션을 가지고 있었다. 이를 사용하면 확인은 하지 않고 포맷이 바로 시작된다.
문서에는 나와 있지 않은 /U 매개변수도 있는데 모든 파티션을 덮어쓰는 무조건 포맷 방식으로, 소프트웨어를 통한 데이터 복구를 막는 데 쓰인다.
윈도우 XP 설치에서는 빠른 포맷과 일반 포맷으로 나누던 것과 달리, 윈도우 비스타 설치에서는 "무조건" 빠른 포맷 방식을 사용하여 하드 디스크를 포맷한다. 보통 하드 디스크들은 출하할 때 포맷이 되어 나오기 때문에 제대로 된 포맷 방식을 취할 필요가 없다는 것이 그 까닭이다. 빠른 포맷을 사용하면 윈도우 운영 체제를 설치하는 시간을 크게 줄일 수 있어 많이 선호된다.
디스크를 빠른 포맷한 경우 실제의 데이터가 지워지는 것이 아니고 차후 데이터를 기록할 때 데이터가 있었던 부분이 파일 할당 테이블에 비어있는 것으로 나오기 때문에 덮어 쓰여지며 지워진다.
따라서 아직 덮어 쓰여지지 않았을 경우 실제의 데이터의 복원이 가능하며 이것을 도와주는 프로그램이 자료 복구 프로그램이다. 과거 자료 복구 프로그램은 모두 FAT만을 지원하였으나, 마이크로소프트 윈도우에서 흔히 사용하는 파일 시스템은 NTFS이며, 최신의 자료 복구 프로그램은 이를 지원한다.
하지만 긴급하거나 중요한 자료의 경우에는 자료 복구 전문 회사에 복구를 위해 일정의 금액을 지불하고 복구를 의뢰할 수도 있으며, 이 경우 용량이나 데이터의 중요도에 따라 가격이 결정된다. 복구하고자 하는 데이터가 덮어쓰기 되었을 경우 일부만 복구 가능하거나 복구가 불가능할 수도 있다.
* 자료 복구
*  윈도 8에서 하드 드라이브를 포맷하는 방법
*  자기 메모리와 솔리드 스테이트 메모리를 안전하게 지우는 방법 (Peter Gutmann)
*  윈도 XP를 깨끗하게 설치하는 동안에 묻는 빠른 포맷과 일반 포맷의 차이 설명 (마이크로소프트 도움말 및 지원)
분류:파일 시스템 관리