본문 바로가기

Job Notes/File System

[펌] FAT

 

 

(File Allocation Table)

- FAT는 디스크 포맷을 일컫는 말로 하드 디스크상의 저장 공간을 구성하는 방법이다. 이 테이블은 하드 디스크에 있는 파일에 대한 정보를 구성하여 각 파일을 한 파일의 각 부분이 어디에 위치하는지를 구분해주는 일련의 번호로 표시한다. FAT자체는 책의 제목과 비슷해서 운영체제가 이것을 보고 파일이 하드 디스크에 어느 클로스터에 기록되어 있는지 찾는다.

- FAT는 대부분의 운영체제가 읽을 수 있기 때문에 인지도 가 가장 높은 디스크 포맷일 것이다. MS는 원래 플로피 디스크에 있는 파일들을 관리하려고  FAT를 만들었지만 이것을 MS-DOS에 있는 파일과 디스크를 관리하는 표준으로 채택했다.  플로피 디스크와 16bit보다 작은 논리적인 드라이브를 관리하는데 12bit FAT가 처음 사용되었고, MS-DOS버전3.0이 그보다 용량이 큰 드라이브용으로 16bit FAT를 도입하였다.


- FAT32는 FAT16의 기능을 훨씬 앞선 것이다. 이것의 가장 획기적인 기능은 크기가 최대 2Terabyte가 되는 드라이브를 지원한다. 또 FAT32는 사용되지 않는 공간을 줄여 용량이 큰 드라이브에 있는 클러스터 크기를 줄인다. 예를 들어, FAT16을 사용하면 2GB드라이브는 32KB클러스터 크기를 갖게 되지만 같은 크기의 드라이브에 FAT32를 사용하면 4KB의 클러스터를 갖게 된다.

- 기존 프로그램, 네트워크 , 장치 드라이버와의 호환성을 유지하기 위해 FAT32는 윈도우98에 대한 기존의 아키텍처나 내부 데이터 구조, API, 디스크 포맷 등을 거의 그대로 유지하고 있다.

- 그래도 다른 점이 있다면 이제는 클러스터 값과 내부 그리고 디스크의 데이터 구조를 저장하는데 4byte가 필요하게 되었고 출시된 API도 확장되었다는 것이다. 몇몇 경우에는 기존 API가 FAT32에서 작동하지 못하게 함으로써 기존 API를 사용하는 구형 디스크 유틸리티가 FAT32 드라이브를 손상시키지 못하도록 하였다. 그러나 프로그램 대부분은 이러한 변경사항에 아무런 영향도 받지 않을 것이다. 기존 툴과 드라이버는 FAT32드라이브에서 계속 작동한다. 하지만 MS-DOS블록 장치 드라이버와 디스크 툴은 FAT32드라이버 를 지원하는지 확인해 보아야 한다.

- 프로그램이 50% 빠르게  로드된다. FAT32의 작은 클러스터 크기 때문에 새롭게 개선된 디스크 조각 모음기를 로드할 때 필요한 응용프로그램과 지원 파일 부분을 최적으로 위치시킨다.

- FAT16은 MS가 아닌 운영체제와도 호환이 가능하기 때문에 여전히 사용이 가능하다.

- FAT32의 가장 큰 장점은 용량이 큰 디스크에서 16bit FAT보다 효율적이라는 것과 다중 파티션을 사용하지 않고도  2GB나 되는 디스크 드라이브를 지원할 수 있다는 것이다.

표1.  FAT16과 FAT32의 비교

FAT16

FAT32

대부분의 운영체제(MS-DOS,윈도우98,윈도우NT,OS/2,UNIX)가 이것을 사용하고 구현하도록 고안되었다.

현 상황에서 FAT32는 윈도우98과 윈도우95 OSR2에서만 사용할 수 있다.

256MB보다 작은 논리적인 드라이브에서는 속도나 저장 능력에 있어 효과적이다.

크기가 512MB이하인 드라이브는 FAT32가 지원하지 않는다.

디스크 공간 늘림과 같은 디스크 압축이 지원된다.

FAT32는 디스크 압축지원을 지원하지않는다.

각 클러스터가 논리적인 드라이브에 맞게 크기가 정해져 있으면 FAT16의 크기는65,525,클러스터로 제한된다. 클러스터의 양과 클러스터의 크기가 최대(32MB)에 다다랐을 경우 드라이브의 최대 용량은 2GB이다.

FAT32는 x클러스터를 허용하기 때문에 32KB클러스터 크기 제한을 고려하면 드라이브의 크기는 최대 2Terabyte까지 지원

 

표2. FAT16 - FAT32의 클러스터 크기

드라이브 크기

FAT16클러스터 크기

FAT32클러스터 크기

256MB  ~ 511MB

8KB

지원되지 않음

512MB  ~ 1023MB

16KB

  4KB

1024MB~ 2GB

32KB

  4KB

2GB     ~ 8GB

지원되지 않음

  4KB

8GB     ~ 16GB

지원되지 않음

  8KB

16GB   ~ 32GB

지원되지 않음

16KB

>32GB

지원되지 않음

32KB0

 FAT16은 클러스터가 32kb를 차지하지만 FAT32는 클러스터의 크기가 4kb밖에 되지 않아 하드디스크의 공간을 절약함

 

[ex] FAT16

2GB : (32) X (16bit) X K =  2^5 X 2^16 X 2^10 = 2 ^ 31 = 2 X 2^10 X 2^10 X 2^10 = 2 X K ^3 = 2GB


FAT16과32

FAT(File Allocation Table)란?하드디스크의 저장방식을 말하며, 하드디스크의 섹터가 너무 작아서 저장하는데 효율적이지못해서 이 섹터를 묶은게 클러스터 입니다.  FAT16과 FAT32가 있으며, FAT 단위는 클러스터이다.
현재는 FAT32를 쓰는데, 이유는 2G이상의 하드디스크를 대부분 쓰며, 하드디스크 공간을 더 절약할수 있기때문이다.

