windows

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ windows ] in KIDS
글 쓴 이(By): madjean (릴리푸션)
날 짜 (Date): 1998년 8월 19일 수요일 오후 03시 18분 39초
제 목(Title): [참고] MBR ( Master Boot Record )


위에 OS Loader에 대해 애타게 알고 싶은 분을 위해
참고로 퍼왔습니다.
저도 덕분에 좀 배우군요.

끝에 MBS에 관한 글은 없더군요.

-------------------------------------------------

     오늘은 예고대로 마스터 부트 레코드와 파티션 
     부트 섹터에 대해서 이야기하겠습니다.
     
     컴퓨터가 성공적으로 시작하기 위해서 아주 중요
     한 디스크 섹터 두가지가 있습니다. NT뿐만이 아
     니라 도스, OS/2, Unix등등 모두 이 섹터를 사용
     합니다. 
     .마스터 부트 레코드
     .파티션 부트 섹터
     모두 작은 프로그램과 이 프로그래에 필요한 데
     이터로 구성되어 있습니다. 
     
     <마스터 부트 레코드>
         마스터 부트 레코드는 하드디스크에 처음 파
     티션을 만들 때 생깁니다. 디스크에 대한 정보중
     에 가장 중요한 것이죠. 위치는 항상 실린더 0, 
     헤드 0, 섹터 1 입니다. 섹터만 1인 이유는 1부
     터 시작하기로 정해놓앗기 때문입니다. 한 섹터
     의 크기는 512바이트 입니다.(바꿀수도 있습니
     다)
         위에서 말씀드린대로 마스터 부트 레코드는 
     실행되는 프로그램과 데이터로 구성되는데 데이
     터는 파티션 테이블이라고 합니다. 프로그램이 
     하는 일은 파티션 테이블을 조사해서 시스템 파
     티션이 있는가 알아내는 일이죠. 시스템 파티션
     이란 부트 할 수 있는 영역을 말합니다. 
         시스템 파티션을 찾아 내면 가리키는 파티션 
     의 처음 섹터(파티션 부트섹터)의 실행 프로그램
     에게 실행권을 넘깁니다(NT가 여기서 부터 모습
     을 드러내는 것이죠, 뭐 도스나 다른 것들도 마
     찬가지 입니다.)
         마스터 부트레코드에 바이러스가 침입하면 어
     떤 OS라도 알아내거나 복구할 수가 없습니다. 당
     연히 OS가 시작되기 전에 바이러스가 활동하기 
     때문입니다. 
     
     .파티션 테이블
     그럼 파티션 테이블의 예제를 보여드리겠습니다.
     마스터 부트섹터의 마지막 부분입니다.               
                                              [80 01
     01 00 06 0F 7F 96 3F 00 00 00 51 42 06 00]00 00
     41 97 07 0F FF 2C 90 42 06 00 A0 3E 06 00 00 00
     C1 2D 05 0F FF 92 30 81 0C 00 A0 91 01 00 00 00
     C1 93 01 0F FF A6 D0 12 0E 00 C0 4E 00 00(55 AA)
     조금 힘드는 군요. 헤헤
     [ ] (braket이라고 하던가..) 이 안에 있는 것이 
     하나의 파티션을 나타냅니다. 즉 네개의 파티션까
     지 정의할수 잇는 것이죠. 마지막 ()는 섹터가 끝
     나는것을 알려주는 표시입니다. 처음 파티션의 정
     보는 다음을 나타냅니다. 
     
     80 - 시스템 파티션이라는 것을 나타냅니다.
          00이면 부팅하는데 사용하지 않습니다.
     01 - 시작 헤드
     01 - 시작 섹터(6bit)
     00 - 시작 실린더(10bit)
     06 - 시스템 아이디
          이 시스템은 밑을 참조해 볼때 BIGDOS FAT를  
          사용하고 있다는 것을 알수 있습니다.
          값   의미하는 것
          ----------------------------------------
          01   12bit FAT
          04   16bit FAT
          05   확장 파티션
          06   BigDOS FAT
          07   NTFS
     
          8X   앞에 8이 붙어 있으면 볼륨셋이나 밀러
               셋, 스트라이프 셋의 일부임을 나타냅니 
               다.
          7X   볼륨셋, 미러셋 스트라이프셋의 일부이  
               나 손상을 받았을 경우입니다.
     0F - 마지막 헤드
     3F - 마지막 섹터(6bit)
     196 - 마지막 실린더(10bit)
     3F 00 00 00 - 가리키는 섹터
     51 42 06 00 - 총섹터수
     
     여기서 재미잇는 계산한번 해보죠. 그럼 파티션 테
     이블의 정보를 보았을 때 사용할수 있는 가장 큰 
     디스크는 얼마의 크기를 갖을 수 잇겠습니까? 파일
     시스템의 제한하는 것을 생각하지 않았을 때 이야
     기 입니다.
     하드디스크의 크기는 다음과 같은 공식으로 계산합
     니다.
     섹터크기 X 트랙당 섹터수 X 실린더수 X 헤드수
     그렇다면
     섹터는 512바이트라고 말씀드렸죠. 그다음은 섹터
     수인데 위에서 보면 1부터 시작하고 6bit의 제한이 
     있으니깐 63이네요. 실린더는 10bit이니까 1024 헤
     드는 16bit이니까 256이 나오죠. 이것을 모두 곱하
     면 무려 8,455,716,864바이트 입니다. 즉 7.8 GB이
     죠. 그런데 NT의 NTFS는 얼마까지 지원할수 있을 
     까요 약 2의 64제곱(2TB)의 크기까지 사용할수 있
     답니다. FAT가 2의 32제곱(4GB) 보다 많이 사용할
     수 잇죠. 도스는 4기가가 넘어가면 하나의 파티션
     으로 만들어 쓸수가 없지만 NT는 2테라바이트의 하
     드까지 하나의 파티션으로 만들어 쓸수 있도록 설
     계되어 있습니다.
     
     여기까지가 마스터부트레코드와 파티션 테이블에 
     대한 간략한(?)이야기 입니다. 파티션 부트섹터도 
     다루려고 했는데 너무 길어졌네요. 이건 내일 하겠
     습니다. 참 실린더 헤드 섹터 뭐 이런것에 대한 설
     명은 뺏습니다. NT초보자가 컴퓨터 초보는 아니라
     는 강력한 믿음에서 입니다.

----w-w----
   ( " )
   (O O)
    v-v
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.