번외편1 - 윈도우 7 에서 사용되는 파일 시스템들(File System) - 포맷 유형 [이동 완료]
이동 완료 2009. 12. 5. 16:31 |이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^
- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.
- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)
- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)
- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.
이 자료는 신규 블로그에서 새롭게 제공되고 있습니다. 페이지가 자동으로 이동하지 않는 분들은 아래의 링크를 클릭하세요.
파일 시스템(File System)을 쉽게 표현하자면 저장 장치에 데이터를 기록하고 사용하기 위한 일종의 규칙입니다. 파일 시스템은 저장 장치에 데이터 즉, 파일의 이름을 지정하고, 저장하고, 읽고, 검색하는 등의 파일을 기록하고 사용하는 모든 작업의 조직적인 체제라고 할 수 있습니다. 즉, 파일 시스템은 저장 장치에 데이터를 기록하고 사용하기 위한 기초적인 밑바탕을 그리는 것 입니다.
이러한 파일 시스템은 저장 장치에 따라 또는 운영체제에 따라 수 많은 종류가 있습니다. 플로피 디스켓을 위한 FAT12, CD/DVD 와 같은 광학 미디어를 위한 ISO 9660, UDF, 윈도우의 FAT16, FAT32, exFAT, NTFS, 리눅스의 ext2, ext3, ext4, XFS, JFX, ReiserFS, 솔라리스의 UFS, VxFS, QFS, ZFS, 맥 OS X 의 HFS, HFS Plus, 등이 모두 파일 시스템의 한 종류들 입니다.
한 가지 초보 분들을 위해 파일 시스템에 대해 반드시 짚고 넘어가야할 문제가 있습니다. 데이터, 즉, 파일은 바뀌지 않습니다. 단지 이러한 파일을 저장 장치에 어떻게 저장할 것인가? 어디에 위치시키고 읽고 쓰는데 어떠한 규칙을 적용할 것인가? 를 결정하는 것이 바로 파일 시스템인 것 입니다. ISO 9660 또는 UDF 라는 파일 시스템에 저장되어 CD 의 데이터를 NTFS 라는 파일 시스템인 D: 드라이브로 복사하여도 파일은 변하지 않는 것을 상기해 보시면 이해가 빠르실 겁니다.
저장 장치에 이러한 파일 시스템을 구축하는 작업을 바로 포맷(Format) 이라고 합니다. 즉, NTFS 로 포맷을 한다는 말은 해당 저장 장치에 데이터를 저장하기 위해 저장 장치에 NTFS 라는 파일 시스템을 구축한다는 것과 같습니다.
저장 장치는 이렇게 데이터를 기록하고 보관하고 사용하기 위한 파일 시스템이라는 체제를 구축해야지만 비로소 데이터를 저장하고 읽을 수 있습니다. 그리하여 이러한 파일 시스템을 구축하는 작업인 포맷은 저장 장치를 저장 장치로써 사용하기 위한 가장 기초적인 작업 중의 하나라고 할 수 있습니다.
이제 파일 시스템과 포맷이 정확히 무엇인지 아시겠나요? 이 글에서는 이 수 많은 파일 시스템들 중 윈도우 7 의 디스크에서 사용되는 FAT32 와 exFAT 그리고 NTFS 에 대해서 알아보도록 하겠습니다.
File Allocation Table(FAT)
FAT32 와 exFAT 는 File Allocation Table(파일 할당 테이블) 이라는 파일 시스템 종류입니다. 도스부터 사용되어 플로피를 위한 FAT12 부터 FAT16 과 FAT32, exFAT(Extended FAT, FAT64) 까지 발전을 하였습니다. FAT12 부터 따지면 30 년이 넘은 파일 시스템 입니다. 여기에서 FAT 뒤에 붙은 각각의 숫자는 비트를 의미합니다. 즉, FAT16 은 16 비트, FAT32 는 32 비트, exFAT(FAT64) 는 64 비트를 의미합니다.
FAT 파일 시스템은 굉장히 오래된 파일 시스템이며 점차 개량되어 발전해왔기 때문에 NTFS 와 같이 권한 관리나 보안과 같은 부가적인 기능이 없습니다. 그래서 굉장히 단순하고 이로 인해 속도적인 측면에서는 NTFS 보다 빠른 장점이 있습니다.(뭔 기능이 있어야지) 하지만 디스크에 저장된 파일의 개수가 늘어나면 NTFS 보다 떨어지는 검색 능력으로 인해 오히려 느려지는 모습을 보입니다. 아무튼 이러한 이유로 인해 윈도우 7 은 FAT 방식으로 포맷된 볼륨으로의 설치를 아예 지원하지 않고 있습니다.
아무튼 단순하기 때문에 파일의 개수가 그리 많지 않고 조금이라도 빠른 성능을 위해 파워 유저들의 경우 다운로드 전용으로 사용하는 볼륨에 FAT 파일 시스템을 사용하기도 합니다. 또한 오래된 파일 시스템이기 때문에 그만큼 지원하는 운영체제가 많고 이로 인해 이동형 저장 매체의 경우 호환성을 위해 일부러 FAT32 로 포맷하기도 합니다.
현재는 기존까지 사용하던 FAT32 의 한계와(최대 인식 가능 파일의 크기 4GB 와 같은) 속도 등을 개선한 exFAT 까지 발전을 하였습니다. 하지만 exFAT 의 경우 NTFS 보다 오히려 하위 운영체제에서의 지원이 좋지 않고 나온지 얼마 되지 않았기 때문에 아직까진 많이 사용되진 않습니다.
New Technology File System(NT File System, NTFS)
윈도우 NT 3.1 부터 사용된 NT 커널의 기본 파일 시스템입니다. 1993 년 7 월에 등장한 파일 시스템으로 비교적 최신의 파일 시스템이라고 할 수 있습니다. NT 즉, 서버에서 사용하기 위해 등장한 파일 시스템이기 때문에 권한 관리, 보안 설정과 같은 FAT 파일 시스템에 비해 좀 더 진보된 기능들을 포함하고 있습니다.
이러한 NTFS 의 핵심은 MFT(Master File Table) 라는 것에 있습니다. FAT 의 File Allocation Table 과 비슷한 것으로 파일의 이름, 권한, 크기, 파일이 사용하는 클러스터 번호, 디렉토리 트리 구조 등을 기록한 거대한 DB 라고 생각하시면 됩니다. 이러한 MFT 는 NTFS 의 모든 것이라고 할 만큼 중요하기 때문에 NTFS 파일 시스템으로 포맷한 순간 일정 공간을 전용으로 할당 받아 일반 파일이 해당 공간에 기록되지 않게 함으로써 단편화를 막고 있습니다.
하지만 MFT 가 꽉차거나 또는 일반 데이터 영역이 꽉찬 경우 어쩔 수 없이 서로의 영역을 침범하여 정보를 기록하게 되는데 아무튼 이 때 부터 MFT 의 단편화가 시작되고 MFT 의 단편화는 NTFS 의 재앙이라고 부를 수 있을 만큼 NTFS 의 엄청난 성능 하락을 가져오기 때문에 NTFS 를 사용하는 경우 MFT 의 단편화는 무슨 수를 쓰더라도 막는 것이 좋습니다. NTFS 로 포맷된 볼륨은 보통 남은 용량이 10% 이하로 내려가는 순간부터 MFT 의 단편화가 일어난다고 보는게 좋으므로 볼륨 전체의 여유 공간을 최소 10% 정도는 남겨 두는게 좋습니다.
NTFS 의 볼륨의 크기는 클러스터의 크기에 따라 최소 2 TB(테라바이트) 부터 256 TB 까지 지원을 하고 있으며(이론적으로 최대 1 YB(요타바이트)) 지원하는 단일 파일의 최대 크기는 256 TB (이론적으론 16 EB(엑사바이트)) 로 충분히 여유롭다고 할 수 있습니다.
이러한 NTFS 는 윈도우 7 의 기본 파일 시스템으로 마이크로소프트사에서는 기본적으로 FAT 파일 시스템보단 NTFS 파일 시스템을 사용할 것을 권고하고 있습니다.
FAT16, FAT32, exFAT, NTFS 의 비교
어째 FAT 와 NTFS 에 대한 설명이 상당히 단촐한 것 같은데 위와 같은 파일 시스템들을 구조까지 모두 설명할 필요는 없을 것이라 생각합니다.(그 많은 자료 찾을려면 저도 죽습니다.) 또한 들어가기 시작하면 밑도 끝도 없는 분야이기 때문에 -_-; 꼭 원하시는 분들은 인터넷에 정보가 널려있고 책도 많으니 찾아서 배워보시길 바랍니다. ^^
아무튼 이 포스팅의 목적은 파일 시스템이란 무엇인지 그리고 윈도우 7 에서 사용되는 파일 시스템들에 대한 비교를 주 목적으로 하는 것이기 때문에 이해해 주시기 바랍니다. 그럼 FA16 과 FAT32, exFAT, NTFS 의 주요한 내용들을 비교한 표를 제공해 드리도록 하겠습니다.
한계 항목은 클러스터 크기에 따라 한계치가 달라지므로 기본적인 지원과 최대 한계치 까지를 모두 표시하였습니다. 또한 내용 중 구조와 기능은 전문적인 내용이 많으므로 관련 내용은 직접 검색하여 찾아보시는 게 좋습니다. 표의 근거로 삼은 자료는 아래와 같습니다. 관심이 있으신 분들은 해당 내용을 보시고 관련 내용은 다시 검색하시어 찾으셔서 보시면 많은 도움이 되실겁니다.
http://en.wikipedia.org/wiki/File_Allocation_Table
http://en.wikipedia.org/wiki/Ntfs
http://en.wikipedia.org/wiki/ExFAT
http://technet.microsoft.com/en-us/library/bb457112.aspx
FAT 패밀리와 NTFS 에 대한 비교는 여기까지 입니다.
포맷의 종류에는 일반 포맷과 빠른 포맷이 있습니다. 제가 몇 년에 걸쳐 수 많은 질문들 속에서 일반 포맷과 빠른 포맷의 차이에 대한 질문을 받았고 포맷을 하고 난 후 데이터를 복구할 수 있는지에 대한 질문도 많이 받았고 그에 대한 답변을 드렸는데요. 여전히 많은 분들이 가끔 이 질문을 다시 하시곤 합니다. 도대체 일반 포맷과 빠른 포맷의 차이가 무엇이고 데이터를 복구할 수 있는 이유가 뭐고 어떠한 파일은 왜 복구가 되지 않는지 말이죠. 여기서 그냥 다 답변을 드리겠습니다.
포맷이란 무엇이라고 했죠? 저장 장치에(여기선 디스크로 통칭하죠) 데이터를 기록하기 위한 초석인 파일 시스템을 구축하는(설치하는) 작업이라고 말씀을 드렸습니다. 또한 파일 시스템은 데이터를 저장하고 사용하기 위한 체제라고 말씀드렸죠?
빠른 포맷이란 단순히 기존의 파일 시스템에 대한 정보를 제거하고 새로 파일 시스템만을 구축하는 작업이고 일반 포맷이란 여기에 더해 모든 저장 영역을 0 으로 기록하는 과정을 통해 저장 영역에 무슨 문제는 없는지 확인하는 과정이 추가되는 것 입니다.
그래서 빠른 포맷은 파일 시스템만 갈아 엎고 다시 구축하면 되기에 빠르고 일반 포맷은 모든 저장 영역에 0 이라는 데이터를 빠짐없이 기록하는 과정을 거치기 때문에 시간이 오래 걸리는 것 입니다. 저장 영역이 굳이 테라급으로 넘어가지 않더라도 몇 백 기가를 넘어가면 시간이 굉장히 오래 걸리는 것은 바로 이러한 이유 때문입니다. 그래서 특별히 문제가 없는 디스크는 보통 빠른 포맷을 선호하고 있습니다.
파일 시스템엔 해당 디스크에 저장되어 있는 모든 파일들에 대한 정보가 담겨 있습니다. 해당 파일의 이름은 무엇인지? 언제 작성된 파일인지? 해당 파일은 어떤 디렉토리에(폴더에) 위치해 있는지, 해당 파일에 엑세스하기 위해선 실제 디스크의 어느 위치로 가야하는지 등의 모든 정보가 담겨 있습니다. 그래서 이러한 파일 시스템을 갈아 엎고 새로 구축하면 디스크는 데이터가 저장되어 있지 않은 상태 즉, 비어있는 상태로 인식이 되는 겁니다. 그래서 빠른 포맷을 하든 일반 포맷을 하든 포맷을 하면 디스크의 모든 자료가 지워지는 것 입니다.
그런데 빠른 포맷은 기존의 파일 시스템을 제거하고 다시 새로 파일 시스템을 구축하는 작업만 한다고 했죠? 이로 인해 사용 중이던 디스크를 빠른 포맷한 경우 해당 파일로 접근하기 위한 모든 정보가 사라져 버렸을 뿐 일반 포맷처럼 디스크의 모든 영역을 0 으로 기록하는 과정을 하지 않았기 때문에 파일 시스템에선 디스크가 비어 있는 것으로 인식할 뿐 실제론 디스크엔 아직 파일이 남아 있게 됩니다. 그저 새로운 파일을 기록하면 기존의 파일 위에 그냥 덮어쓸 뿐이죠.
빠른 포맷을 한 직후라면 사실상 기존의 파일은 그대로 남아있는 상태이기 때문에 현재의 파일 시스템을 거치지 않고 직접 파일이 저장된 디스크의 실제 위치로 이동을 하면 데이터 즉, 기존의 파일을 읽을 수 있습니다. 근데 이러한 파일이 정확히 어떠한 위치에 있는지 사실 알 수는 없습니다. 그래서 디스크의 모든 공간을 처음부터 일일히 조사하면서 기록된 데이터를 찾게 됩니다. 이러한 작업을 하는게 바로 Final Data 와 같은 파일 복구 프로그램입니다.
그런데 새로운 파일을 기록하면 기존의 데이터 위에 그냥 바로 덮어쓴다고 했죠? 그래서! 이렇게 새로운 파일로 덮어씌워진 파일은 정말로 삭제된 것이기 때문에 일반적인 파일 복구 프로그램으로도 복구를 할 수 없게 되는 겁니다. 그래서 만약 실수로 어떤 디스크를 포맷하였고 모두 온전히 복구하기를 원한다면 해당 디스크를 사용하는 행위를(새로운 파일을 복사해 넣는다던지) 절대 하지 말라고 하는 것 입니다.
일반 포맷을 하면 저장 영역의 모든 공간을 0 으로 기록하는(0 도 데이터니 데이터를 기록하는 것 입니다.) 과정을 거치기 때문에 사실상 일반적인 파일 복구 프로그램으로는 기존의 파일을 복구할 수 없게 됩니다. 이럴 때는 전문적인 장비를 가진 복구 업체에 의뢰해서 전문적인 장비와 기술을 동원해야만 겨우 데이터를 복구할 수 있습니다. 디스크에 남겨진 기존의 흔적을 찾아 복구하는 것이기 때문에 이마저도 완벽하진 않아 복구가 불가능한 경우도 있습니다.
아무튼 요즘 기술은 현재 데이터 이전에 남아있던 기존의 데이터의 흔적까지 찾는 수준이라 복구를 하긴 하지만 완벽하다고는 할 수 없으며 그에 대한 시간과 장비와 기술이 복합적으로 들어가기 때문에 용량당 몇 십에서 몇 백이 들 수도 있습니다.
좀 주제가 벗어나긴 하지만 그래서 미 국방부에선 기밀 데이터를 파괴하기 위한 규격인 DoD 5220.22-M 이라는 데이터 삭제 규격도 있습니다. 총 7 번의 여러가지 다른 데이터의 재기록을 통해 흔적을 통한 복구까지 원천적으로 봉쇄하기 위한 작업입니다. 근데 굉장히 오래 걸리죠. (데이터 파괴의 가장 최종 단계는 용해입니다. 녹여버리는거죠. -_-a 복구할테면 해보세요.) 관심 있으신 분들은 GDisk 에서 한 번 다루었으니 아래의 글을 참고해 보세요.
지디스크(GDisk)로 데이터 복구 불능 상태로 파티션 삭제하기
지디스크(GDisk)로 데이터 복구 불능 상태로 디스크 전체 내용 삭제하기
앞으론 이 내용으로 질문이 올라오면 무조건 이 글을 링크로 걸도록 하겠습니다. -_-a
포맷을 할 때 필수적으로 보게되는 클러스터(Cluster) 란 것에 대해서 이야기를 해보도록 하겠습니다. 우리가 사용하는 디스크는 지 맘대로 데이터를 저장하는 것이 아닙니다. 디스크에도 데이터를 저장하고 관리하기 위한 일종의 체계가 있습니다. 디스크에도 일정한 구역이 있는데 플래터(Platter), 헤드(Head), 트랙(Track), 섹터(Sector) 로써 그 구역이 나누어집니다. 또한 이러한 위치를 나타내기 위한 주소 체계가 있는데 이를 CHS(Cylinder-Head-Sector) 주소 체계라고 부릅니다.(MBR 디스크에서도 한 번 잠깐 나왔죠 ^^)
뭐 지금은 디스크의 구조에 대한 포스팅이 아니기 때문에 여기까지만 하고(굳이 알 필요도 없고) 아무튼 디스크에서 사용하는 최소의 저장 단위는 바로 섹터(Sector) 입니다. 이러한 1 섹터의 크기는 512 Byte 입니다. 요거만 아시면 됩니다. 왜 512 Byte 인지는 저에게 묻지 마세요. 만든 놈들이 그렇게 만들었으니까요.
초기엔 요걸 그대로 썼습니다. 즉, 자료 저장의 최소 단위는 512 Byte 였던 거죠. 근데 문제가 하나 있었습니다. 지금은 64 bit 시대지만 과거엔 8 bit, 16 bit 시대였습니다. 8 bit 는 너무 멀리 갔고 16 bit 시절로만 따져도 컴퓨터가 인식할 수 있는 한계는 216 = 65,536 이 전부였습니다.
디스크의 최소 저장 단위는 512 Byte 라고 했죠? 디스크에 데이터를 쓰고 읽기 위해선 파일을 어디에 쓸건지 어디에 위치해 있는지 알 수 있는 그 주소가 필요합니다. 그럼 16 bit 에서 인식할 수 있는 주소의 한계는 65,536 개가 전부입니다. 그래서 16 bit 인 FAT16 에서 인식하고 사용할 수 있는 디스크의 최대 크기는 512 * 65,536 = 33,554,432 Byte = 32MB 가 전부 입니다.
32 MB 그 때 당시엔 모든 걸 담을 수 있을 만큼 거대한 용량이었지만 지금은 참 한심한 용량이죠. 근데 하드 디스크가 점점 발달하면서 정말로 40 MB 가 넘는 거대한(?) 디스크들이 나오기 시작합니다. 16 bit 에선 인식할 수 있는 용량의 한계가 32 MB 뿐인데 미치고 환장할 노릇이죠.
그래서 해결책으로 내 놓은 해결 방안이 바로 섹터 여러 개를 하나로 묶어 클러스터라 하고 이를 운영체제에서 사용하는 데이터 저장의 최소 단위로 사용하자! 였습니다. 즉, 65,536 이라는 주소를 섹터 하나 하나에 모두 지정해서 사용할 경우 32 MB 가 한계이니 차라리 이러한 섹터를 여러 개를 묶어 이를 클러스터라 하고 이를 최소 저장 단위로(주소 지정 단위로) 사용하는 개념인 것입니다. 8 개의 섹터를 하나로 묶으면 4096 Byte(4 KB) 클러스터, 16 개의 섹터를 하나로 묶으면 8192 Bye(8 KB) 클러스터가 되는 것 입니다.
이렇게 클러스터가 운영체제의 최소 저장 단위로 하면서 인식하여 사용할 수 있는 디스크의 한계 크기를 극복한 것 입니다. 그래서 클러스터를 4 KB 로 하면 4096 * 65,536 = 268,435,456 Byte = 256 MB, 클러스터를 32 KB 로 하면 32,768 * 65,536 = 2147483648 Byte = 2 GB 가 되는 것 입니다. FAT16 의 경우 32 KB 사이즈의 클러스터까지 지원을 하기 때문에 그래서 한계 용량이 2 GB 가 되는 것 입니다. 물론 64 KB 의 클러스터를 사용하여 4 GB 지원을 하기도 하지만 도스에선 지원을 안 해서 사용이 안 되었죠.
근데 클러스터를 사용하면서 문제가 하나 발생했습니다. 디스크의 최소 저장 단위인 섹터와 운영체제의 최소 저장 단위인 클러스터의 크기에서 차이가 발생하면서 버려지는 공간이 늘어나 버린 겁니다. 즉, 1 KB 짜리 파일을 하나 저장한다면 디스크의 최소 저장 단위인 섹터에선 512 Byte 섹터 두 개를 사용하여 버리는 용량이 없는 것에 반해(물론 파일의 크기가 더 작다면 섹터에서도 버려지는 공간은 분명 있습니다.) 4 KB 의 클러스터를 사용할 경우 나머지 3 KB 는 쓰지 못하고 버리는 용량이 되어 버린 것 입니다. 만약 32 KB 라면 무려 33 KB 를 버리고 사용하지 못하게 되는 것이죠. 물론 파일의 용량이 큰 경우엔 이렇게 버려지는 용량이 미미하지만 작은 파일을 다수 저장하는 경우엔 이게 좀 문제가 됩니다.
또한 얻은 이점도 있습니다. 클러스터로 인해 해당 파일을 기록하고 찾는데 더 적은 수의 주소가 필요하게 된 것이죠. 즉, 좀 더 간결하게 주소를 관리할 수 있게 된 것 입니다. 이로 인해 파일을 기록하고 찾는 작업에서는 좀 더 적은 수의 주소로 인해 좀 더 빨리 기록하고 찾을 수 있게 된 것이죠.
이러한 클러스터의 크기는 양날의 검 입니다. NTFS 에선 이러한 한계를 극복하기 위해 좀 더 고급적인 클러스터 관리 기술을 사용하여 덜 하지만 FAT 패밀리에선 이 차이가 명확하게 들어납니다. 그래서 포맷을 할 때 이러한 지식없이 클러스터 크기를 수동으로 지정하지 말고 그냥 윈도우가 권장하는 기본 값으로 사용하라는 게 그러한 이유입니다. 아무튼 클러스터에 대한 내용은 이쯤에서 마치겠습니다.
그림 하나 없이 재미없는 글을 끝까지 읽어주셔서 감사합니다. 어떻게 본 글보다 번외편 글 쓰는게 더 힘든지;;; 아무튼 이 포스팅은 여기까지 입니다. ^ㅡ^*
잠깐만! - 윈도우 7 에서 사용되는 디스크의 종류와 개념을 정리해보자
기본 디스크 관리
나 새 디스크 샀다! - 새로운 디스크의 인식과 기본 디스크로의 초기화
디스크의 구획 정리 - 디스크에 새로운 파티션을 생성하는 방법
비움 그것은 채움의 시작 - 필요 없어진 파티션을 삭제하는 방법
잠깐만! - 파티션의 확장과 축소에 관한 조건과 규칙
2% 부족할 때 - 공간이 부족한 파티션의 크기를 확장하는 방법
큰 옷을 수선하듯 - 너무 큰 파티션의 크기를 축소하는 방법
부팅의 첫 관문 - 활성 파티션이란? 바꾸는 방법과 윈도우의 변화
동적 디스크 관리
잠깐만! - 레이드의 종류와 기본 개념들 그리고 동적 디스크
바꿔주세요! - 동적 디스크로의 초기화와 기본 디스크에서의 변환
단순함의 미학 - 단순 볼륨의 생성과 관리
난 부족해! 묶어줘! - 스팬 볼륨의 생성과 관리
좀 더 빠른 디스크 성능을 위하여 - 스트라이프 볼륨의 생성과 관리
'이중으로 걷는 자' 데이터의 도펠갱어 - 미러 볼륨의 생성과 관리
데이터의 무결성을 위하여 - RAID-5 볼륨의 생성과 관리
가상 디스크(VHD) 관리
무에서 유를 창조하는 기술, 윈도우 7 의 새로운 무기 - 가상 디스크란 무엇인가?
내 컴퓨터의 새로운 디스크 - 가상 디스크의 생성과 관리
파티션(볼륨) 관리
내 파티션(볼륨)을 나타내는 이름 - 드라이브 문자의 관리
내 파티션(볼륨)에 접근하는 다른 방법 - 드라이브 경로의 관리
내 파티션(볼륨)에 예쁜 꼬리표를 - 레이블 수정
번외편1 - 윈도우 7 에서 사용되는 파일 시스템들(File System) - 포맷 유형
번외편2 - '팩 이름이 잘못되었습니다' 에러에 대한 고찰
번외편3 - ???
파일 시스템과 포맷이란?
파일 시스템(File System)을 쉽게 표현하자면 저장 장치에 데이터를 기록하고 사용하기 위한 일종의 규칙입니다. 파일 시스템은 저장 장치에 데이터 즉, 파일의 이름을 지정하고, 저장하고, 읽고, 검색하는 등의 파일을 기록하고 사용하는 모든 작업의 조직적인 체제라고 할 수 있습니다. 즉, 파일 시스템은 저장 장치에 데이터를 기록하고 사용하기 위한 기초적인 밑바탕을 그리는 것 입니다.
이러한 파일 시스템은 저장 장치에 따라 또는 운영체제에 따라 수 많은 종류가 있습니다. 플로피 디스켓을 위한 FAT12, CD/DVD 와 같은 광학 미디어를 위한 ISO 9660, UDF, 윈도우의 FAT16, FAT32, exFAT, NTFS, 리눅스의 ext2, ext3, ext4, XFS, JFX, ReiserFS, 솔라리스의 UFS, VxFS, QFS, ZFS, 맥 OS X 의 HFS, HFS Plus, 등이 모두 파일 시스템의 한 종류들 입니다.
한 가지 초보 분들을 위해 파일 시스템에 대해 반드시 짚고 넘어가야할 문제가 있습니다. 데이터, 즉, 파일은 바뀌지 않습니다. 단지 이러한 파일을 저장 장치에 어떻게 저장할 것인가? 어디에 위치시키고 읽고 쓰는데 어떠한 규칙을 적용할 것인가? 를 결정하는 것이 바로 파일 시스템인 것 입니다. ISO 9660 또는 UDF 라는 파일 시스템에 저장되어 CD 의 데이터를 NTFS 라는 파일 시스템인 D: 드라이브로 복사하여도 파일은 변하지 않는 것을 상기해 보시면 이해가 빠르실 겁니다.
저장 장치에 이러한 파일 시스템을 구축하는 작업을 바로 포맷(Format) 이라고 합니다. 즉, NTFS 로 포맷을 한다는 말은 해당 저장 장치에 데이터를 저장하기 위해 저장 장치에 NTFS 라는 파일 시스템을 구축한다는 것과 같습니다.
저장 장치는 이렇게 데이터를 기록하고 보관하고 사용하기 위한 파일 시스템이라는 체제를 구축해야지만 비로소 데이터를 저장하고 읽을 수 있습니다. 그리하여 이러한 파일 시스템을 구축하는 작업인 포맷은 저장 장치를 저장 장치로써 사용하기 위한 가장 기초적인 작업 중의 하나라고 할 수 있습니다.
이제 파일 시스템과 포맷이 정확히 무엇인지 아시겠나요? 이 글에서는 이 수 많은 파일 시스템들 중 윈도우 7 의 디스크에서 사용되는 FAT32 와 exFAT 그리고 NTFS 에 대해서 알아보도록 하겠습니다.
FAT32, exFAT, NTFS
File Allocation Table(FAT)
FAT32 와 exFAT 는 File Allocation Table(파일 할당 테이블) 이라는 파일 시스템 종류입니다. 도스부터 사용되어 플로피를 위한 FAT12 부터 FAT16 과 FAT32, exFAT(Extended FAT, FAT64) 까지 발전을 하였습니다. FAT12 부터 따지면 30 년이 넘은 파일 시스템 입니다. 여기에서 FAT 뒤에 붙은 각각의 숫자는 비트를 의미합니다. 즉, FAT16 은 16 비트, FAT32 는 32 비트, exFAT(FAT64) 는 64 비트를 의미합니다.
FAT 파일 시스템은 굉장히 오래된 파일 시스템이며 점차 개량되어 발전해왔기 때문에 NTFS 와 같이 권한 관리나 보안과 같은 부가적인 기능이 없습니다. 그래서 굉장히 단순하고 이로 인해 속도적인 측면에서는 NTFS 보다 빠른 장점이 있습니다.(뭔 기능이 있어야지) 하지만 디스크에 저장된 파일의 개수가 늘어나면 NTFS 보다 떨어지는 검색 능력으로 인해 오히려 느려지는 모습을 보입니다. 아무튼 이러한 이유로 인해 윈도우 7 은 FAT 방식으로 포맷된 볼륨으로의 설치를 아예 지원하지 않고 있습니다.
아무튼 단순하기 때문에 파일의 개수가 그리 많지 않고 조금이라도 빠른 성능을 위해 파워 유저들의 경우 다운로드 전용으로 사용하는 볼륨에 FAT 파일 시스템을 사용하기도 합니다. 또한 오래된 파일 시스템이기 때문에 그만큼 지원하는 운영체제가 많고 이로 인해 이동형 저장 매체의 경우 호환성을 위해 일부러 FAT32 로 포맷하기도 합니다.
현재는 기존까지 사용하던 FAT32 의 한계와(최대 인식 가능 파일의 크기 4GB 와 같은) 속도 등을 개선한 exFAT 까지 발전을 하였습니다. 하지만 exFAT 의 경우 NTFS 보다 오히려 하위 운영체제에서의 지원이 좋지 않고 나온지 얼마 되지 않았기 때문에 아직까진 많이 사용되진 않습니다.
New Technology File System(NT File System, NTFS)
윈도우 NT 3.1 부터 사용된 NT 커널의 기본 파일 시스템입니다. 1993 년 7 월에 등장한 파일 시스템으로 비교적 최신의 파일 시스템이라고 할 수 있습니다. NT 즉, 서버에서 사용하기 위해 등장한 파일 시스템이기 때문에 권한 관리, 보안 설정과 같은 FAT 파일 시스템에 비해 좀 더 진보된 기능들을 포함하고 있습니다.
이러한 NTFS 의 핵심은 MFT(Master File Table) 라는 것에 있습니다. FAT 의 File Allocation Table 과 비슷한 것으로 파일의 이름, 권한, 크기, 파일이 사용하는 클러스터 번호, 디렉토리 트리 구조 등을 기록한 거대한 DB 라고 생각하시면 됩니다. 이러한 MFT 는 NTFS 의 모든 것이라고 할 만큼 중요하기 때문에 NTFS 파일 시스템으로 포맷한 순간 일정 공간을 전용으로 할당 받아 일반 파일이 해당 공간에 기록되지 않게 함으로써 단편화를 막고 있습니다.
하지만 MFT 가 꽉차거나 또는 일반 데이터 영역이 꽉찬 경우 어쩔 수 없이 서로의 영역을 침범하여 정보를 기록하게 되는데 아무튼 이 때 부터 MFT 의 단편화가 시작되고 MFT 의 단편화는 NTFS 의 재앙이라고 부를 수 있을 만큼 NTFS 의 엄청난 성능 하락을 가져오기 때문에 NTFS 를 사용하는 경우 MFT 의 단편화는 무슨 수를 쓰더라도 막는 것이 좋습니다. NTFS 로 포맷된 볼륨은 보통 남은 용량이 10% 이하로 내려가는 순간부터 MFT 의 단편화가 일어난다고 보는게 좋으므로 볼륨 전체의 여유 공간을 최소 10% 정도는 남겨 두는게 좋습니다.
NTFS 의 볼륨의 크기는 클러스터의 크기에 따라 최소 2 TB(테라바이트) 부터 256 TB 까지 지원을 하고 있으며(이론적으로 최대 1 YB(요타바이트)) 지원하는 단일 파일의 최대 크기는 256 TB (이론적으론 16 EB(엑사바이트)) 로 충분히 여유롭다고 할 수 있습니다.
이러한 NTFS 는 윈도우 7 의 기본 파일 시스템으로 마이크로소프트사에서는 기본적으로 FAT 파일 시스템보단 NTFS 파일 시스템을 사용할 것을 권고하고 있습니다.
FAT16, FAT32, exFAT, NTFS 의 비교
어째 FAT 와 NTFS 에 대한 설명이 상당히 단촐한 것 같은데 위와 같은 파일 시스템들을 구조까지 모두 설명할 필요는 없을 것이라 생각합니다.(그 많은 자료 찾을려면 저도 죽습니다.) 또한 들어가기 시작하면 밑도 끝도 없는 분야이기 때문에 -_-; 꼭 원하시는 분들은 인터넷에 정보가 널려있고 책도 많으니 찾아서 배워보시길 바랍니다. ^^
아무튼 이 포스팅의 목적은 파일 시스템이란 무엇인지 그리고 윈도우 7 에서 사용되는 파일 시스템들에 대한 비교를 주 목적으로 하는 것이기 때문에 이해해 주시기 바랍니다. 그럼 FA16 과 FAT32, exFAT, NTFS 의 주요한 내용들을 비교한 표를 제공해 드리도록 하겠습니다.
FAT16 | FAT32 | NTFS | exFAT(FAT63) | |
---|---|---|---|---|
기초 정보 | ||||
개발사 |
Microsoft |
|||
전체 이름 | File Allocation Table 16-bit Version | File Allocation Table 32-bit Version | New Technology File system | Extended File Allocation Table |
도입 시기 | 1987년 11월 Compaq DOS 3.31 |
1996년 8월 Windows 95 OSR2 |
1993년 7월 Windows NT 3.1 |
2006년 11월 Windows Embedded CE 6.0 |
파티션 식별자 | 0x04, 0x06, 0x0E | 0x0B, 0x0C | 0x07 | 0x07 |
구조 | ||||
디렉토리 구조 | Table | Table | B+ Tree | Table |
파일 할당 | Linked List | Linked List | Bitmap | Bitmap, Linked List |
배드 섹터 블록 | Cluster Tagging | Cluster Tagging | $badclus | Cluster Tagging |
한계 | ||||
최대 파일 크기 | 4 GB | 4 GB | 16 TB 16 EB |
127 PB |
최대 파일 개수 | 65,536 개 |
4,177,920 개 |
4,294,967,295 개 | 디렉토리당 2,796,202 개 65,536 디렉토리 |
최대 클러스터 개수 | 216 - 19 개 | 228 - 19 개 | 264 - 19 개 | 자료 없음 |
최대 파일 이름 길이 | 255 자 UTF-16(LFN) | 255 자 UTF-16(LFN) | 255 자 UTF-16 | 255 자 UTF-16 |
최대 볼륨 크기 | 2 GB 4 GB with 64 KB Cluster |
2TB 8TB with 32 KB Cluster 16TB with 64 KB cluster |
256 TB 1 YB with 64KB Cluster |
512 TB 64 ZB |
기능 | ||||
날짜 기록 | 생성, 수정, 접근 | 생성, 수정, 접근 | 생성, 수정, 접근, POSIX Change | 생성, 수정, 접근 |
날짜 기간 | 1980년 1월 1일부터 2107년 12월 31일까지 |
1980년 1월 1일부터 2107년 12월 31일까지 |
1601년 1월 1일부터 60056년 5월 28일까지 |
1980년 1월 1일부터 2107년 12월 31일까지 |
시간 단위 | 2 초 | 2 초 | 100 ns | 10 ms |
Fork | No nativery | No nativery | Yes | Yes |
속성 | 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관 | 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관 | 읽기 전용, 숨김, 시스템, 서브디렉토리, 보관, 오프라인, 임시, 압축, not content indexed | 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관 |
권한 | 없음 | 없음 | ACLs | ACL |
압축 | 볼륨 단위 - DoubleSpace,DriveSpace | 없음 | 파일 단위 LZ77(Windows NT3.1 부터 지원) |
없음 |
암호화 | 없음 | 없음 | 파일 단위 DESX(Windows 2000 부터 지원) Triple DES(Widnwos XP 부터 지원) AES(Widnwos XP SP1, Widnwos Server 2003 부터 지원) |
없음 |
지원 운영체제 | MS-DOS, 모든 Windows | MS-DOS, Windwos 95 OSR2 이후 모든 Windows | Widnwos NT 3.1 Windows NT 4.0 Windwos 2000 Windows XP Windows Server 2003 Windwos Vista Windows Server 2008 Windows 7 Windows Server 2008 R2 |
Windows Embedded CE 6.0 Windows XP SP2(관련 업데이트 설치 후) Windwos Server 2003 SP2(관련 업데이트 설치 후) Windows Vista SP1 Windows Server 2008 Windows 7 Windows Server 2008 R2 |
한계 항목은 클러스터 크기에 따라 한계치가 달라지므로 기본적인 지원과 최대 한계치 까지를 모두 표시하였습니다. 또한 내용 중 구조와 기능은 전문적인 내용이 많으므로 관련 내용은 직접 검색하여 찾아보시는 게 좋습니다. 표의 근거로 삼은 자료는 아래와 같습니다. 관심이 있으신 분들은 해당 내용을 보시고 관련 내용은 다시 검색하시어 찾으셔서 보시면 많은 도움이 되실겁니다.
http://en.wikipedia.org/wiki/File_Allocation_Table
http://en.wikipedia.org/wiki/Ntfs
http://en.wikipedia.org/wiki/ExFAT
http://technet.microsoft.com/en-us/library/bb457112.aspx
FAT 패밀리와 NTFS 에 대한 비교는 여기까지 입니다.
일반 포맷과 빠른 포맷의 차이, 그리고 데이터의 복구
포맷의 종류에는 일반 포맷과 빠른 포맷이 있습니다. 제가 몇 년에 걸쳐 수 많은 질문들 속에서 일반 포맷과 빠른 포맷의 차이에 대한 질문을 받았고 포맷을 하고 난 후 데이터를 복구할 수 있는지에 대한 질문도 많이 받았고 그에 대한 답변을 드렸는데요. 여전히 많은 분들이 가끔 이 질문을 다시 하시곤 합니다. 도대체 일반 포맷과 빠른 포맷의 차이가 무엇이고 데이터를 복구할 수 있는 이유가 뭐고 어떠한 파일은 왜 복구가 되지 않는지 말이죠. 여기서 그냥 다 답변을 드리겠습니다.
포맷이란 무엇이라고 했죠? 저장 장치에(여기선 디스크로 통칭하죠) 데이터를 기록하기 위한 초석인 파일 시스템을 구축하는(설치하는) 작업이라고 말씀을 드렸습니다. 또한 파일 시스템은 데이터를 저장하고 사용하기 위한 체제라고 말씀드렸죠?
빠른 포맷이란 단순히 기존의 파일 시스템에 대한 정보를 제거하고 새로 파일 시스템만을 구축하는 작업이고 일반 포맷이란 여기에 더해 모든 저장 영역을 0 으로 기록하는 과정을 통해 저장 영역에 무슨 문제는 없는지 확인하는 과정이 추가되는 것 입니다.
그래서 빠른 포맷은 파일 시스템만 갈아 엎고 다시 구축하면 되기에 빠르고 일반 포맷은 모든 저장 영역에 0 이라는 데이터를 빠짐없이 기록하는 과정을 거치기 때문에 시간이 오래 걸리는 것 입니다. 저장 영역이 굳이 테라급으로 넘어가지 않더라도 몇 백 기가를 넘어가면 시간이 굉장히 오래 걸리는 것은 바로 이러한 이유 때문입니다. 그래서 특별히 문제가 없는 디스크는 보통 빠른 포맷을 선호하고 있습니다.
파일 시스템엔 해당 디스크에 저장되어 있는 모든 파일들에 대한 정보가 담겨 있습니다. 해당 파일의 이름은 무엇인지? 언제 작성된 파일인지? 해당 파일은 어떤 디렉토리에(폴더에) 위치해 있는지, 해당 파일에 엑세스하기 위해선 실제 디스크의 어느 위치로 가야하는지 등의 모든 정보가 담겨 있습니다. 그래서 이러한 파일 시스템을 갈아 엎고 새로 구축하면 디스크는 데이터가 저장되어 있지 않은 상태 즉, 비어있는 상태로 인식이 되는 겁니다. 그래서 빠른 포맷을 하든 일반 포맷을 하든 포맷을 하면 디스크의 모든 자료가 지워지는 것 입니다.
그런데 빠른 포맷은 기존의 파일 시스템을 제거하고 다시 새로 파일 시스템을 구축하는 작업만 한다고 했죠? 이로 인해 사용 중이던 디스크를 빠른 포맷한 경우 해당 파일로 접근하기 위한 모든 정보가 사라져 버렸을 뿐 일반 포맷처럼 디스크의 모든 영역을 0 으로 기록하는 과정을 하지 않았기 때문에 파일 시스템에선 디스크가 비어 있는 것으로 인식할 뿐 실제론 디스크엔 아직 파일이 남아 있게 됩니다. 그저 새로운 파일을 기록하면 기존의 파일 위에 그냥 덮어쓸 뿐이죠.
빠른 포맷을 한 직후라면 사실상 기존의 파일은 그대로 남아있는 상태이기 때문에 현재의 파일 시스템을 거치지 않고 직접 파일이 저장된 디스크의 실제 위치로 이동을 하면 데이터 즉, 기존의 파일을 읽을 수 있습니다. 근데 이러한 파일이 정확히 어떠한 위치에 있는지 사실 알 수는 없습니다. 그래서 디스크의 모든 공간을 처음부터 일일히 조사하면서 기록된 데이터를 찾게 됩니다. 이러한 작업을 하는게 바로 Final Data 와 같은 파일 복구 프로그램입니다.
그런데 새로운 파일을 기록하면 기존의 데이터 위에 그냥 바로 덮어쓴다고 했죠? 그래서! 이렇게 새로운 파일로 덮어씌워진 파일은 정말로 삭제된 것이기 때문에 일반적인 파일 복구 프로그램으로도 복구를 할 수 없게 되는 겁니다. 그래서 만약 실수로 어떤 디스크를 포맷하였고 모두 온전히 복구하기를 원한다면 해당 디스크를 사용하는 행위를(새로운 파일을 복사해 넣는다던지) 절대 하지 말라고 하는 것 입니다.
일반 포맷을 하면 저장 영역의 모든 공간을 0 으로 기록하는(0 도 데이터니 데이터를 기록하는 것 입니다.) 과정을 거치기 때문에 사실상 일반적인 파일 복구 프로그램으로는 기존의 파일을 복구할 수 없게 됩니다. 이럴 때는 전문적인 장비를 가진 복구 업체에 의뢰해서 전문적인 장비와 기술을 동원해야만 겨우 데이터를 복구할 수 있습니다. 디스크에 남겨진 기존의 흔적을 찾아 복구하는 것이기 때문에 이마저도 완벽하진 않아 복구가 불가능한 경우도 있습니다.
아무튼 요즘 기술은 현재 데이터 이전에 남아있던 기존의 데이터의 흔적까지 찾는 수준이라 복구를 하긴 하지만 완벽하다고는 할 수 없으며 그에 대한 시간과 장비와 기술이 복합적으로 들어가기 때문에 용량당 몇 십에서 몇 백이 들 수도 있습니다.
좀 주제가 벗어나긴 하지만 그래서 미 국방부에선 기밀 데이터를 파괴하기 위한 규격인 DoD 5220.22-M 이라는 데이터 삭제 규격도 있습니다. 총 7 번의 여러가지 다른 데이터의 재기록을 통해 흔적을 통한 복구까지 원천적으로 봉쇄하기 위한 작업입니다. 근데 굉장히 오래 걸리죠. (데이터 파괴의 가장 최종 단계는 용해입니다. 녹여버리는거죠. -_-a 복구할테면 해보세요.) 관심 있으신 분들은 GDisk 에서 한 번 다루었으니 아래의 글을 참고해 보세요.
지디스크(GDisk)로 데이터 복구 불능 상태로 파티션 삭제하기
지디스크(GDisk)로 데이터 복구 불능 상태로 디스크 전체 내용 삭제하기
앞으론 이 내용으로 질문이 올라오면 무조건 이 글을 링크로 걸도록 하겠습니다. -_-a
클러스터(Cluster)란?
포맷을 할 때 필수적으로 보게되는 클러스터(Cluster) 란 것에 대해서 이야기를 해보도록 하겠습니다. 우리가 사용하는 디스크는 지 맘대로 데이터를 저장하는 것이 아닙니다. 디스크에도 데이터를 저장하고 관리하기 위한 일종의 체계가 있습니다. 디스크에도 일정한 구역이 있는데 플래터(Platter), 헤드(Head), 트랙(Track), 섹터(Sector) 로써 그 구역이 나누어집니다. 또한 이러한 위치를 나타내기 위한 주소 체계가 있는데 이를 CHS(Cylinder-Head-Sector) 주소 체계라고 부릅니다.(MBR 디스크에서도 한 번 잠깐 나왔죠 ^^)
뭐 지금은 디스크의 구조에 대한 포스팅이 아니기 때문에 여기까지만 하고(굳이 알 필요도 없고) 아무튼 디스크에서 사용하는 최소의 저장 단위는 바로 섹터(Sector) 입니다. 이러한 1 섹터의 크기는 512 Byte 입니다. 요거만 아시면 됩니다. 왜 512 Byte 인지는 저에게 묻지 마세요. 만든 놈들이 그렇게 만들었으니까요.
초기엔 요걸 그대로 썼습니다. 즉, 자료 저장의 최소 단위는 512 Byte 였던 거죠. 근데 문제가 하나 있었습니다. 지금은 64 bit 시대지만 과거엔 8 bit, 16 bit 시대였습니다. 8 bit 는 너무 멀리 갔고 16 bit 시절로만 따져도 컴퓨터가 인식할 수 있는 한계는 216 = 65,536 이 전부였습니다.
디스크의 최소 저장 단위는 512 Byte 라고 했죠? 디스크에 데이터를 쓰고 읽기 위해선 파일을 어디에 쓸건지 어디에 위치해 있는지 알 수 있는 그 주소가 필요합니다. 그럼 16 bit 에서 인식할 수 있는 주소의 한계는 65,536 개가 전부입니다. 그래서 16 bit 인 FAT16 에서 인식하고 사용할 수 있는 디스크의 최대 크기는 512 * 65,536 = 33,554,432 Byte = 32MB 가 전부 입니다.
32 MB 그 때 당시엔 모든 걸 담을 수 있을 만큼 거대한 용량이었지만 지금은 참 한심한 용량이죠. 근데 하드 디스크가 점점 발달하면서 정말로 40 MB 가 넘는 거대한(?) 디스크들이 나오기 시작합니다. 16 bit 에선 인식할 수 있는 용량의 한계가 32 MB 뿐인데 미치고 환장할 노릇이죠.
그래서 해결책으로 내 놓은 해결 방안이 바로 섹터 여러 개를 하나로 묶어 클러스터라 하고 이를 운영체제에서 사용하는 데이터 저장의 최소 단위로 사용하자! 였습니다. 즉, 65,536 이라는 주소를 섹터 하나 하나에 모두 지정해서 사용할 경우 32 MB 가 한계이니 차라리 이러한 섹터를 여러 개를 묶어 이를 클러스터라 하고 이를 최소 저장 단위로(주소 지정 단위로) 사용하는 개념인 것입니다. 8 개의 섹터를 하나로 묶으면 4096 Byte(4 KB) 클러스터, 16 개의 섹터를 하나로 묶으면 8192 Bye(8 KB) 클러스터가 되는 것 입니다.
이렇게 클러스터가 운영체제의 최소 저장 단위로 하면서 인식하여 사용할 수 있는 디스크의 한계 크기를 극복한 것 입니다. 그래서 클러스터를 4 KB 로 하면 4096 * 65,536 = 268,435,456 Byte = 256 MB, 클러스터를 32 KB 로 하면 32,768 * 65,536 = 2147483648 Byte = 2 GB 가 되는 것 입니다. FAT16 의 경우 32 KB 사이즈의 클러스터까지 지원을 하기 때문에 그래서 한계 용량이 2 GB 가 되는 것 입니다. 물론 64 KB 의 클러스터를 사용하여 4 GB 지원을 하기도 하지만 도스에선 지원을 안 해서 사용이 안 되었죠.
근데 클러스터를 사용하면서 문제가 하나 발생했습니다. 디스크의 최소 저장 단위인 섹터와 운영체제의 최소 저장 단위인 클러스터의 크기에서 차이가 발생하면서 버려지는 공간이 늘어나 버린 겁니다. 즉, 1 KB 짜리 파일을 하나 저장한다면 디스크의 최소 저장 단위인 섹터에선 512 Byte 섹터 두 개를 사용하여 버리는 용량이 없는 것에 반해(물론 파일의 크기가 더 작다면 섹터에서도 버려지는 공간은 분명 있습니다.) 4 KB 의 클러스터를 사용할 경우 나머지 3 KB 는 쓰지 못하고 버리는 용량이 되어 버린 것 입니다. 만약 32 KB 라면 무려 33 KB 를 버리고 사용하지 못하게 되는 것이죠. 물론 파일의 용량이 큰 경우엔 이렇게 버려지는 용량이 미미하지만 작은 파일을 다수 저장하는 경우엔 이게 좀 문제가 됩니다.
또한 얻은 이점도 있습니다. 클러스터로 인해 해당 파일을 기록하고 찾는데 더 적은 수의 주소가 필요하게 된 것이죠. 즉, 좀 더 간결하게 주소를 관리할 수 있게 된 것 입니다. 이로 인해 파일을 기록하고 찾는 작업에서는 좀 더 적은 수의 주소로 인해 좀 더 빨리 기록하고 찾을 수 있게 된 것이죠.
이러한 클러스터의 크기는 양날의 검 입니다. NTFS 에선 이러한 한계를 극복하기 위해 좀 더 고급적인 클러스터 관리 기술을 사용하여 덜 하지만 FAT 패밀리에선 이 차이가 명확하게 들어납니다. 그래서 포맷을 할 때 이러한 지식없이 클러스터 크기를 수동으로 지정하지 말고 그냥 윈도우가 권장하는 기본 값으로 사용하라는 게 그러한 이유입니다. 아무튼 클러스터에 대한 내용은 이쯤에서 마치겠습니다.
그림 하나 없이 재미없는 글을 끝까지 읽어주셔서 감사합니다. 어떻게 본 글보다 번외편 글 쓰는게 더 힘든지;;; 아무튼 이 포스팅은 여기까지 입니다. ^ㅡ^*
윈도우 7 의 디스크 관리 - Disk Management
내 디스크는 내가 관리한다 - 디스크 관리의 시작잠깐만! - 윈도우 7 에서 사용되는 디스크의 종류와 개념을 정리해보자
기본 디스크 관리
나 새 디스크 샀다! - 새로운 디스크의 인식과 기본 디스크로의 초기화
디스크의 구획 정리 - 디스크에 새로운 파티션을 생성하는 방법
비움 그것은 채움의 시작 - 필요 없어진 파티션을 삭제하는 방법
잠깐만! - 파티션의 확장과 축소에 관한 조건과 규칙
2% 부족할 때 - 공간이 부족한 파티션의 크기를 확장하는 방법
큰 옷을 수선하듯 - 너무 큰 파티션의 크기를 축소하는 방법
부팅의 첫 관문 - 활성 파티션이란? 바꾸는 방법과 윈도우의 변화
동적 디스크 관리
잠깐만! - 레이드의 종류와 기본 개념들 그리고 동적 디스크
바꿔주세요! - 동적 디스크로의 초기화와 기본 디스크에서의 변환
단순함의 미학 - 단순 볼륨의 생성과 관리
난 부족해! 묶어줘! - 스팬 볼륨의 생성과 관리
좀 더 빠른 디스크 성능을 위하여 - 스트라이프 볼륨의 생성과 관리
'이중으로 걷는 자' 데이터의 도펠갱어 - 미러 볼륨의 생성과 관리
데이터의 무결성을 위하여 - RAID-5 볼륨의 생성과 관리
가상 디스크(VHD) 관리
무에서 유를 창조하는 기술, 윈도우 7 의 새로운 무기 - 가상 디스크란 무엇인가?
내 컴퓨터의 새로운 디스크 - 가상 디스크의 생성과 관리
파티션(볼륨) 관리
내 파티션(볼륨)을 나타내는 이름 - 드라이브 문자의 관리
내 파티션(볼륨)에 접근하는 다른 방법 - 드라이브 경로의 관리
내 파티션(볼륨)에 예쁜 꼬리표를 - 레이블 수정
번외편1 - 윈도우 7 에서 사용되는 파일 시스템들(File System) - 포맷 유형
번외편2 - '팩 이름이 잘못되었습니다' 에러에 대한 고찰
번외편3 - ???