DOS는 IBM PC가 나올 때부터 같이 나온 OS이다. 따라서 모든 IBM PC호환 컴퓨터와 각종 S/W에 사용될 수 있도록 범용성이 보장되어야 했다. 따라서 하드디스크를 사용할 때 FAT16이란 방식을 고안해 냈다. 이는 하드디스크를 클러스터란 단위로 나눠서 관리하는 방식이다. 16이란 이름이 붙은 이유는 이 클러스터의 조각 단위가 총 65536(실제로는 이것보다 적다)개의 조각까지 나눠서 사용이 가능하기 때문이다. 현재의 FAT16은 DOS 4.0에서부 터 정해진 방식으로 사용되어지고 있다. 이 방식은 클러스터의 크기를 다음과 같이 정하고 있다. DOS에서는 한 파티션의 크기가 2GB이상을 넘을 수는 없다.(단 Windows NT에서 FAT16으로 포맷할 경우 최고 4GB까지도 가능하다.)
아래는 FAT16일때 하드디스크 용량에 따른 클러스터의 크기를 보여주고 있다.
즉 512MB의 하드디스크라면 하드디스크에 저장하는 단위는 8KB로 이보다 적은것 들도 무조건 8KB로 저장된다.

파티션의 크기

클러스터의 크기

128MB

2KB

256MB

4KB

512MB

8KB

1GB

16KB

2GB

32KB

새로운 FAT32는 기존의 FAT16에서 불가능했던 것들과 몇몇 비효율적인 것들을 해결한 것이다. 그러나 기본적 인 사용 방식은 FAT16과 다르지 않다. FAT32를 사용하기 위해서는 Windows 95 OSR2 버전(950B)을 갖고 있어야 한다. 또한 이 FAT32는 기존 DOS에서는 사용이 불가능하므로 OSR2를 사용해서 FAT32를 사용할 때는 반드시 다른 시스템에서의 사용을 염두해 두어야 할 것이다.

FAT32에 와서 개선된 점은 먼저 파티션의 크기이다. 기존의 FAT16에서는 한 파티션의 크기는 2GB까지가 한계였는데 FAT32에 와서는 파티션의 한계는 거의 무한대로(4테라바이트까지 지원한다.) 지원이 가능해 졌다. 또한 이 전의 FAT16에서 한 클러스터의 크기가 다음과 같이 변화하였다.
 

파티션의 크기

클러스터의 크기

260MB

512B

8GB

4KB

16GB

8KB

32GB

16KB

32GB이상

32KB

위의 표와 같이 FAT32를 쓰는 것으로 하드디스크의 용량 손실을 크게 줄일 수 있게 되었다. 그러나 FAT32를 쓰게 됨으로써 호환성과 클러스터 관리로 약간의 속도 저하를 겪게 되었다. 중요한 것은 FAT32는 OSR2와 그 이후에 MS에서 나오는 OS에서만 사용이 가능하다는 것이다.(Linux에서는 지원 계획으로 듣고 있다.) 따라서 FAT32로 파티션을 잡고 포맷을 할 때 하위 버전과는 호환이 되지 않는다는 것을 기억해야 한다.

FAT32를 지원하는 OS

WINDOWS 95 OSR2 이후 버전
WINDOWS 98
WINDOWS 2000

 

FAT16, FAT32, HPFS, NTFS, NFS


1. FAT16

Windows 95이하에서 지원하는 화일 저장방식으로 클러스터 단위로 저장합니다. 전형적인 FAT16은 2기가 하드까지밖에  지원하지 못하며 후에 OSR2 등에서 2기가 하드 이상이 지원되는 것은 완전한 FAT32가 아니라 FAT16과 FAT32의 중간 어디쯤 인것으로 알고 있습니다. 1기가 하드 이하를 쓸 경우에는 그리 큰 문제가 없지만, 하드 디스크가 커질 경우에는클러스터 갭이 엄청나게 커집니다. 예를 들어, FAT에서 2기가 이던 파일을 NTFS로 옮기면 사실은 1.3기가밖에 되질 않습니다. 700메가는 말리는 셈입니다.2기가 하드 이상을 쓰고 있는 사람들이 이런 거대한 클러스터갭을 줄이기 위해서 하드를 2기가 이하로 조각조작 내서 사용하는 경우가 있는데 WINDOWS 95같이 거대한 OS의 경우에는  잘못된 생각입니다. WINDOWS95에 하드 캐시 페이징 파일을 잡을 수 있는 공간이 200메가 정도 있어야 시스템이 어느정도 안정적으로 돌아갈 수 있습니다. 즉, 시스템이 깔린 파티션은 가능한한 다른 프로그램을 설치하지 않고 그냥 두는 것이 낫습니다. 

2. FAT32

FAT16이 좀더 발전된 형태이고 클러스터갭이 FAT16보다는 획기적(?)으로 줄었다는 것은 어느정도 인정하지만 아직도 FAT이라는 울타리를 벗어나지 못하고 있는 저장방식입니다. FAT16이 32KB를 할당하는 반면 FAT32는 4KB를 할당합니다. 즉 클러스터갭이 1/8로 줄었다는 이야기입니다. 속도가 향상되었다고 주장하는데 FAT16의 저장방식과 비교해서 1/8로 줄어든 클러스터갭에서 연유한 것입니다. 이런 클러스터갭이 없는 아래에 설명한 화일 시스템에서는 속도가 훨씬 더 빠르다는 것을 실제 사용해보시면 느끼실 것입니다. 생각해보십시오.FAT16과 NTFS에서 화일을 카피할때 왜 30%이상 NTFS가 속도가 향상될지.

3. HPFS

OS/2에서 지원하는 화일 저장방식으로 FAT을 사용하지 않습니다.

4. NTFS

WINDOWS NT에서 지원하는 화일 저장방식으로 HPFS와 기능상 동일합니다. 저장방식은 클러스터가 아닌 섹터단위로 저장합니다. 따라서, 클러스터갭이란 개념은 더 이상 존재하지 않습니다. 만약에 6기가 대용량 하드를 사용하는 경우에 FAT으로 사용하신다면 사실은 4기가정도밖에 사용하지 못합니다. 하지만, HPFS나 NTFS로 사용하시면 6기가를 고스란히 모두 사용할 수 있습니다. 백업을 하신다구요? 그럼 심각히 고려해보십시오. 

