>> Edit article
이름
제목
패스워드
[용어정리] - 제가 쓰는 글에서 사용할 용어들의 의미입니다. * 디스크 : 물리적인(즉, 컴의 부품으로 들어가는 눈으로 볼 수 있고 손으로 만질 수 있는) 디스크 장치 * 파티션 : 필요에 따라 하나의 물리적 디스크 안에서 영역을 나눈 것. * 파일시스템 : 디스크 상에 데이터를 읽고 쓰고 관리하기 위해 사용하는 정해진 방식. * 트랙 : 디스크 상의 한바퀴. 트랙을 쉽게 이해하려면 나무를 자르면 보이는 나이테를 생각하라. * 실린더 : 여러 디스크 면으로 이루어진 HDD에서 각 면의 동일번호 트랙들을 묶은 것. 즉, 4면을 가진 HDD에서의 실린더 0번은 디스크 면0의 0번트랙, 면1의 0번트랙, 면2의 0번트랙, 면3의 0번트랙을 하나로 묶은 가상적 개념. [Disclaimer] 저는 제가 쓰는 이 글이 정확하고 객관적인 용어사용 및 사실에 입각한 것이라 보증하지 않습니다. 이 글에는 잘못된 개념, 일반적이지 않은 개념 등이 들어있을 수 있습니다. 저는 이 글에서 제가 설명하고자 하는 바를 설명하기 쉽도록 개념들을 축소, 단순화, 변형했을 수 있습니다. 또한 제가 이 글에서 틀린 점을 발견해도 반드시 교정할 것이라고 보증하지 않습니다. 한마디로 참고가 되면 보시고 참고하시되 진리라 믿지는 마시고 잘못된 점을 답글에 지적하시는 것은 좋으나 저를 비난하지 말아주세요. (피해망상증의 바즈라 -_-;;) [파티션 일반] 자 이제 잡소리는 치우고 설명을 시작하죠. 파티션에는 2가지 종류가 있습니다. Primary 파티션과 Extended 파티션이죠. Primary 파티션(이후 Pri 파티션으로 적습니다.)은 부트섹터가 딸려있다는 특징이 있고 그 파티션 자체가 하나의 파일 시스템을 이루게 된다는 특징이 있습니다. 즉, DOS/9x 계열로 설명하면 하나의 Pri 파티션은 하나의 드라이브가 된다고 보면 됩니다. Extended 파티션(이후 Ext 파티션)은 부트섹터가 딸려있지 않고 그 자체가 파일시스템을 구성해서 사용되는 것이 아니라 Ext 파티션 내부를 디스크에 파티션을 나누듯이 다시 나누어 나뉘운 각각의 단위마다 파일시스템을 각각 구성해 사용하게 됩니다. M$의 DOS 또는 9x계열의 OS로 fdisk 작업을 해보면 파티션을 2개까지만, 또한 만들 수 있는 파티션의 종류도 정해져 있어 Pri와 Ext 파티션 각각 하나씩만 만들 수 있죠. 하지만 이것은 M$의 DOS/9x 계열의 제약일 뿐이고 하나의 물리적 디스크는 총 4개까지의 파티션을 가질 수 있습니다. 단, Ext 파티션은 하나의 물리 디스크에 하나뿐입니다. Ext 파티션내를 나눈 각각의 단위들은 논리드라이브(logical drive)라고 부릅니다. 어차피 파티션이라는 것이 논리적인데 왜 이것들을 논리드라이브라 부르는지 모르겠지만요. -_- 흔히 M$ 운영체제에 익숙한 분들이 생각하는 파티션의 개념은 이렇습니다. 파티션을 처음 하나 나누면 C드라이브, 다음 나누면 D드라이브, 또 나누면 E드라이브... 하지만 M$에서의 드라이브라는 개념은 M$에서 자기네 파일시스템을 보여줄 때 쓰는 개념일뿐 (파티션=드라이브)라는 공식이 성립하는 것은 아닙니다. 유닉스 계통의 OS들엔 드라이브라는 개념은 없죠. 리눅스에서는 물리적 디스크장치 및 논리적 개념인 파티션들에 대응하는 device file들이 /dev에 있습니다. 원칙적으론 파티션 그 자체를 지칭하려면 '첫번째 IDE 디스크의 1번 파티션'과 같이 불러야 하겠지만 무쟈게 불편하죠. 따라서 해당하는 device file로 파티션을 호칭하는 것이 관례입니다. 장치명이라 하죠. disk와 관련된 device file의 이름은 다음 규칙에 따라 붙여집니다. 첫번째 글자는 그 종류를 나타냅니다. IDE 방식은 'h'가 붙고, SCSI 방식은 's'가 붙죠. 두번째 글자는 'd'입니다. disk를 줄인 것이겠죠. 세번째 글자는 장치(물리적)가 자신의 계열(IDE냐 SCSI냐)에서 몇번째 녀석인지에 따라 a, b, c...로 갑니다. 합쳐서 한번 볼까요? 만약 한 컴에 IDE HDD 2개에 SCSI HDD가 3개가 달려있다면(부자네여... 부럽~ ^^*) IDE 2개는 순서대로 /dev/hda, /dev/hdb SCSI 3개는 또 자기들끼리 순서에 따라 /dev/sda, /dev/sdb, /dev/sdc 가 됩니다. 여기까지는 물리적 장치 얘기고 파티션은 어떻게 장치명을 붙이느냐... 물리적 장치명에 파티션 번호를 붙이는 것입니다. 첫번째 IDE HDD의 첫번째 파티션은 /dev/hda1, 두번째 파티션은 /dev/hda2, ... 이런식으로요. 한 물리적 장치에 파티션이 4개까지라 했으니 /dev/hda1~4까지는 '파티션'일 것이고, /dev/hda5이후는 논리드라이브입니다. 논리드라이브는 파티션이 2개밖에 없는 상황, 예를들어 윈도9x에서 하드를 C절반 D절반으로 나눴다면 /dev/hda1, /dev/hda2, /dev/hda5가 존재하게 됩니다. 파티션이 몇개가 존재하던지 논리드라이브는 무조건 5 이후의 번호를 갖는다는 것 기억해 두세요. 잠깐 파티션이 실제로 어떻게 기록되나 볼까요? 다음은 제 리눅스 시스템의 파티션 목록을 뽑은겁니다. 물리적 디스크 2개에 리눅스와 W2kPro가 깔려 있습니다. ================ root@vajra:~# fdisk -l /dev/sda Disk /dev/sda: 255 heads, 63 sectors, 2233 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 1 33 265041 82 Linux swap /dev/sda2 34 38 40162+ 83 Linux /dev/sda3 * 39 168 1044225 b Win95 FAT32 /dev/sda4 169 2233 16587112+ 85 Linux extended /dev/sda5 169 332 1317298+ 83 Linux /dev/sda6 333 2233 15269751 83 Linux root@vajra:~# fdisk -l /dev/sdb Disk /dev/sdb: 255 heads, 63 sectors, 2233 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 33 265041 82 Linux swap /dev/sdb2 34 490 3670852+ 83 Linux /dev/sdb3 491 1926 11534670 5 Extended /dev/sdb4 1927 2232 2457945 7 HPFS/NTFS /dev/sdb5 491 817 2626596 83 Linux /dev/sdb6 818 948 1052226 83 Linux /dev/sdb7 949 1926 7855753+ 83 Linux ================ 다음은 첫번째 SCSI HDD인 sda의 파티션테이블(파티션들에 대한 정보가 저장되는 디스크영역)의 raw data 중 일부입니다. 콜론(:) 왼편은 파티션테이블상의 위치를 나타내고 콜론 오른편이 데이터입니다. 16진수로 표시되었군요. ================ 0x1C0: 01 00 82 FE 3F 20 3F 00 00 00 A2 16 08 00 00 00 0x1D0: 01 21 83 FE 3F 25 E1 16 08 00 C5 39 01 00 80 00 0x1E0: 01 26 0B FE 3F A7 A6 50 09 00 02 DE 1F 00 00 00 0x1F0: 01 A8 85 FE FF FF A8 2E 29 00 D1 32 FA 01 55 AA ================ 위의 4줄은 첫번째 하드디스크(sda)의 첫 4개의 파티션(sda1, sda2, sda3, sda4)의 파티션 정보입니다. SCSI의 경우이기 때문에 IDE의 경우와는 데이터가 조금 차이가 날 것입니다. 대충 몇가지만 살펴보죠 첫줄, 즉 sda1에 대한 내용인 0x1C0 줄을 보면 01 00 82 ... 이런 식으로 나갑니다. 여기서 두번째 00은 sda1이 시작되는 실린더 번호입니다. 세번째 82는 이 파티션의 파일시스템인 Linux swap의 파일시스템타입코드인 0x82가 기록된 것이죠. 두번째줄, sda2 의 두번째 값은 0x21이죠. 십진수로 고치면 33이네요. 실린더 번호가 0에서부터 시작하니까 34번째 실린더부터 시작하는 것 맞죠? 각 줄의 6번째 값을 보세요. 다음줄 두번째 값 -1 이라는 것을 알 수 있습니다. 따라서 2번째 값은 그 파티션의 시작 실린더 번호 6번째 값은 마지막 실린더 번호가 되겠네요.--쓰다보니 한이 없넹 -_-;; 호응도를 보고 계속 연재할지 연중할지 결정해야겠군요.
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved