2010년 11월 24일 수요일

하드 디스크의 데이터 구조[FAT]

하드 디스크의 데이터 구조


하드 디스크의 논리적 구조는 아래와 같습니다.


파티션(드라이브) 1 파티션(드라이브) 2
구분 내용

기타


하드 디스크 전체 영역 (500GB, 200GB ...)

하드의 실제 영역(크기)은 약간의 차이가 납니다.
500GB의 경우 : 하드 제조사(삼성,하다찌,..)는 1GB를 1000MB로 가정하고 제조됩니다.
하지만 OS의 경우는 1GB를 1024MB로 인식 하므로 차이가 납니다.

500GB 하드의 경우는
500GB * 1000 * 1000 * 1000 = 500000000000 byte <=제조사의 경우
500GB * 1024 * 1024 * 1024 = 536870912000 byte <=OS의 경우
500000000000 / 536870912000 = 0.931322574615478515625

500GB * 0.931322574615478515625 = 465.66GB(대략) <=OS가 인식하는 실제 영역(크기) 복잡ㅋ
하드에 전체에 대한 정보를 가지고 있는 영역

파티션이 몇개로 구성되었는지?
파티션 각각의 크기는 어떻게 되는지?
각각의 파티션 파일시스템이 뭔지?
등등에 대한 정보를 가지고 있습니다.

더 자세한 내용은 아래
http://e-data.co.kr/ver/bbs/board.php?bo_table=B08&wr_id=2

용어설명 메뉴에서 확인 하세요
파티션(드라이브) 1
각각의 파티션은 앞쪽에 자신의
파티션에 대한 정보,
폴더들구조,
파일들구조,

이후에
데이터들이 순차적으로 저장됩니다.
파티션(드라이브) 2



데이터가 디스크내에 어떻게 저장되는지 확인 해보겠습니다

파일시스템(window경우)
NTFS 구조:http://e-data.co.kr/ver/bbs/board.php?bo_table=B07&wr_id=5
FAT 구조:http://e-data.co.kr/ver/bbs/board.php?bo_table=B07&wr_id=2

FAT의 경우부터 확인 하겠습니다.



확인할 외장하드는 FAT외장하드, 320GB입니다
FAT파일 시스템(10GB), 나머진 할당하지 않았습니다.

용량이 298.09GB로 잡히는건 위에 설명되어 있습니다.


- 섹터,헤드,실린더에 이미지 참고




- DiskEditor를 이용해서 확인 합니다.




- MBR값(0번 섹터값)
1번칸 2번칸 3번칸 4번칸 5번칸 6번칸 7번칸 8번칸 9번칸 10번칸 11번칸 12번칸
- - Partition
Type Boot Begin
cylinder Begin
head Begin
sect End
cylinder End
head End
sect Relative
sectors Number of
sector
Enter 0Ch FAT32 LBA 0 1 1 1023 254 63 63 20964762


3번칸:파티션 타입- FAT LBA(현재 드라이브는 FAT입니다.)
그 외로 여러가지 타입이 있습니다



4번칸: Boot는 C드라이브일 경우 체크 되어집니다.현재는 외장하드 이므로 부팅값이 없습니다.

5번칸: Begin cylinder값 - 0 입니다.
특정 util로 파티션을 설정한 경우가 아니면 고정값입니다,
파티션이 2개일 경우는 2번째 파티션의 값은 1023입니다.

6번칸, 7번칸: Begin head, Begin sector값 - 1 입니다.
특정 util로 파티션을 설정한 경우가 아니면 고정값입니다,

8번칸, 9번칸: End cylinder, End head값 - 1023, 254 입니다.
특정 util로 파티션을 설정한 경우가 아니면 고정값입니다.

10번칸: End sector값 - 63 입니다.
특정 util로 파티션을 설정한 경우가 아니면 고정값입니다.



63번 sector는 Partition Boot Sector입니다. 첫번째 드라이브(파티션)에대한 정보를 가지고 있습니다.


- Partition Boot Sector(63번 섹터)




- 63번 sector Hex코드입니다



Hex코드 내용을 알수 없지만 처음 MSDOS..로 나오는면 FAT파일시스템 입니다

FAT의 경우 해당 파티션의 마지막에 69번 섹터의 복사본이 저장되어 있습니다.

파티션을 삭제한 경우 69번 섹터의 복사본으로 복원 할수 있습니다^^:

testdisk나 Partition Find and Mount 같은 프로그램으로 파티션을 복구 할수 있는 원리겠죠 .


11번칸: 첫번째 드라이브(파티션)이 시작 위치로 생각하시면 됩니다.

12번칸: Number of sector(섹터 전체 수)
드라이브 전체 크기입니다
20964762값이 10GB하드 용량입니다. ?? 뭐지?
섹터 하나당 512byte값을 가집니다
그러므로,
(20964762 * 512) / 1024 /1024 / 1024 = 9.99GB
섹터수 섹터당 KB MB GB
바이트수




- 파티션을 삭제한후 값들입니다.

- MBR값(0번 섹터값) : 모든 값이 0으로 채워집니다.



- 63번 sector Hex코드: 파티션을 삭제한후에도 Partition Boot Sector(63번 섹터)는 변경되지 않습니다.





파티션 복구 원리를 정리하면,

우선 파티션을 삭제한 경우
MBR(0번 섹터)값은 0으로 채워져 있으므로, MBR정보를 계산해서 값을 입력하면 됩니다.
63번 섹터(Partition Boot Sector) 값이 손상된 경우는 포멧하라는 메세지가 나옵니다.

FAT의 경우 69번 sector에 복사본이 있다고 말씀 드렸습니다.
69번 섹터값을 복사 해서 63번 섹터에 붙여 넣기 하면 됩니다.

- 69번 섹터(63번 섹터의 복사본이 있습니다.)



관련 동영상: http://e-data.co.kr/ver/bbs/board.php?bo_table=B20&wr_id=14


[출처] 데이터복구 커뮤니티 - http://e-data.co.kr/ver/bbs/board.php?bo_table=B08&wr_id=20

댓글 없음: