블로그 이미지
핑크대지

태그목록

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

공부하자.

2007. 10. 29. 22:36 | Posted by 핑크대지
아고, 어휘 실력 완전 꽝 됐네.
오랜만에 해커스 토익에서 문제를 몇개 풀어봤는데, 좌절하겠다. ㅠ

단어 왜케 다 까먹었니.;;;

1. The supply room informed them that their order for hand held organizers would not be
available for _________ week.

(a) other
(b) some other
(c) one other
(d) another

-> week는 단수 명사. 단수 명사를 수식하는 형용사 찾기.
    의미는 이용불가능하다. 언제까지? 한 주 더. 이번주 말고 이 다음주까지. 또 다른 한 주.
    (답) another.

2. He carefully perused the details on the housing eviction ____________ before getting in
touch with his lawyer to file suit.

(a) publication
(b) application
(c) compensation
(d) notification

-> 문제에 모르는 단어가 많아서 해석이 제대로 안댔다. ;;;
     publication은 발행(물), application은 신청(서), compensation은 보상(금), notification은
     통지서,
     결정적으로 peruse를 몰라서 (c)를 선택했다는,;; (답) notification 주택강제퇴거 통지서

* 오늘 몰랐던 단어
1. expedite 신속히 처리하다.  ex) expedite your application 신청을 처리하다.
2. outstanding 미지불의 ex) outstanding debt 미지불 금액
3. organizer 서류 케이스
4. housing evction (주택)강제퇴거
5. peruse 정독하다. 숙독하다.
6. clasp 악수하다. 움켜잡다. ex) clasping hands

파일시스템 요약.

2007. 10. 23. 10:50 | Posted by 핑크대지

파일시스템이란?

 

파일시스템은 데이터의 최소 단위인 파일이 하드디스크, CD-ROM등의 저장매체에 저장되는 방식을 말한다. 운영체제는 디스크 상에 파일들을 저장하는데 파일시스템은 여기에 필요한 규칙을 세우고 정한 규칙에 의해 저장하게한다.

<소프트웨어와 물리적인 저장매체의 연결역할을 하는 파일시스템>
 

파일시스템의 방식에는 FAT,NTFS,EXT2등 여러 가지가 있고 각 파일시스템은 고유의 구조를 가지며 이 구조에 따라 기능과 성능에 차이를 보일 수 있다. 예를 들면 NTFS방식은 각 파일마다 보안설정을 할 수 있어서 네트웍 상에서 해킹의 위험이 적고 FAT방식은 그러한 기능이 전혀 없어서 네트웍이나 인터넷 상에서 해킹의 위험이 매우크고 개인의 일상 업무용등의 보안이 중요하지 않은 용도로 사용하기에 적당하다. FAT방식은 마이크로소프트사가 도스 시절에 만들어서 지금까지 사용되고 있는 대표적인 파일시스템이며 FAT방식으로 구성된 하드디스크에는 윈도우95,98,ME 등의 운영체제가 설치될 수 있다


MASTER BOOT RECORD
BOOT RECORD
FAT1(실제파일의 위치정보)
FAT2(FAT1의 복사본)
루트 디렉토리
데이터 저장영역

< FAT 방식 파일시스템의 구조>

 

위의 구조에서 IBM PC에서는 MBR영역은 운영체제에 관계없이 공통적으로 존재하는 부분이며 하드디스크의 제일 첫 부분에 위치한다.

MBR 다음의 부분 부터는 파일시스템에 따라서 그 구조가 다른 형태를 가진다.

 

파일시스템의 종류

FAT(File Alocation Table)방식

하드디스크의 한 부분에 FAT이라고 하는 하드디스크안에 저장되어 있는 파일의 실제위치와 크기, 이름 등의 정보를 기록한 테이블을 이용해서 파일을 호출하고 저장하는 방식이다.

FAT16방식과 이를 개선한 FAT32방식, FAT32방식과 함께 사용되며 긴 파일이름을 지원하는 VFAT(VIRTUAL FILE ALLOCATION TABLE)이란 파일시스템도 있다.


≫ FAT12

플로피디스크에서 사용되고있는 파일시스템이며 디스켓공간에 2^12(2의 12승)=4096개의 섹터(파일저장의 최소공간)를 가질 수 있으며 최대용량은 4096×512(1개섹터의 용량)=약 2MB이며 섹터8개를 하나의 최소저장공간으로 묶을 경우 약 16MB 까지 최대 저장용량으로 지정할 수 있다.

FAT12방식을 사용하는 플로피디스켓은 저장용량이 작기 때문에 하드디스크와는 달리 공간을 나눌 필요가 없으므로 MBR영역이 필요하지 않다

부트레코드
FAT1
FAT2
루트디렉토리
데이터 저장영역


 

≫ FAT16

MS-DOS에서 사용하는 파일시스템으로 윈도우95 ORIGINAL 버전까지 사용된 파일시스템이다.

FAT16방식은 2^16(2의 16승)=65536개의 섹터를 가질 수 있으므로 약 30MB를 하나의 방(파티션)으로 만들 수 있다. 여기에서 섹터를 최대한 64개를 하나로 묶어서(=클러스터) 사용하면 65536×64×512=약 2GB 의 공간을 하나의 파티션으로 사용 할 수 있다.

만일 10GB용량의 하드디스크를 가지고 있다면 파티션을 5개로 분할해야만 전체공간을 모두 사용 할 수 있고 1클러스터는 64×512 byte=32KB가 되고 파일 한 개는 무조건 클러스터 하나 이상의 공간을 하기 때문에 1KB크기를 가진 파일도 32KB공간 한 개를 차지하며 나머지 31KB는 낭비되는 공간으로 남게되며 남은 공간에는 다른 파일을 함께 넣을 수 없게 약속되어 있어서 FAT16방식의 최대 단점은 2GB마다 파티션을 나누어야 한다는 점과 공간의 낭비가 매우 심하다는 것이다.

≫ FAT32

윈도우95 OSR2버전부터 채택된 FAT32는 FAT16방식의 한계를 극복하기 위해 2^32(2의 32승)개의 섹터나 클러스터 수를 지정 할 수 있다. 한섹터를 한 클러스터로 지정해서 사용하더라도 한 파티션의 최대양을 2TB(2000GB)까지 지정 할 수 있으며 클러스터 공간의 낭비도 최소한으로 줄일 수 있다.

FAT32방식의 주소지정방식은 2^28(2의 28승)(실제 주소지정가능량)×2^4(2의 4승)(예비)으로 이루어진다.

단점으로는 클러스터를 이용하는 방식은 읽거나 기록할 때 FAT에 가서 위치정보를 확인해서 실제 위치로 이동하는 방식이므로 ACCESS 시간이 많이 걸리며 FAT 영역이 손상되면 실제의 정상적인 파일도 사용을 못하고 여러 개의 클러스터로 구성된 용량이 큰 파일은 각 클러스터 간의 링크가 손상되어도 해당파일을 사용 할 수 없게 되는 단점이 있다. 또한 각 디렉토리나 파일에 사용권한을 줄 수가 없으므로 여럿이 함께 사용하는 운영체제에는 부적절한 파일시스템이다.

 
FAT12
FAT16
FAT32
사용매체
플로피디스크
소용량 하드디스크
대용량 하드디스크
주소지정방식
12 bits
16 bits
32 bits
최대 주소 지정갯수
4,086
65,526
~268,435,456
1개클러스터 용량
0.5 KB to 4 KB
2 KB to 32 KB
4 KB to 32 KB
1개 파티션 최대량
16,736,256
2,147,123,200
약 2^41

FAT (file allocation table 파일 할당 테이블)이란?

FAT은 부트섹터 다음에 위치하는 부분으로 한 파티션 안에서 실제 파일에 해당하는 정보가 어느 위치에 저장되어 있는가를 표시해 놓은 위치정보를 모아 놓은 곳이다.

FAT 안을 들여다 보면 각각 한 개의 클러스터 주소를 나타내는 커다란 숫자표라 할 수 있다.
FAT은 FAT1과 FAT2 두 부분으로 되어 구성되어 있으며 운영체제가 실제로 데이터를 찾을 때 이용하는 부분은 FAT1이며 실제 데이터 저장영역이 손상되지 않아도 FAT1에 기록된 위치정보가 손상되면 그 위치에 해당하는 실제 파일을 찾을 수 없으므로 FAT2라고 하는 복사본을 항상 유지하고 있다가 디스크에 파일이 새로 저장되거나 삭제될 때 FAT1의 위치정보도 그에 맞게 변경되며 동시에 FAT2에서도 FAT1과 같은 변경이 이루어진다

 

위의 화면은 FAT1의 일부를 보여 준다.
번호가 매겨진 각각의 숫자들은 연속적으로 배열된 클러스터의 번호이며 실제 데이터 저장영역은 제일 처음의 0번과1번의 클러스터를 사용하지 않으며 세번째 클러스터인 2번 클러스터부터 사용된다.
첫 부분에 표시된 258 이 실제 데이터가 저장된 첫 클러스터이며 클러스터 번호로는 cluster 2가된다. 그 다음 네번째 클러스터 부터는 순서대로 번호가 매겨져 있으며 네번째 클러스터에 <EOF>라고 표시된 이유는 파일한개의 크기가 한 개의 클러스터보다 작아서 1클러스터만 차지 한다는 의미이며 end of file의 약자이다.