5. NFS

유닉스에서 지원하는 저장방식으로 유닉스를 사용하시는분은 아마 익숙하실 것입니다. 예를들면, 하드가 두개일 경우에 위에 모든 화일 시스템은 C, D로 인식을 해야되지만, NFS의 경우에는 이 두개를 로지컬로 연결해서 하나처럼 사용할 수 있습니다. 유닉스의 경우에는 조각난 하드를 사용하는 것은 바보같은 짓입니다.또 그렇게 사용하는 사람도 없죠. 수백기가짜리 시스템에 D DRIVE가 있는 것을 보셨습니까? NT 5.0에서는 NFS를 지원한다고 알고 있습니다.얼마전에 모 NT 서버가 다운됐었는데 이유는 캐시가 저장되는 시스템이 깔린 드라이브에 공간이 부족해서 캐시를 잡을 수 없어서였다고 합니다.NFS를 사용하면  이런 문제가 없겠죠? 또 번거롭게 드라이브 문자를 지정해가면서 화일을 찾고 관리해야되는 문제도 없습니다. 사람들은 대부분 드라이브 문자를 바꾸는 것에 익숙해서 더 좋은 것이 있음에도 불구하고 바꾸지 않는 것이  지만말입니다.

 6. 안정성

WINDOWS95를 매주 새로 설치하는 사람에게 NT로 바꿔서 NTFS를 사용해보라고 하면 이상한 반응을 보입니다. 겁을 덜컥 집어먹고 바꾸지 않습니다.그리고 NT에서는 WINDOWS95용 프로그램이 돌아가지 않는다는 이상한 소문이 나돌기 때문이기도하죠. NT를 2.5에서부터 사용했었는데 NT 4.0이상을 사용할 경우에는 아직 NT에서 문제되는 프로그램을 보지 못햇습니다. 설령 문제가 되면 업그레이드된 버전을 사용하면 됩니다. 예를들어 아래아한글96의 경우에는 NT에서 설치하고 다시 제거를 할 경우에 레지스트리가 다 지워지지않아서 항상 이상한 메시지를 보냅니다.
하지만 아래아한글97은 전혀 문제가 없습니다. 과거에 NT에서 안돌아간다던 프로그램은 이미 업그레이드돼서 충분히 원하시는 프로그램을 사용할 수 있으리라 생각됩니다.단, NT를 사용하면서 MDIR같은 구식 도스 프로그램을 사용하시려는 분들에게는 감히 권하지 않습니다. NT를 설치하고 1년이상 시스템을 다시 깔지 않았습니다.
OS/2를 사용할때도 OS UPGRADE를 제외하면 시스템을 다시 깔지 않고 그대로 사용했습니다. 당연히 NTFS와 HPFS를 사용했습니다.일주일에 한번 WINDOWS95를 깔던 사람이 NT나 OS/2를 깔아놓고 일년간 프로그램 최신 버전만 받아서 업그레이드 시켜주는 일에 투자만 하면 되지 않을까요. 도스는 이제 사장됐다고 생각합니다. OS/2에는아직 도스가 남아있지만 NT에는 도스가 없다고 알고 있습니다. 도스 에뮬레이션정도?  그런데 NT에서 QUAKE2가 실행이 되더군요.

LINUX, UNIX를 일반 PC사용자가 사용하기엔 좀 무리가 있습니다....v


FAT32의 허와실

OSR2와 윈도우 98이 사용하는 파일 시스템인 FAT32의 장점과 잘못 알고 있는 기능들에 대해 소개하고 설치 방법과 사용 시 유의점에 대해 소개한다. FAT 32는 기존의 도스와 윈도우 95가 사용하던 FAT16에 비해 더욱 안정적이고 빠른 파일 시스템 구조를 자랑한다고 알고 있다. 하지만 대부분의 사용자는 이러한 사실을 아예 모르고 있거나 너무 신봉하는 경우가 허다하다. 이 FAT32의 실질적인 효과와 설치 방법을 알아보자.

1. FAT32의 실체

FAT(File Allocation Table)은 파일 할당 테이블로서 디스크에 존재하는 파일의 정보가 저장되어 있는 섹터들을 찾아볼 수 있도록 정보를 저장하고 있는 특수영역을 일컫는다. 기존에 도스와 윈도우3.1 그리고 윈도우 95는 FAT16이라는 파일 시스템을 사용했다. 이에 반해 윈도우95의 업그레이드 격인 OSR2와 1998년에 탄생될 윈도우98은 FAT16의 단점을 극복한 파일 시스템인 FAT32를 사용하고 있다. FAT32의 장점에 대해 살펴보자.

1.1. FAT32의 장점

일반적으로 FAT32는 FAT16에 비해하드디스크의 공간을 절약해주고 더욱 안정되고 빠른 시스템 성능을 얻을 수 있다고 믿어지고 있다. 하지만 막상 FAT32를 사용해보게 되면 이러한 신뢰가 여지없이 깨짐을 확인할 수가 있다. 이것은 사용자들이 FAT32에 대해 정확하게 알고 있지 못한데서 비롯된 것이다. FAT32가 주는 장점들에 대해 FAT16의 단점과 비교하며 살펴봄으로써 FAT32의 실질적인 장점에 대해 알아보자.

1.1.1. 공간절약

FAT32의 하드디스크의 효율적 사용을 언급할 때 일반적으로 "하드디스크에 데이터 기록단위를 4KB씩 잡는 FAT32는 FAT16에 비해 귀중한 하드디스크의 공간을 절약해준다." 라는 말을 한다. 그렇다면 FAT16은 데이터 기록단위로 어느 정도의 용량을 사용하는가? 그리고 데이터 기록단위와 하드디스크 낭비와는 어떠한 상관관계가 있는가?

① 클러스터 갭

