Practice
이번편에서 수동으로 FAT12를 구축해보고 Drilling FAT12를 마칠꺼라능. 2편에 있는 링크를 타고가서 일단 HxD를 깔자능...그리고 Virtual Floppy Drive랑 empty.img도 받자능. 일단 VFD를 켜고 Driver 탭의 Browse... 버튼을 눌러서 압축을 풀면 같이 들어있는 vfd.sys 를 선택해 주자능.
그리고 밑에있는 Start 버튼을 눌러주라능. 그리고 Drive0 텝으로 가자능. Change 버튼을 눌러서 드라이브 문자를 바꿔주라능. 맘에 드는걸로 바꿔주고 Open... 버튼을 누른 다음에 Browse... 버튼을 눌러서 empty.img를 선택해주고 Disk Type를 FILE로 선택해 골라주자능.
됐다능. 이제 가상드라이브가 작동하게 되었심. 탐색기를 켜보면 새 드라이브가 생겨난걸 볼 수 있을꺼라능. 더블클릭하면 포멧을 할꺼냐고 물어보는데 반드시 쌩까도록하삼. 그리구 나서 HxD를 켜자능. HxD의 Extras 메뉴에서 Open Disk를 눌러서 방금 만든 가상드라이브를 골라주라능. Open as Readonly는 꼭 꺼놓으라능.
OK를 눌르면 뭐라고 경고창이 뜨는데 우리 같은 프로들 한태는 필요업ㅂ은 소리라능. 쌩까자능. 아무튼 여기까지 끝냈으면 아래 그림과 같은 모습이 될꺼심. 준비끝이라능. 한 화면에 한 섹터의 전체를 다 볼 수 있게 창크기를 조절하는 센스가 있으면 더욱 좋다능.
이제부터 다음과 같은 순서로 진행할꺼라능
필드 별로 색을 번갈아 칠해 놨으니까 표를 보면서 값이 어떻게 들어갔나 확인해보라능. OEM 네임은 DCINSIDE를 넣어놨다능 ㅋㅋㅋㅋ. 아무튼...표를 보고 쓰라는 데로 똑같이 쓰면 된다능. 나머지 48바이트도 마져 채워넣자능. 참...아스키 문자를 넣고 싶을때는 코드표를 찾아가면서 16진수를 쓰지말고 옆에 아스키코드로 보여주는 칸에다 커서를 놓고 쓰면 된다능. 괜히 삽질하지 말자능. 아무튼 나머지 48바이트임.
일단 저장을 한번 해주고 FAT를 만들어 보자능. 위쪽의 툴바에 있는 Sector에 1이라구 쳐서 1섹터로 이동하자능. Drilling FAT12 2편을 열어놓고 FAT를 채워보자능. 주의사항에 보면 엔트리가 하나는 있어야 된다구 써있다능. 일단 FFF를 써주자능.
10번 섹터로 이동해서 똑같은 내용을 또 써주자능. 명심하라능 FAT는 똑같은걸 두개 만들어서 보관한다능. 그리고 루트 디렉토리가 시작하는 19번 섹터로 이동하자능. 아래처럼 볼륨 라벨을 써주자능. 주의사항에 볼륨 라벨을 만들어 넣을때 어캐해야 된다고 써있따능.
색칠한게 새로 추가한 부분이라능. 루트 디렉토리랑 TESTDIR에 파일을 하나씩 추가하자능
이번편에서 수동으로 FAT12를 구축해보고 Drilling FAT12를 마칠꺼라능. 2편에 있는 링크를 타고가서 일단 HxD를 깔자능...그리고 Virtual Floppy Drive랑 empty.img도 받자능. 일단 VFD를 켜고 Driver 탭의 Browse... 버튼을 눌러서 압축을 풀면 같이 들어있는 vfd.sys 를 선택해 주자능.
그리고 밑에있는 Start 버튼을 눌러주라능. 그리고 Drive0 텝으로 가자능. Change 버튼을 눌러서 드라이브 문자를 바꿔주라능. 맘에 드는걸로 바꿔주고 Open... 버튼을 누른 다음에 Browse... 버튼을 눌러서 empty.img를 선택해주고 Disk Type를 FILE로 선택해 골라주자능.
됐다능. 이제 가상드라이브가 작동하게 되었심. 탐색기를 켜보면 새 드라이브가 생겨난걸 볼 수 있을꺼라능. 더블클릭하면 포멧을 할꺼냐고 물어보는데 반드시 쌩까도록하삼. 그리구 나서 HxD를 켜자능. HxD의 Extras 메뉴에서 Open Disk를 눌러서 방금 만든 가상드라이브를 골라주라능. Open as Readonly는 꼭 꺼놓으라능.
OK를 눌르면 뭐라고 경고창이 뜨는데 우리 같은 프로들 한태는 필요업ㅂ은 소리라능. 쌩까자능. 아무튼 여기까지 끝냈으면 아래 그림과 같은 모습이 될꺼심. 준비끝이라능. 한 화면에 한 섹터의 전체를 다 볼 수 있게 창크기를 조절하는 센스가 있으면 더욱 좋다능.
이제부터 다음과 같은 순서로 진행할꺼라능
(1) 디스켓을 FAT12로 포멧된 상태로 만든다.
(2) 루트 디렉토리에 서브 디렉토리를 하나 추가한다.
(3) 루트 디렉토리랑 서브 디렉토리에 각각 하나씩 파일을 추가해본다.
(2) 루트 디렉토리에 서브 디렉토리를 하나 추가한다.
(3) 루트 디렉토리랑 서브 디렉토리에 각각 하나씩 파일을 추가해본다.
(1) 포멧시키기
화면에 Drilling FAT12 1편을 열어 놓고 표를 봐가면서 내용을 채우자능. 2바이트 이상되는 필드를 채울때는 엔디안을 주의해야된다능. 아..ㅅㅂ 귀차늠. intel 훡훡. 10진수를 16진수로 바꿀때는 윈도우 계산기가 참 좋음. 일단 32바이트를 채웠다능.
화면에 Drilling FAT12 1편을 열어 놓고 표를 봐가면서 내용을 채우자능. 2바이트 이상되는 필드를 채울때는 엔디안을 주의해야된다능. 아..ㅅㅂ 귀차늠. intel 훡훡. 10진수를 16진수로 바꿀때는 윈도우 계산기가 참 좋음. 일단 32바이트를 채웠다능.
EB 4E 90 44 43 49 4E 53 49 44 45 00 02 01 01 00
02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00
필드 별로 색을 번갈아 칠해 놨으니까 표를 보면서 값이 어떻게 들어갔나 확인해보라능. OEM 네임은 DCINSIDE를 넣어놨다능 ㅋㅋㅋㅋ. 아무튼...표를 보고 쓰라는 데로 똑같이 쓰면 된다능. 나머지 48바이트도 마져 채워넣자능. 참...아스키 문자를 넣고 싶을때는 코드표를 찾아가면서 16진수를 쓰지말고 옆에 아스키코드로 보여주는 칸에다 커서를 놓고 쓰면 된다능. 괜히 삽질하지 말자능. 아무튼 나머지 48바이트임.
40 0B 00 00 00 00 29 FF FF FF FF 56 4F 4C 55 4D
45 4C 41 42 45 4C 46 41 54 31 32 20 20 20 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
45 4C 41 42 45 4C 46 41 54 31 32 20 20 20 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
일단 저장을 한번 해주고 FAT를 만들어 보자능. 위쪽의 툴바에 있는 Sector에 1이라구 쳐서 1섹터로 이동하자능. Drilling FAT12 2편을 열어놓고 FAT를 채워보자능. 주의사항에 보면 엔트리가 하나는 있어야 된다구 써있다능. 일단 FFF를 써주자능.
F0 FF F0 F0
10번 섹터로 이동해서 똑같은 내용을 또 써주자능. 명심하라능 FAT는 똑같은걸 두개 만들어서 보관한다능. 그리고 루트 디렉토리가 시작하는 19번 섹터로 이동하자능. 아래처럼 볼륨 라벨을 써주자능. 주의사항에 볼륨 라벨을 만들어 넣을때 어캐해야 된다고 써있따능.
56 4F 4C 55 4D 45 4C 41 42 45 4C 08 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HxD를 끄고 VFD를 언마운트 했다가 다시 마운트 해보자능. 탐색기를 켜보면 가상 드라이브가 읽어질꺼라능. 볼륨 라벨도 들어가 있다능. >_<.
(2) 서브 디렉토리 만들기
TESTDIR이라는 이름의 서브 디렉토리를 만들껀데....TESTDIR의 내용은 33번 섹터에 집어넣도록 하자능. 일단 FAT를 고치자능.
(2) 서브 디렉토리 만들기
TESTDIR이라는 이름의 서브 디렉토리를 만들껀데....TESTDIR의 내용은 33번 섹터에 집어넣도록 하자능. 일단 FAT를 고치자능.
F0 FF FF FF 0F
빨간색으로 칠해놓은게 새로 추가된 내용이라능. FAT2도 고쳐주는걸 잊지말라능. 33번 섹터를 Last cluster of file 이라고 표시해 놨따능. 19번 섹터로 이동해서 루트 디렉토리에 TESTDIR 이름으로 엔트리를 하나 추가하자능.
54 45 53 54 44 49 52 20 20 20 20 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
주의 사항에 보면 33번 섹터를 사용할꺼라고 표시할때는 First logical sector에 2를 쓰라고 했다능. 이제 33번 섹터로 이동하자능. 아..주의할꺼는 위의 두줄은 offset 00002620 부터 써넣는거임. 00002610에 0만 잔뜩 써있다고 여기다 넣으면 젖된다능. 00002610은 볼륨 라벨의 뒤쪽 16바이트 자리라능. 해깔리지 않도록 조심하라능. 주의 사항에 보면은 서브 디렉토리에는 "." 이랑 ".." 이 반드시 있어야 된다고 했다능. 만들어 주자능.
2E 20 20 20 20 20 20 20 20 20 20 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
2E 2E 20 20 20 20 20 20 20 20 20 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
2E 2E 20 20 20 20 20 20 20 20 20 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
이제 탐색기로 디스크 드라이브를 열어보자능. TESTDIR 이라는 디렉토리가 생겨있을꺼라능 >_<.
(3) 파일 추가하기
디렉토리 만들기까지 생공했다능. 별루 안어렵지 않냐능 하악. 아무튼...이제 루트 디렉토리랑 TESTDIR에 파일을 추가해 보자능. 루트 디렉토리에는 4바이트짜리 "1.TXT" 를 추가하고 서브디렉토리에는 22바이트짜리 "2.TXT" 를 추가할꺼라능. 추가된 파일이 메모장으로 열어지면 성ㅋ공ㅋ라능.
역시 FAT를 먼저 고치자능. "1.TXT" 는 34번 섹터에 집어넣고 "2.TXT" 는 35번 섹터에 넣을꺼라능.
(3) 파일 추가하기
디렉토리 만들기까지 생공했다능. 별루 안어렵지 않냐능 하악. 아무튼...이제 루트 디렉토리랑 TESTDIR에 파일을 추가해 보자능. 루트 디렉토리에는 4바이트짜리 "1.TXT" 를 추가하고 서브디렉토리에는 22바이트짜리 "2.TXT" 를 추가할꺼라능. 추가된 파일이 메모장으로 열어지면 성ㅋ공ㅋ라능.
역시 FAT를 먼저 고치자능. "1.TXT" 는 34번 섹터에 집어넣고 "2.TXT" 는 35번 섹터에 넣을꺼라능.
F0 FF FF FF FF FF FF 0F
색칠한게 새로 추가한 부분이라능. 루트 디렉토리랑 TESTDIR에 파일을 하나씩 추가하자능
31 20 20 20 20 20 20 20 54 58 54 20 00 00 00 00
00 00 00 00 00 00 00 00 00 00 03 00 04 00 00 00
32 20 20 20 20 20 20 20 54 58 54 20 00 00 00 00
00 00 00 00 00 00 00 00 00 00 04 00 16 00 00 00
00 00 00 00 00 00 00 00 00 00 03 00 04 00 00 00
32 20 20 20 20 20 20 20 54 58 54 20 00 00 00 00
00 00 00 00 00 00 00 00 00 00 04 00 16 00 00 00
이제 34번 섹터랑 35번 섹터에 4바이트 22바이트씩 내용을 넣어주자능. 물론 안넣어어도 상관은 업ㅂ다능 -_-;;
54 45 53 54
44 43 20 50 52 4F 47 52 41 4D 4D 49 4E 47 20 47
41 4C 4C 45 52 59
44 43 20 50 52 4F 47 52 41 4D 4D 49 4E 47 20 47
41 4C 4C 45 52 59
총 3회에 걸쳐서 FAT12에 대해서 알아봤다능.FAT12는 간단한 파일 시스템이고...현재는 거의 쓰이지 않는다능. 디스켓 따위를 누가 쓰냐능 -_-;;; FAT32를 배워보기전에 몸풀기 용으로 배워본다고 하는데 의의를 두자능. 이 글에서 자세히 다뤄보지 않은건 여러 섹터에 걸쳐있는 파일에 대한 FAT 엔트리를 집어넣는건데...이건 나도 어캐하는지 모른다능. -_-;; 누가좀 가르쳐 주삼 읭읭.
'튜토리얼 > FAT12' 카테고리의 다른 글
| Drilling FAT12 - 3편 (6) | 2009/06/12 |
|---|---|
| Drilling FAT12 - 2편 (0) | 2009/06/11 |
| Drilling FAT12 - 1편 (1) | 2009/06/09 |
TAG fat12

댓글을 달아 주세요
여리님의 Chobits OS에 대해 해설한 노재현씨의 책인 "개발자를 위한 나만의 운영체제 만들기, 정보문화사"에 FAT12의 엔트리와 클러스터에 대해서 대충 나와있긴 합니다만 -_-; 좀 이해하기 힘듭니다;
좋은 정보 감사합니다. 도서관에서 빌려다 봐야겠심
"고급 개발자들만이 알고 있던 OS 제작의 원리, 그리고 Codes, 오재준 저" 요 책에 훨씬 자세하게 나와있군요 ㅡ,.ㅡ; 위에 책은 쪼까 설명이 애매합니다 -_-;
오오 더욱 감사
좋은정보 감사합니다. ^^ FAT32 도 부탁드린다능~~~
언젠간 써볼께요. 어제오늘 일때문에 FAT32 올리느라 좀 많이 봤다능