검정색으로 선택된 곳인 75 ~ <EOF>의 영역을 보면 RAMBOOST.EXE라는 파일은 74번 클러스터부터 79번 클러스터까지 차지하고 있으며 79번은 실제 파일의 마지막 클러스터라는 의미로 <EOF>라고 표시되어 있다.

FAT영역을 이해하는데 주의해야 할 점은 FAT 안에는 클러스터의 범위만 표시되어 있을 뿐 그 클러스터를 차지하고있는 파일의 실제 이름은 존재하지 않는다. 위의 화면에서 보이는 C:\DOS\RAMBOOST.EXE는 루트 디렉토리와 하위디렉토리(SUB DIRECTORY)의 정보를 DISKEDIT라는 프로그램이 추적해서 표시해 준 것이다.



NTFS(New Technology File System)와 유닉스

 

NTFS

 

≫ 구조

NTFS는 FAT방식을 토태로 HPFS라는 OS/2 라는 운영체제를 위한 파일시스템의 장점을 접목시켜 만든 파일시스템으로 FAT방식에서는 할 수 없던 파일과 디렉토리 에 보안설정을 가능하게 한 파일시스템이다. NTFS의 구조는 FAT방식과 다른 형태를 가지고 있다.

MBR(마스터부트레코드)
PBS(파티션부트섹터)

MFT(마스터파일테이블)

데이터저장공간

MTF복사본

데이터저장공간

 

- MBR : NTFS에 해당하지 않은 부분. IBM PC의 하드디스크의 첫 섹터. 파티션에 대한 정보와 부팅에 관여하는 실행코드를 포함하고 있다.
- PBS : BOOT FILE 이라고도 한다. 부팅하는 과정중에 NT가 시작될 수 있도록 NT BOOTSTRAP CODE가 존재한다. 또한 NTFS 파티션내의 섹터, 클러스터등의 설정에 관한 정보를 포함하며 MFT의 실제위치정보를 가지고있다.
- MTF : NTFS상의 디렉토리를 포함한 모든 파일은 MTF에 기록을 가지고 있다. MTF에는 16가지의 관련사항을 기록하고 있으며 이 다음부터 데이터가 기록된다.
- 기타 : 파티션 내의 임의의 위치에 파일들에 대한 여러가지 정보가 존재한다.

 

≫ NTFS의 특징

NTFS는 FAT방식과 비교해서 보다 우수한 여러가지 기능이 사용되고 있다.
그중 가장 대표적인 사항들에 대해 알아본다.

1. 저널링 - 갑작스런 에러로부터 복구하는 기능

2. 파일보안의 세밀한 설정기능

3. 결함에 대한 향상된 복구기능(결함허용)

4. 향상된 파일 압축기능

5. FAT32의 지원(윈도우2000 부터)

6. 사용자별 디스크 할당기능(윈도우2000 부터)

7. 분산 링크 추적(윈도우2000 부터) - 링크가 손상시에 자동 복구

 

유닉스 파일 시스템

유닉스계열의 운영체제에는 다양한 종류가 있으나 파일시스템에서는 대부분 비슷한 구조를 가지고 있으며 기본구조는 다음의 구성요소를 포함하고 있다.

- 슈퍼블록(super block)
파일시스템의 크기와 같은 전반적인 정보를 담고 있다.

- 인노드(Inode)
파일이름을 제외한 해당파일의 모든 정보를 가지고 있으며 파일이름은 인노드번호와 함께 디렉터리 안에 저장된다. 디렉토리의 처음부분은 파일이름과 인노드번호로 구성된다.

- 데이터블록(data block)
파일에서 데이터를 저장하기 위해 사용되며 인노드에 포함된다.

- 디렉토리 블록
파일이름과 인노드 번호를 저장하기 위해 사용되는 공간.

- 간접블록(indirect block)
인노드 안에는 적은 수의 데이터 블록이 포함되는데 많은 양의 데이터블록이 필요할 경우 인노드 외부에 생성되며 데이터블록을 알려주는 공간이 생긴다. 이것이 간접블록이다.

- 홀(hole)
홀은 인노드나 간접블록안에 있는 데이터블록 위치에 관한 값을 저장한다. 홀은 파일시스템에 의해 파일 안에 생성되지만 실제로 디스크공간을 차지하지 않는 가상의 값이다. 유닉스에서 많이 사용되고 있는 파일시스템의 종류는 다음과 같다.

- ext2
현재 가장 많이 사용되고 있는 파일시스템으로 리눅스의 모든 기능을 사용 할 수 있는 파일시스템이다. 호환성과 안정성이 뛰어나며 업그레이드도쉽다.