FAT16은 하드디스크를 관리할 때 비트나 바이트 단위가 아닌 클러스터 단위로 관리를 한다. 그래서 만일 클러스터의 크기가 1024바이트라고 가정하면 파일의 크기가 1바이트이든 1000바이트이든 두 파일은 똑같이 1024바이트의 클러스터를 차지하게 된다. 그러므로 1바이트 파일과 1000바이트 파일은 똑같이 1024바이트의 공간을 차지하여 1바이트의 경우 1023바이트(1024-1)의 공간을 쓸데없이 과소비하게 되는 것이다. 그렇다면 1바이트의 간단한 파일이 5000개가 있다고 하자. 그러면 실제로는 용량이 5000바이트밖에 안되지만, 하드에 차지하게 되는 것은 5000×1024(바이트)=5.12메가를 차지하게 되는 것이다. 그러므로 이 때에는 5,115,000바이트(5,120,000-5,000) 즉 5.11메가 가량의 하드디스크가 낭비되는 꼴이 된다. 이러한 차이를 클러스터 갭이라 한다.

 - 하드디스크 과소비

FAT16을 사용하는 도스나 윈도우95는 클러스터 갭으로 인한 하드 공간의 낭비를 초래한다. 그렇다면 자신의 하드디스크에는 얼마만큼의 과소비가 진행되고 있는 것일까? 이것을 확인하기 위해 우선 Mdir이나 NCD등으로 디렉토리의 크기를 살펴보자. 각 항목 중에서 Size of files 라는 곳은 실제 파일이 차지하는 공간을 말하고 allocation space는 파일들이 하드디스크에서 차지하고 있는 공간을 말한다. 즉 "(Allocation Space) - (Size of Files)"의 값이 하드디스크의 과소비 공간이다. 하드디스크 전체의 낭비 공간을 알려면 루트 디렉토리에서 검사를 하면 된다. 시스템의 클러스터 크기를 알아보는 방법은 'chkdsk'를 실행해서 'each allocation unit'의 수치를 찾아보면 된다.

② FAT16의 데이터 기록단위 그렇다면 데이터 기록단위가 하드디스크의 낭비를 줄일 수 있는 중요한 수치임을 확인할 수 있을 것이다. 즉 데이터 기록단위가 작으면 작을 수록 그만큼 하드디스크의 과소비는 줄일 수가 있는 것이다.

하지만 무조건 FAT32의 데이터 기록단위가 FAT16에 비해 작은 것은 아니다. 다음의 표를 통해 FAT16이 사용하는 데이터 기록단위의 크기를 확인할 수 가 있다.

──────────────────

FAT16 - HDD 용량 Cluster 크기

32MB 이하 2KB
32MB~128MB 2KB
128MB~256MB 4KB
256MB~512MB 8KB
512MB~1GB 16KB
1GB~2GB 32KB
───────────────

FAT32 - HDD 용량 Cluster 크기

250MB이하 0.512KB
250MB~8GB 4KB
8GB~16GB 8KB
16GB~32GB 16KB
32GB이상 32KB

즉 256MB 이하의 저용량 하드디스크에서는 오히려 FAT16이 더 적은(2KB) 데이터 기록단위를 사용하기도 한다. 그러므로 이러한 경우는 FAT32보다 최소 클러스터 크기가 2KB적어 더 하드디스크 공간 활을 최적화 할 수가 있는 것이다. 그리고 주의할 것은 이러한 클러스터의 크기는 하드디스크의 물리적 용량이 아니라 논리적인 용량에 따른다는 것이다. 그러므로 1기가의 하드디스크라 할지라도 사용자가 100MB씩 분할해서 사용한다면 클러스터의 크기는 16KB가 아닌 2KB가 되는 것이다.

③ 선택! FAT32 vs FAT16

최근에 출시되는 하드디스크는 대개가 3GB 이상의 대용량을 자랑한다. 이러한 하드디스크를 논리적으로 분할하는 경우에도 그 분할의 크기는 최소 500MB 이상이다. 그러므로 일반적으로 1.2GB 이상의 하드

디스크를 분할하지 않고 사용할 때 기존의 FAT16 파티션으로는 최소 클러스터를 32KB로 이용하는 것이다. 그러므로 이 때에는 1KB의 파일만으로도 31KB를 낭비하게 되는 것이다. 또 비록 이 하드디스크를 분할해서 사용한다해도 256MB이하로 분할하지 않는 이상 8KB 혹은 16KB의 클러스터 크기로 4KB를 사용하는 FAT32에 비해 하드디스크의 공간낭비를 초래하게 된다. 그러므로 500MB 이하의 저용량 하드디스크를 사용하거나 250MB 이하의 용량으로 하드디스크를 논리적으로 분할해서 사용하는 경우에는 FAT16이 오히려 FAT32에 비해 보다 하드디스크 낭비를 줄일 수도 있는 것이다. 하지만 2기가 이상의 고용량의 하드디스크를 단일 드라이브로 사용하는 경우 FAT32는 하드디스크의 용량에 관계없이 클러스터 크기로 4KB를 사용함으로써 하드디스크의 공간을 최대한 효율적으로 이용할 수가 있다. 이처럼 FAT32는 2기가 이상의 하드디스크를 사용하는 경우 하드디스크의 공간 낭비를 줄여준다는 장점이 부각될 뿐 그 외의 시스템 성능은 크게 개선되지 않는다. 오히려 프로그램 호환성이 심각하게 문제시 될 수 있으므로 사용자는 FAT32 설치 시에 유의해야 한다.

- 윈도우95 이후

윈도우95계열은 91년 발표된 16비트 운영체제인 윈도우3.1의 뒤를 이은 OS로서 16/32비트 공존방식을 이용하고있다. 이에 반해 OSR2나 윈도우98은 32비트 전용으로서 안정된 사용자 중심의 운영체제이다. 그런데 윈도우95와 윈도우98의 공백에는 여러 이름의 윈도우가 발표되고 있어 사용자는 무척 혼란에 빠져 있다. 그것은 윈도우98의 발표가 늦어지면서 윈도우95의 문제점과 버그를 마냥 수정없이 두기엔 사용자들의 원성이 높아 이러한 문제를 수정하고 업그레이드하면서 다양한 버전이 존재하게 된 것이다. 이러한 윈도우95와 윈도우98 사이의 운영체제에 대해 살펴보면 다음과 같다.