- ext3
ext2파일시스템의 약점인 디스크 복구기능을 보완하여(저널링 기능의 추가)만든 파일시스템이다.

- minix
가장 오래되고 믿을 만한 파일시스템이나 제한사항이 많아서 지금은 리눅스의 부팅디스켓의 파일시스템으로 사용되는 정도이다.

- sysV
systemV계열과 xenix에서 사용되는 파일시스템.

 

파일 시스템과 운영체제의 관계

하나의 파일 시스템은 한 개의 운영체제 또는 그이상의 운영체제를 하드디스크 위에 설치 할 수 있게 한다. 운영체제 또한 여러 파일시스템 중에서 하나를 선택해서 설치 할 수도 있다.
(도스, 윈도우9x는 단일파일시스템(fat방식)만 가능한 배타적인 파일시스템이다.)

도스
 윈도우3.1
 윈도우95 오리지날 버전

 FAT16

 윈도우95 OSR2
 윈도우98
 윈도우ME

 FAT16, FAT32

 윈도우NT

 NTFS, FAT16

 윈도우2000
 윈도우XP

 NTFS, FAT16, FAT32

 리눅스

 EXT, EXT2,EXT3,MINIX  MSDOS,HPFS,…….

 OS/2

 HPFS, FAT16

<OS별로 본 지원되는 파일시스템>

 

섹터와 클러스터

 

≫ 섹터의 개념

하드디스크에 데이터를 저장하는 최소단위가 섹터이다. 물질의 마지막 형태가 원자인 것과 같이 데이터의 최소형태는 파일이며 이 파일은 섹터라는 곳에 저장된다.

IBM호환 컴퓨터에 사용되는 하드디스크의 섹터는 512byte의 정보를 저장 할 수가 있다. 즉 영문자 512자를 섹터 하나에 기록할 수가 있다.

섹터에는 데이터를 저장 할 수 있는 공간 이외의 영역이 존재한다. 이 부분은 운영체제나 프로그램이 볼 수 없는 영역이며 주로 하드디스크 콘트롤러가 하드디스크를 작동시키는데 필요한 것들이다.

- ID정보(ID information)
: 섹터번호, 위치에 대한 정보인데 디스크 상에서 섹터의 위치를 확인하기 위한 정보이다.

- 동기화 필드(synchronization fields)
: 하드디스크 컨트롤러가 섹터를 읽기동작에 필요한 가이드 역할을 하는 부분.

- 데이터 영역
: 데이터 저장공간(512 byte)

- ECC
: 데이터의 무결성을 검사하기 위한 에러정정코드가 존재하는 부분.

- 빈공간(gabs)
: 섹터사이를 구분해주는 빈 공간.

 

≫ 클러스터(cluster)

섹터를 일정 단위로 묶어 놓은 것을 클러스터라 한다.

도스에서 사용하는 파일시스템인 FAT16 방식에서 인식할 수 있는 주소를 섹터마다 배정하게 되면 배정가능한 주소의 수가 모자라서 하드디스크 용량 인식에 문제가 생기게 되어서 고육지책으로 고안해 낸 방법이 섹터를 여러 개 묶어서 주소 한 개를 배정해서 인식 할 수 있는 용량을 더 크게 확장시킨 방식이다.

1
2
3
4
5
6
7
8

 

1섹터=1클러스터

2섹터=1클러스터

4섹터=1클러스터

8섹터=1클러스터

 

FAT16/FAT32와 클러스터와의 관계

프로그램의 최소단위인 파일은 파일저장의 최소단위인 클러스터에 저장되는데 한 개의 파일은 한 개의 클러스터 이상의 공간에 저장된다.

파일 한 개의 크기가 클러스터의 크기보다 작을 때 그 클러스터의 남는 공간은 다른 파일이 함께 저장 될 수 없기 때문에 공간의 낭비가 심해지게 되고 파일은 크고 클러스터는 매우 작게 포맷이 되었을 경우 한 파일이 차지하게 되는 클러스터의 수가 많아지게 되어 그 파일을 읽어들이는 속도가 느려지게 되고 클러스터 간의 링크가 손상될 확률이 높아지게 된다.

FAT16과 FAT32의 차이는 근본적으로 하드디스크의 클러스터에 얼마나 많은 주소를 지정할 수 있느냐의 차이다. FAT16은 2의16승(2^16)=65536개의 주소를 클러스터에 붙일 수 있고 (실제로는65536-10개) FAT32는 2^28 + 2^4=약 4억개 정도의 주소를 지정 할 수있다.