내쉬빌(윈도우 95 build 4.10.999)로 시작된 윈도우95의 마이너 릴리즈들은 각자 성격을 달리한다. 내시빌 서비스팩은 build 1055, 1074의 두 가지로 ActiveX를 토대로 한 인터넷 익스플로러 3.0 alpha 버전과 전자우편과 유즈넷 사용을 위한 인터넷 클라이언트가 모두 포함한 인터넷 종합 슈트가 추가되었다. 그 후로 OEM 서비스팩 2 베타1(build 4.00.1005), beta2.1(build 4.00.1043)이 나오면서 새로운 하드웨어, 시스템 드라이버, 파일 시스템(FAT32) 등을 지원하였다. 그리고 윈도우95 서비스팩 3이라는 디트로이트(Detroit)라는 이름의 운영체제를 거쳐 OSR2와 OSR2.1에 이르고 있다. 하지만 OSR2(Operating System Release2)는 OEM(컴메이커용) 시디로만 나오는 윈95 버전으로서 일반 개인 사용자에겐 보급이 되고 있지 않다. 그것은 일반 시장에서 판매되기엔 프로그램 자체가 완전하지가 않기 때문이다. 그러므로 천상 일반 사용자들은 98년에 출시될 윈도우98을 통해 완전한 32비트 운영체제를 만나볼 수 있을 것이다. 참고로 윈도우95의 시스템 등록정보의 일반탭에서 시스템란에 윈도우 버전이 4.00.950이나 4.00.950a로 써 있으면 FAT16이고, 4.00.950b로 되어 있으면 FAT32이다.

1.1.2. 안정성

FAT32의 안정성은 이미 도스, 윈도우3.1, 윈도우95를 사용해본 사용자라면 절실히 바라마지 않는 항목이다. FAT16을 사용하는 사용자에겐 필수적으로 알고 있어야할 감초 프로그램이 노턴 디스크 닥터(NDD), chkdsk, scandisk, 디스크 검사 등의 시스템 유틸리티라는 사실만으로도 우리는 FAT16의 고질적인 불안정성을 확인할 수가 있다. FAT32의 시스템 안정성에 대한 기능과 보완은 어떠한 것인지 알아보자.

① FAT16의 문제점

기존의 도스에서 사용하는 파티션인 FAT16은 클러스터의 문제와 보완성이 결여된 파일 시스템이다. 또한 파일 시스템에 문제가 생겼을 경우 자동으로 복구가 불가능하여 사용자들은 잦은 파일 할당 오류 메시지를 접하였다. 갑작스런 정전이나 시스템 다운은 물론 잦은 하드디스크 액세스로 쉽게 파일 시스템에 문제가 생기곤 했다. 게다가 이러한 에러는 사용자가 시스템 관리 프로그램을 실행해야만 그 사실을 알 수가 있었다. 그러한 이유로 사용자가 시스템 에러를 미리 인지하지 못한 채로 컴퓨터를 사용하다가 더 큰 문제로 발전할 소지가 컸던 것이다.

② FAT32의 자동복구

시스템의 안정성은 표면적으로 쉽게 확인할 수 있는 것이 아니다.

실제 프로그램을 오랫동안 사용하면서 서서히 확인할 수가 있다. 하지만 FAT32의 안정성을 표면적으로 눈에 띄게 확인할 수 있는 것이 있다. 그것은 시스템에 에러가 생긴 경우나 에러를 확인할 필요가 있을 때 자동적으로 사용자에게 인지시켜주는 메시지이다. 이 메시지는 시스템 부팅 시에 '삑-'하는 시스템 기계음과 함께 나타난다. 이 메시지를 통해 사용자는 시스템에 발생한 에러를 확인하고 치료할 수 있는 기회를 제공받는 것이다. 또한 윈도우로 시작된 후 자동으로 Scandisk가 실행되어진다. 이제는 FAT16을 사용하던 때의 번거롭게 주기적으로 디스크 닥터 프로그램을 돌릴 필요가 없어진 것이다. 이러한 FAT32의 자동복구 기능 외에도 전체적으로 파일 할당 오류나 섹터 에러의 발생율이 현저히 줄어든 것 또한 FAT32의 안정성을 확인할 수 있는 증거가 된다.

- 파티션 수동복구

FDISK에는 잘 안 알려진 옵션이 있다. 바로 FDISK /STATUS와 FDISK /MBR 이다. 우선, FDISK /STATUS는 굳이 FDISK를 수행하지 않고도 현재 하드디스크의 파티션에 대한 정보를 알 수가 있다. 그리고, /MBR은 마스터 부트 섹터 레코드가 손상된 경우 복구하여 주는 역할을 한다. 부팅이 안되거나 바이러스 등으로 인한 부트영역이 손상되었을 경우 A로 부팅을 하여 이 명령을 수행해 주도록 하자.

③ 디스크 검사

아무리 FAT32가 시스템의 에러를 자동으로 감지하고 최소화해 준다고 해도 어떤 파일 시스템이든 기계인 이상 에러는 발생하기 마련이다. 특히 PC에 사용되는 MS사의 파일 시스템인 FAT는 다른 컴퓨터에서 사용되는 파일 시스템에 비해 에러가 잦은 편으로 알려져 있다. 그러므로 이러한 에러에 대한 치유, 대처 방법은 컴퓨터 사용자라면 반드시 알고 있어야 할 내용이다. FAT16을 사용하는 사용자의 경우에는 주기적(대략 한 달에 한 번)으로 디스크 검사를 해주어야 한다. FAT32를 사용하는 경우는 FAT가 위의 경우처럼 복구 메시지를 출력하는 경우에 디스크 검사를 해주도록 한다.