클러스터당
섹터수와 용량
인식가능한 파티션의 최대용량
1 ×512=512
512 × 65536=32MB
2 × 512=1024
1024 × 65536=64MB
4 × 512=2048
2048 × 65536=128MB
8 × 512=4096
4096 × 65536=256MB
16 × 512=8192
8192 × 65536=512MB
32 × 512=16384
16384 × 65536=1024MB
64 × 512=32768
32768 × 65536=2048MB

<FAT16 방식에서의 섹터/클러스터/파티션의 관계>

위의 표에서 보면 FAT16방식에서는 섹터64개를 클러스터 1개로 묶으면 한 파티션의 최대용량이 2GB가 된다.
만일 8GB용량의 하드디스크를 FAT16방식으로 포맷하게 되면 파티션을 네개로 나누어야 하드디스크전체를 사용 할 수 있다. 이때 한 개 클러스터의 크기도 과도하게 크므로(32KB) 낭비되는 공간이 심하면 30%에 이를 수도 있다.


크기가 1KB인
문서파일한개
  남는 공간 여기엔 다른 파일을 함께 저장 할 수 없다

<1클러스터=64섹터 일때의 파일의 크기가 적을수록 공간의 낭비가 심해진다>


FAT16방식의 단점을 보완하기 위해 윈도우95 OSR2부터 FAT32를 지원하기 시작했다. FAT32에서는 클러스터의 크기에 따른 공간의 낭비와 데이터검색속도와의 효율성을 고려해서 1클러스터=4096byte(8개섹터)를 기본값으로 사용한다. 각 클러스트를 인식 할 수 있는 주소수도 충분해서 8GB의 하드디스크를 단일파티션으로 사용 할 수 있다.


FAT16
FAT32
파티션
클러스터
파티션
클러스터
권장 클러스터 크기
128MB
2KB
260MB
512B
512B
256MB
4KB
260MB~8GB
512B, 1, 2, 4KB
4KB
512MB
8KB
8GB~16GB
4, 8KB
8KB
1G
16KB
16~32GB
8, 16KB
16KB
2G
32KB
32GB
16, 32KB
32KB

<클러스터별 지원용량의 비교>
FAT32에서는 8GB이상의 하드디스크를 8섹터=1클러스터가 기본값으로 되어있다.
 

MBR(Master Boot Record)영역

 

≫ MBR이란?

MBR이란 하드디스크로 부팅하기위한 정보와 파티션 분할 정보 부팅에 사용되는 실제 파티션  (ACTIVE PARTITION)에 대한 정보가 저장된 곳으로 하드디스크의 제일 바깥쪽에 위치한 공간으로(절대섹터0(Cylinder 0, Head 0, Sector 1), 크기:1sector(512byte)) 하드 디스크로 들어오는 관문이 되는 곳이다.

 

≫ MBR의 역할
1. 부트파티션(active partition)을 파티션 테이블에서 찾는다.
2. 부트파티션의 시작섹터를 찾는다.
3. 부트파티션내의 부트섹터(boot record)복사본을 메모리로 로드시킨다.
4. 부트섹터의 실행코드의 전송을 중간에서 콘트롤한다.

만일 MBR이 위의 기능들을 완전히 끝마치지 못하면 다음 중 하나의 메세지를 화면에 표시하고 시스템이 정지하게 된다.
Invalid partition table.
Error loading operating system.
Missing operating system.

※ 플로피디스크나 LS-120, Zip 디스크 등은 MBR이 존재하지 않는다. 위의 이동식 저장매체의 첫번째 섹터는 부트섹터 부터 시작한다.

※ 하드디스크가 두개이상 정착된 시스템에서 모든 하드디스크에 MBR이 존재하지만 실행영역으로 지정된 파티션 (active partition)이 포함된 하드디스크의 MBR만 사용된다.

 

FDISK /MBR 명령이 하는 일

FDISK /MBR 명령명령을 실행하면 MBR영역중 파티션테이블64Byte를 제외한 MBR영역 전체를 FDISK가 다시 기록 해 준다.
이명령은 파티션테이블을 제외한 MBR영역이 손상되었을 때 이를 복구하는 도구로 사용된다.
파티션테이블이 손상되었을 경우는 다른 복구 유틸리티나 디스크에디터를 이용하여 직접 정보를 써 주거나 백업본을 이용하여 복구해야 한다.



파티션 테이블

64Byte로 구성된 파티션 테이블은 하드디스크에 구성된 파티션의 타입과위치를 확인하는데 사용되며 운영체제와는 상관없이 독립적인 구조를 가진다.

각각의 파티션테이블은 16byte씩이며 네개로 되어있고 윈도98과ME는 한 개의 파티션만을 기본(primary)파티션으로 사용하여 부팅할 수 있다.

MBR에서의 파티션테이블 구성 000001B0:                                           80 01                .. 000001C0:01 00 07 FE BF 09 3F 00 00 00 4B F5 7F 0000 00     ......?...K..... 000001D0:81 0A 07 FE FF FF 8A F5 7F 00 3D 26 9C 0000 00     ..........=&.... 000001E0: C1 FF 05 FE FF FF C7 1B 1C 01 D6 96 92 0000 00     ................ 000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00           ..............

Partition  1    Partition  2    Partition  3    Partition  4 



파티션테이블의 해석

000001B0:                                      80 01

000001C0:   01 00 07 FE BF 09 3F 00 00 00 4B F5 7F 00



80

부팅파티션 식별정보(boot indicator.1byte)

어느 파티션으로 부팅할 것인지를 표시한다.

  00  부팅에 사용되지 않는 파티션

  80  부팅 파티션(active partition)

  네개의 파티션테이블 중 한 개에만 80을 표시할 수 있다.


01 FE 

시작헤드(starting head.1byte)와 마지막헤드(ending head. 1byte)

  각각 0 ~ 255 범위 안에서 사용할 수있다.

01 00

시작섹터(starting sector. 6bit)와 시작실린더(starting cylinder. 10bit)각각 0 ~ 63 과 0 ~ 1024 사이의 값을 사용할 수 있다.

BF 09

마지막섹터(ending sector. 6bit)와 마지막실린더(ending cylinder.10bit)

  각각 0 ~ 63 과 0 ~ 1024 사이의 값을 사용할 수 있다.

07

시스템ID(파일시스템의 종류를 나타내는 값. 1byte)

01    FAT12 primary partition or logical drive (fewer than 32,680 sectors in the volume)

05    Extended partition

06    FAT16 partition or logical drive (33  MB4  GB)

07    NTFS partition or logical drive

0B  FAT32 partition or logical drive

0F    Extended partition

42    Dynamic volume

84    Power management hibernation partition

A0  Laptop hibernation partition

3F 00 00 00

상대섹터값(relative sectors. 4byte)디스크의 처음부터 파티션의 첫부분 사이의 섹터수의 갯수를 표시

4B F0 7F 00

총섹터값(total sectors. 4byte)

  파티션의 섹터의 갯수.

  최대 크기는 2terabyte이다.

파티션테이블의 이해와 수리에의 응용

위에서 살펴본 바와 같이 파티션테이블의 몇가지 항목은 사용자가 디스크에디터등의 유틸리티를 이용해서 직접 MBR영역으로 들어가서 수동으로 편집할 수 있다.

예를들면 부팅파티션 식별정보나 시스템ID정보는 쉽게 그 값을 설정해 줄 수 있고 노턴 DISK EDITOR나 윈도2000의 DISK PROBE는 사용자가 파티션테이블의 각각의 값을 알고 있다면 편리하게 수정할 수 있는 항목을 제공하고 있다.


부트섹터의 구조

 

≫ 부트섹터의 구조
부트섹터는 각 파티션의 첫번째 섹터에 위치한 기록으로 컴퓨터 시작에 중요한 역할을 하는 부분이다.

부트섹터에는 파일시스템이 해당 파티션으로 부팅하는데 필요한 실행 코드와 데이터 코드로 구성되어 있으며 파티션을 포맷 할 때 생성 된다.

윈도우2000 이나 XP를 시작 하게 되면 active로 지정된 파티션의 부트 섹터를 램에 로드시키고 ntldr을 실행시키게되며 ntldr은 boot.ini에 설정된 대로 운영체제를 로드 시키게 된다.

윈도우98은 active로 지정된 파티션의 부트섹터를 램에 로드시킨 후 루트 디렉토리에 있는 운영체제를 램에 로딩시키게 된다.

부트섹터는 다음의 내용으로 구성되어 있다.

1. CPU jump 명령어

2. OEM ID

3. BIOS parameter block (BPB) 파티션 내의 데이터 구조

4. 확장 BPB(extended BPB)

5. 운영체제의 부팅에 필요한 실행 코드(boot code or bootstrap code)

BPB는 해당 파티션의 자세한 구성정보(parameter)를 가지고 있으며 BPB 실행 후 이어서 확장 BPB가 실행된다.

FAT12, FAT16, FAT32, NTFS가 각각 다른 구성요소를 가지고 있기 때문에 BPB의 길이가 모두 다르다.

하드디스크 관련 장치 드라이버들은 필요 할 때 BPB와 확장 BPB의 정보를 이용한다.

확장 BPB 다음에는 부팅과정을 진행 시키는데 필요한 부트코드가 이어진다.

≫ 부팅과정 중의 부트섹터에서의 특징