하지만 역시 컴퓨터를 맹목적으로 신뢰하는 것보다는 주기적인 검사로 미연에 데이터의 손실 등을 방지하는 것이 현명할 것이다. 특히 윈도우를 정상적인 방법이 아닌 방법으로 종료한 경우에는 재부팅 후 디스크 검사를 반드시 해주어야 한다. 디스크 검사는 윈도우95에서 제공하는 시작메뉴의 프로그램 - 보조 프로그램 - 시스템 도구 폴더의 '디스크 검사' 유틸리티나 노턴 유틸리티의 '노턴 진단기'와 같은 전문 디스크 검사 프로그램을 이용한다. 주의할 것은 이러한 디스크 검사 프로그램의 사용 시 현재 운영체제와 완벽하게 호환이 되는 프로그램인지 확인하는 것이다. 예를 들어 도스에서 사용하는 디스크 검사 프로그램을 이용해 윈도우95가 설치된 시스템을 검사할 경우 자칫 시스템에 심각한 문제를 야기할 수가 있다.

1.1.3. 속도향상

FAT32는 2GB 이상의 파티션에서도 최소 클러스터 단위를 4바이트로 최소화시켜 더 많은 하드디스크 확보가 가능함을 확인했다. 이렇게 클러스터의 크기가 줄어 얻을 수 있는 장점은 비단 하드디스크의 절약에만 있는 것은 아니다. 즉 하드디스크의 액세스 타임을 향상시켜 보다 빠른 시스템 성능을 기대할 수가 있는 것이다. 그렇다면 FAT32가 FAT16에 비해 얼마나 빠르게 시스템 성능을 높일 수 있는지 알아보자.

① 액세스 타임

액세스 타임이란 디스크의 파일에 접근하는데 걸리는 시간을 말한다. 성능이 빠를 수록 당연히 이 시간은 줄어들 것이다. 그러므로 액세스 타임이 적을 수록 성능이 더 뛰어난 것이다. 하지만 사실 FAT16과 FAT32의 액세스 타임의 차이는 실제사용자가 느낄 수 없는 미세한 차이만이 있을 뿐이다. 소프트웨어적으로 하드디스크의 성능을 향상하는데는 그 한계가 있기 때문에 실제 FAT32로서 사용자가 액세스 타임의 성능 향상에 대해서는 거의 느낄 수 없다.

② 하드디스크 최적화

하드디스크의 액세스 타임을 최소화하는 방법에는 FAT32를 사용하는 것 외에 보다 편리하고 효과적인 방법이 있다. 이것은 하드디스크의 단편화를 제거해 주는 것으로 여러 개의 클러스터에 파일이 연속으로 채워지게 함으로써 보다 빠르게 파일을 액세스할 수 있도록 해준다. 즉 클러스터에 저장되는 파일이 분산화되어 있으면 하드디스크에서 파일을 불러들일 때 분산화된 클러스터에 접근하는데 그 만큼 많은 시간이 소요된다. 그러한 이유로 분산화된 파일의 단편화를 제거하면 보다 빠르게 하드디스크의 파일을 불러들이고 저장할 수가 있는 것이다. 하드디스크 최적화는 시작메뉴의 프로그램 - 보조 프로그램 - 시스템 도구 폴더의 디스크 조각모음을 통해 이용할 수 있다.

1.2. FAT32의 문제점

양이 있으면 음이 있듯이 뛰어난 파일 시스템으로 각광받는 FAT32이지만 그 뒤에는 숨겨진 단점이 있다. 이러한 문제점을 확인하고 사용자의 컴퓨팅 환경에 맞게 이에 대한 방안을 생각하지 않으면 힘들게 설치한 FAT32가 되려 짜증과 번거로움만 가중시킬 수 있다. 다음의 사항들을 반드시 미리 확인한 후에 자신의 PC에 FAT32의 설치 여부를 결정하도록 하자.

1.2.1. 이론과 실제

FAT32의 이론적 성능과 안정성에 대해 아무리 지면으로 떠들어 보았자 실제 사용자가 느끼는 성능과 안정성만큼 실질적이지 않을 것이다. 하지만 이러한 개인적인 체감속도나 안정성에 대한 평가를 수치화할 수도 없고 객관적 측정을 도와줄 프로그램도 마땅치 않으므로 필자가 실제 3개월간 FAT32와 FAT16을 동일한 시스템에서 사용해본 경험과 통신망에 올라온 여러 체험자들의 의견을 토대로 실제적인 유용성에 대해 언급을 해본다.

① 외관상 차이

FAT16과 FAT32의 외관상으로 느낄 수 있는 성능상의 차이를 판별하기란 수월하지 않다. 다만 내 컴퓨터의 각 드라이브를 마우스 우측버튼으로 클릭한 후 등록정보를 선택하면 파일 시스템의 종류를 확인할 수 있다. FAT32의 경우 (FAT32)로 FAT16의 경우 (FAT)로 되어 있다.

② 안정성

FAT32의 설치 후 가장 확실하지만 서서히 느낄 수 있는 것이 바로 시스템의 안정성이다. 기존의 FAT16을 사용하던 때에 비해 확실히 디스크 오류나 섹터 에러 등의 발생율이 적었다. 또한 FAT16 시스템에서 사용할 때 자주발생하던 윈도우 에러 메시지 등도 줄어든 것을 느낄 수 있었다. 하지만 특정 프로그램과 FAT32와의 호환성 문제로 몇몇 프로그램의 경우는 사용이 불가능하기도 하다.

③ 체감속도

FAT32의 클러스터 크기가 작기 때문에 하드디스크 액세스 타임이 줄어들어 얻을 수 있는 하드디스크의 속도 향상은 거의 기대할 수가 없었다. 차라리 위에서 언급했듯이 하드디스크 최적화 프로그램을 이용한 파일 단편화 제거로 얻는 체감속도가 더 확실했다. 즉 FAT32의 설치로 인해서 기존에 FAT16 시스템에 비해 더 빠르고 뛰어난 성능 상의 기대는 하지 않는 것이 좋다.

1.2.2. 호환성