A드라이브(플로피디스켓)는 MBR이 없고 부트섹터부터 존재하기 때문에 A드라이브로 부팅하게 되면 제일 먼저 부트섹터가 램에 로딩되고 부트코드가 실행되어 IO.SYS를 램에 올리게 된다.

만일 부트섹터를 찾지 못하게 되면 다음의 에러메세지를 보이고 부팅과정이 멈추게 된다. Non-system disk or disk error. Replace and press any key when ready.

만일 위의 메시지를 하드디스크로 부팅하는 도중 만나게 되면 부팅파티션의 부트섹터의 손상을 의미한다.

윈도우2000과 XP에서는 동적볼륨의 SPANNED VOLUME이나 STRIPED VOLUME으로 부터는 부팅이 불가능하다. 이런 파티션의 정보는 MBR의 파티션 테이블에 정보가 없기 때문이다.

≫ 부트섹터 구성요소

MBR에 의해 CPU에 전송된 부트섹터의 처음 3바이트(CPU jump 명령)를 CPU가 실행하면 다음에 오는 OEM ID를 건너 뛰고 다음을 실행하게 된다. 8바이트로 구성된 OEM ID는 해당 파티션을 포맷한 운영체제의 종류, 버전을 표시한다.

윈도우2000과 XP는 FAT방식으로 포맷된 파티션에서 도스와의 호환성을 유지하기 위해 OEM ID를

MSDOS5.0 이라고 기록한다. 하지만 NTFS방식으로 포맷된 파티션에서는 NTFS라고 기록한다.

MSWIN4.0은 윈도우95 original에서 포맷한 파티션이며 MSWIN4.1은 윈도우95 OSR2, 98, ME에서 포맷한디스크에서 볼 수 있다.

FAT32 파티션에서의 부트섹터

FAT32의 부트섹터의 구성요소는 FAT16과 거의 비슷하나 몇가지 항목이 더 추가 되었다. 확장 BPB는 FAT16과 동일하지만 BPB가 다르게 구성 되어 있기 때문에 FAT32와 호환되지 않는 운영체제는 FAT32의 부트섹터를 인식할 수 없다.

 

루트 디렉토리의 내용과 역할

루트 디렉토리는 고층건물의 로비와 같은 일을 한다. 그 건물의 한 사무실을 찾아가기 위해서는 먼저 로비에 들어가게 되고 로비의 안내판을 보고 가려는 곳의 위치를 확인한다.

루트디렉토리도 로비의 안내판과 같은 일을 한다. FAT방식에서 루트디렉토리는 그 파티션 안에 존재하는 파일들이 어디서 시작하는지 그 위치를 가리킨다. 뿐만 아니라 이 파일들의 이름, 크기와 필요한 추가정보를 가지고 있다.
루트디렉토리는 파일뿐 아니라 하위 디렉토리도 가지고 있다. 루트 디렉토리에 그 파티션의 모든 파일을 담아두게 되면 사용자가 관리하기가 매우 힘들어 지게 되므로 그런 불편을 해소하기 위해 사용된다.
하위 디렉토리는 파일들과 다른 하위 디렉토리 이외에 가상디렉토리 두개를 항상 가지고 있다.
한 개는 ` . ’ 이며 이것은 현재 자신이 위치하고 있는 하위 디렉토리를 나타내며 ` ..’ 표시는 자신의 상위 디렉토리를 의미한다.

아래 화면은 디스크에디터로 루트 디렉토리(윗 화면)와 하위 디렉토리(C:\DOS, 다음 화면)를 보여주는 한 예이다.

 

 

 


* NAME ? 파일이나 디렉토리의 이름

* EXT ? 파일의 확장자

* ID ? 파일인지 디렉토리인지 구분해주는   것
* LFN (long file name) ? 윈도우에서 지원하는 긴 파일 이름으로 사용하기 위한 이름
* SIZE- 파일에서는 실제 크기를 말하며 디렉토리는 용량을 차지하지 않는다.
* DATE / TIME ? 생성된 날짜와 시간
* CLUSTER ? 파일이나 디렉토리가 시작되는 클러스터의 위치
* A R S H D V ? 파일이나 디렉토리의 속성. 루트디렉토리는 파티션의 이름을 표시할 수 있는 볼륨(V)을   가질 수 있다.
* δ / ERASED ? 지워진 파일, FAT방식에서 파일을 지우는 방법은 이름의 앞자에 소문자 시그마 표시를   하는 것이다.

파일 한 개를 표시하기 위해서 32바이트가 필요하며 이를 디렉토리 엔트리라 부른다

 

하지만 실제로 하드디스크에는 위의 화면형식으로 존재하는 것이 아니고 코드의 형태인 아래 화면과 같은 형태로 존재한다. 다시말하면 아래화면을 디스크 에디터가 번역해서 위의 화면으로 보여주는 것이다.


하드디스크의 내용을 사용자가 직접 수정하기 위해서 이 화면에서 코드를 변경하면 실제 내용이 수정된다.

 

파일을 읽고 쓰는 원리

 

≫ 하드디스크에서 파일을 찾는 과정

윈도우가 파일을 찾기 위해 처음으로 들어서는 곳이 루트 디렉토리이며 여기에는 찾고자하는 파일의 위치정보 중 첫 클러스터만 알 수 있다. 파일의 전체 공간에 대한 정보는 FAT이 가지고 있으며 루트디렉토리에서는 알 수 없다.

1. 운영체제가 AAA.TXT 파일을 가져 올 것을 요구한다.
2. 루트디렉토리에서 AAA.TXT파일이 위치한 첫 클러스터의 번호와 기타 정보를 읽는다.
3. FAT1에 가서 해당 클러스터로 시작하는 클러스터들의 전체 범위를 파악한다.
4. 실제 파일의 위치로 가서 데이터를 읽는다.

결국 하나의 파일의 내용을 읽기 위해서는 루트 디렉토리와 FAT이 서로 협조해야 가능한 구조이다.

 

하드디스크에 파일을 저장하는 과정

1. 응용프로그램이 운영체제에게 파일을 하드디스크에 저장 할 것을 요구한다.
2. 운영체제가 FAT1의 사용하지 않는 공간을 검사
3. FAT1의 빈공간을 앞쪽부터 사용할 클러스터로 표시
4. 루트디렉토리나 하위디렉토리에 사용될 파일의 이름을 기록
5. FAT1에 표시된 클러스터의 실제주소에 데이터 저장

참고> 파일을 실제 데이터 저장영역에 기록하기 위해서는 바이오스의 도움을 받아야 한다.
운영체제가 지정한 클러스터 범위를 바이오스는 트랙과 섹터단위로 바꾸어 주는 일을 한다.


≫ 사용자가 파일을 지울 때 일어나는 일들

사용자가 파일을 지울 때 하드디스크에서는 파일을 지우지 않는다. 대신 다음의 두가지 일이 일어난다.

1. 해당파일의 전체 클러스터 범위를 기록해 놓은 FAT의 정보를 모두 0 으로 바꾸어 놓는다.
2. 루트디렉토리의 해당 파일명 첫 문자를 소문자 시그마로 바꾸어 놓는다.

사용자가 지운 파일은 첫 문자와 FAT정보만 변경되고 다른 파일이 자신의 데이터를 그위에 덮어 쓰지 않는 이상 실제 데이터는 원래대로 유지된다.

파이날데이터나 노턴 삭제복구마법사는 이 원리를 이용하여 데이터를 복구 시키며 다른 파일이 데이터를 덮어 쓴 경우에는 원래의 데이터를 복구 하기 힘들게 된다.


파일이 조각화 되는 과정

하드디스크에 파일을 기록할 때 앞쪽부터 빈공간에 차례대로 기록하게 된다.

이때 FAT영역에서도 파일의 위치정보를 동일하게 표시해 주게 된다

1

#FILE1

2

#FILE1

3

#FILE1

4

<EOF>

5

#FILE2

6

<EOF>

7

#FILE3

8

#FILE3

9

#FILE3

10

#FILE3

11

#FILE3

12

<EOF>

13

<EOF>

14

#FILE5

15

#FILE5

16

#FILE5

17

#FILE5

18

<EOF>

19

#FILE6

20

#FILE6


FAT에서 파일의 위치를 클러스터단위로 표시해 준다.

사용자가 #FILE2와 #FILE4를 삭제하게 되면 FAT에서도 해당 클러스터정보를 삭제하게 된다.

1

#FILE1

2

#FILE1

3

#FILE1

4

<EOF>

5

 

6

 

7

#FILE3

8

#FILE3

9

#FILE3

10

#FILE3

11

#FILE3

12

<EOF>

13

 

14

#FILE5

15

#FILE5

16

#FILE5

17

#FILE5

18

<EOF>

19

#FILE6

20

#FILE6


이번에는 새로운 파일인 #FILE7을 저장하게 되면 비어있는 공간을 찾아서 저장하게 되며 이런 과정이 반복될수록 하드디스크의 조각화(단편화)가 심해지게 된다.

1

#FILE1

2

#FILE1

3

#FILE1

4

<EOF>

5

#FILE7

6

#FILE7

7

#FILE3

8

#FILE3

9

#FILE3

10

#FILE3

11

#FILE3

12

<EOF>

13

#FILE7

14

#FILE5

15

#FILE5

16

#FILE5

17

#FILE5

18

<EOF>

19

#FILE6

20

#FILE6