FAT32의 선택에 결정적인 장애물은 기존의 FAT16에서 동작되던 프로그램들과의 호환성이다. OSR2나 윈도우98이 현재 정식으로 일반 PC 시장에 출시된 것이 아니라 OSR2의 경우 OEM으로 윈도우98의 경우 테스트를 위한 베타버전으로 제한된 사용자에게만 보급이 되어서 아직 각 프로그램 개발자들은 이러한 FAT32 파일 시스템을 이용한 운영체제에 대한 안전성을 보장하지 않고 있다. 물론 모든 윈도우95용(FAT16용) 프로그램이 FAT32 시스템에서 동작하지 않는다는 것은 아니다. 다만 윈도우95용 노턴 디스크 닥터 등의 시스템 유틸리티와 아래아 한글, 이야기 등의 프로그램의 실행에 문제가 있는 경우가 있다. 참고할 것은 모든 FAT32 시스템에서 이러한 프로그램들이 문제가 있는 것은 아니다. 시스템에 따라 정상적으로 동작하는 경우도 있어 명백하게 FAT32와 호환되지 않는 프로그램을 목록화하기가 까다로운것이다. 참고로 System Commander(3.07이상의 버전은 괜찮음), CleanSweep3.0(97버전이상은 괜찮음), QEMM, OSR1 이전용 노턴 유틸리티, 기존의 도스용 프로그램 등은 정상적으로 동작이 되질 않을 수 있다. 그러므로 사용자는 이러한 문제에 대해 미리 주지하고 FAT32를 사용해야 한다. 이러한 이유 때문에 영문 OSR에서는 시작 메뉴의 프로그램 - 보조 프로그램 - 시스템 도구 폴더의 컨버터라는 프로그램을 이용해 시스템 사용 도중에라도 FAT16으로 돌아갈 수 있는 기회를 제공한다. 하지만 안타깝게도 한글 OSR의 경우 이러한 기능이 제공되고 있지 않다.

- 윈도우의 단일화와 이중화

MS사는 윈도우98을 마지막으로 윈도우NT와 윈도우95계열을 단일화할 예정이다. 즉 일반 데스크탑형 운영체제와 기업용 클라이언트 서버 운영체제가 함께 통합되는 것이다. 이것은 현재 컴퓨팅 환경이 고성능화 되어감에 따라 서버용 컴퓨터나 일반 개인용 컴퓨터의 차이가 없어져가고 있기 때문이다. 이러한 과정의 징검다리로 윈도우98과 윈도우NT 워크스테이션 4.0이 맡게 되고 마지막으로 윈도우NT 워크스테이션 5.0으로 단일화된다. 이와 함께 휴대성이 강조된 팜톱용 컴퓨터에 사용될 운영체제로서 지난해에 발표된 윈도우CE가 새롭게 윈도우95계열의 뒤를 이을 것이다.

윈도우CE는 노트북보다 크기가 작고 휴대가 간편한 팜톱, HPC(Hand Held PC) 등에 사용되는 운영체제이다. 이처럼 MS사는 윈도우를 고성능, 고기능의 컴퓨터에 어울리는 강력한 운영체제인 윈도우NT와 휴대용, 편리성에 강점을 둔 소형 컴퓨터에 어울리는 간단한 운영체제인 윈도우CE로 분리, 운영할 것이다.

1.3. 설치방법

FAT32를 설치하기 위해서는 크게 두 가지 방법이 있다. 하나는 시간이 많이 소요되고 새롭게 운영체제를 설치해야 한다는 단점을 가지는 반면 완벽한 FAT32 파일 시스템을 사용할 수 있다는 장점을 가진다. 두 번째로 간단한 유틸리티를 이용하여 기존에 이미 설치된 운영체제를 빠르고 손쉽게 FAT32로 바꿀 수 있는 방법이 있다. 이러한 설치 방법에 앞서 파티션과 하드디스크의 논리적 드라이브에 대한 개념을 알아보자.

1.3.1. 파티션

FAT16의 FDISK 가 최대로 관리할 수 있는 하드디스크의 용량은 2GB이다. 그러므로 FAT16을 사용하는 운영체제에서는 2기가급 이상의 하드디스크를 사용하고 있다면 어쩔 수 없이 예전의 도스 3.3이전의 시대처럼 하드디스크를 분할해서 사용을 해야만 한다. 또한 FAT32를 사용하는 시스템 역시 하나의 드라이브로 1기가 이상을 할당해 사용하면 하드디스크 관리가 수월하지 않으므로 적절하게 분할을 해서 사용하는 것이 좋다.

① 논리적 분할

하드디스크의 드라이브를 지칭할 때에는 논리적 드라이브, 물리적 드라이브란 용어가 구별되어 사용되어진다. 이때 물리적 드라이브란 눈에 보이는 것을 말하고 논리적 드라이브란 마치 그렇게 보이는 것처럼 해주는 것을 말한다. 즉 물리적인 드라이브란 우리가 구입하고 만질 수 있는 하드디스크 자체를 말한다. 반면 논리적인 드라이브란 FDISK를 이용해 임의로 물리적인 하드디스크에 경계를 설정해 주어서 실제 없는 데도 존재하는 것처럼 해주는 드라이브를 말한다. 그러한 경계를 일컬어 파티션이라고 한다. 이러한 방법을 통해 한 개의 하드디스크를 여러 개의 드라이브로 분할해서 사용할 수가 있는 것이다.

- 파티션

파티션은 한 개의 물리적 하드디스크를 가상으로 여러 개로 나누는 것을 말한다. 이것은 MS-DOS 3.3이전에 도입한 것으로 이러한 개념이 생성된 이유는 MS-DOS 3.3 이전에는 32MB이상의 하드를 하나의 드라이브로 인식을 하지 못했다. 그래서 어쩔 수 없이 그 당시에는 FDISK를 사용해서32MB 단위로 하드디스크를 쪼개어 사용을 하게 된 것이다. 하지만 지금의 도스 4.0부터는 도스가 관리할 수 있는 하드디스크의 용량이 2GB로 늘어났다. 또한 FAT32를 사용하는 OSR2와 윈도우98은 2TB(1TB=1024GB)의 하드디스크를 인식한다. 그러므로 현재 파티션의 사용은 하드디스크의 용량제한이 아니라 보다 효율적으로 하드디스크를 관리, 사용하기 위한 방편으로 사용되어지고 있다.

② 파티션의 설정

이처럼 하나의 하드디스크를 여러 조각으로 분할해서 사용을 하는 것은 단점과 장점을 가지고 있다. 우선 장점으로는 하드디스크의 관리가 더 용이해진다. 예를 들어 C 드라이브에는 도스와 윈도우 등의 운영체제와 중요 어플리케이션을 설치하고 D 드라이브에는 자주 지웠다 사용하는 잡다한 프로그램을 위해 사용하고 E 드라이브에는 문서, 이미지 파일 등의 데이터를 위해 사용을 하게 되면 디렉토리와 파일을 관리하기가 쉬워진다. 또한 FAT16의 경우에는 클러스터 갭으로 인한 하드디스크의 공간 낭비를 줄일 수가 있다. 그 외에도 서로 다른 운영체제를 하나의 하드디스크에 공존할 수가 있다. 이러한 장점이 있는 반면 파티션의 설정으로 인해 하드디스크를 여러 개의 논리 드라이브로 분할을 하다 보면 자칫 데이터의 이동이 잦게 되어 하드디스크의 수명을 단축시키는 단점을 가질 수도 있다. 데이터를 찾기 위해서 여러 드라이브를 찾다 보면 그만큼 하드가 혹사당하기 때문이다. 또 다른 단점으로는 사용하지 못하는 자투리 공간이 생기기 쉽다. 예를 들어 C 드라이브에는 7MB가 남았고 D 드라이브에는 10MB의 공간이 남아서 12MB의 공간이 있다고 가정해보자. 현재 새로운 프로그램을 인스톨을 해야 하는데 그 프로그램이 사용할 공간이 10MB라면 C 드라이브에도 D 드라이브에도 이 프로그램을 인스톨 할 수가 없게 된다. 하드디스크를 보다 효과적으로 관리하기 위해 설정한 파티션이 오히려 쓸모없는 자투리 공간을 만들어 내게 되는 것이다.

③ 디스크의 구성

디스크의 표면은 섹터들로 나뉘어져 있다. 각각의 섹터는 512byte크기의 데이터를 저장할 수 있다. 이런 섹터가 모여서 도스가 파일을 관리하는 기준인 클러스터가 된다. 이 클러스터를 이루는 섹터의 크기는 FAT16의 경우 하드디스크 드라이브의 용량에 따라 다르다. 물론 FAT32는 4KB의 클러스터 크기를 일률적으로 가진다. 이러한 클러스터 단위의 파일 시스템 관리로 인해 여러 단점이 있기도 하지만 반면 파일을 복구할 때 시스템 영역의 정보만을 복구하면 파일이 쉽게 복구 가능하다는 장점도 가진다. 즉 데이터 영역과 시스템 영역이 구분되어 있어 파일 삭제 시 실제 데이터 영역의 파일이 삭제되지 않는 것이다.

1.3.2. FDISK

FAT32를 설치하는 가장 이상적이고 근본적인 방법은 FAT32를 지원하는 운영체제에서 제공되는 파티션 설정 프로그램인 FDISK를 이용하여 하드디스크 드라이브를 분할해주는 것이다. 주의할 것은 윈도우95에서 제공되는 FDISK가 아닌 FAT32를 지원하는 OSR2 이후의 운영체제의 FDISK를 이용해야 한다는 것이다. 이것을 이용해 디스크의 파티션을 설정하고 각 드라이브를 포맷함으로써 완벽한 FAT32 시스템이 탄생되어진다.

① FAT16의 분할

FAT32의 경우 FDISK를 이용한 하드디스크의 논리적 분할 용량에 크게 신경쓰지 않아도 된다. 하지만 위에서 언급했다시피 FAT16은 하드디스크의 용량에 따라 클러스터의 크기가 다르다. 즉 FDISK를 통해서 하드디스크를 논리적으로 분할한 각각의 드라이브의 용량에 따라 위의 FAT16의 데이터 기록단위를 나타낸 표와 같은 클러스터의 크기가 설정된다. 이 때 당연히 클러스터의 크기가 작을수록 그만큼 파일이 차지하는 공간이 작아 하드디스크의 낭비가 최소화되는 것이다. 그런 이유로 클러스터가 가장 작은 2KB에 해당되는 하드디스크의 용량대로 분할을 해주면 효과적이다. 하지만 만약 1기가의 용량을 가진 하드디스크를 128MB로 분할한다면 약 8개의 논리적인 드라이브가 생성된다. 이것은 하드디스크의 공간 낭비에는 효율적이지만 이렇게 많은 드라이브를 관리하려면 꽤나 힘이 들것이다. 또한 자투리 공간이 많이 생겨서 결국 비효율적이다. 그러므로 자신의 목적에 맞는 드라이브 개수를 먼저 파악하고 위의 표를 참조하여 그 용량을 결정해야 한다. 즉 1기가의 하드디스크를 3개로 구분한다고 하면 512MB로 C 드라이브를 설정해서 덩치가 큰 프로그램들을 깔고 나머지는 D 드라이브와 E 드라이브로 256MB씩 분할하여 자잘한 프로그램과 데이터들을 저장하면 효율적일 것이다. FAT32의 경우는 이러한 클러스터 갭에 신경쓰지 말고 적절하고 효율적인 크기로 하드디스크를 분할하도록 한다.

② FDISK 실행에 앞서

FDISK를 수행해서 하드디스크를 분할하게 되면 이전의 자료들은 모두 사라진다는 것을 명심하도록 하자. 파티션은 디스크 상에 영토를 설정해 주는 푯말과 같은 것이다. 한번 이 푯말이 삭제되고 이동이 되면 이전의 자료는 복구가 거의 불가능하다. 그러므로 FDISK로 하드를 능률적으로 만들고 싶은 사용자는 모든 데이터들을 백업한 후에 시행하도록 하자. 백업 시에는 물론 Hidden파일까지 모두 백업해야 한다. 참고로 통신망 등에는 Fips라고 하여 백업을 하지 않고 파티션을 할 수 있는 유틸이 있긴 하지만 위험하다. 또한 이것은 FAT32를 지원하지 못하고 클러스터의 크기를 바꾸어 주지는 못한다.