초창기 IDE 표준은 1024실린더, 16헤드, 63섹터, 512바이트가 규격입니다.
이를 계산하면 약 500메가 정도 나옵니다. (512메가인가 528메가인가 그정도)
그런데 펜티엄이 시장에 나올 때즈음 이 제한은 골칫거리가 되었습니다.
대부분 하드가 500메가 훌쩍 넘겨버리고 그때 나온 윈도 95도 디스크
용량을 많이 잡아먹었으니까요.
(94년도인가 95년도 얘기입니다. 그당시 리눅스는 어떠했는지 모르겠네요)
그 때문에 IDE 표준을 약간 확장했는데, 나머지 파라미터값을 그대로 두고
헤드수만 16에서 255로 늘려놨지요. 헤드수를 255로 늘려놓고 계산하면
약 8G (하드 제조회사들 얘기로는 8.4G)가 나옵니다.
그 다음에 나온 것이 lba32인데, 이것은 실린더, 헤드, 섹터 정보로 하드를
접근하지 않고, 각 섹터마다 번호를 매겨서 그 번호를 가지고 접근을 합니다.
그런데, 실제로는 섹터 번호를 매기는 자리수가 32bit가 아니라 28bit라고
하네요. 따라서 28비트로 표현할 수 있는 가짓수와 섹터크기 512바이트를
곱하면 128G 정도 나옵니다. (하드 만드는 데선 137G라고 함)
지금 lba32의 128G 제한도 아슬아슬하다 하네요. 이걸 또 확장한다는 소리도
있습니다.
(그것으로 커버 가능한 용량이 144테라바이트인가 그럴겁니다.)
펜티엄급이라면 일부 바이오스 업그레이드 가능한 보드나 아주 늦게 나온
보드가 아닌 이상은 lba32를 지원하지 않는 것이 보통입니다. (바이오스
업그레이드시는 모르겠지만) 이런 보드들은 대부분 8.4G까지만을 커버해
줍니다. 486 이하라면 8.4G도 커버 못하고, 500메가 정도만을 커버할
수 있지요.(바이오스에서)
펜티엄 2이후부터는 대부분 lba32를 지원합니다.
매우 초창기에 나온 것이 아닌 이상은 다 그럴겁니다.
여기까지는 바이오스의 하드디스크 지원에 관한 얘기였고,
사실 리눅스는 바이오스 무시하고 하드에 직접 접근해서 다룹니다.
따라서 바이오스가 lba32나 8.4G, 500메가만 지원한다 해도 리눅스는
바이오스에서 인식 못하는 영역도 다 쓸 수 있는 것이지요.
예를 들자면 바이오스가 하드 용량을 500메가밖에 인식 못한다 해도 리눅스를
깔아놓으면, 5기가든 20기가든 마음놓고 쓸 수 있다는 것입니다.
(제 컴은 바이오스가 8.4G밖에 인식 못하는데, 맥스터 40G 하드를 달아놓고
리눅스 깔아다 쓰고 있습니다. 물론 40G 다 쓰고 있지요)
다만 문제가 되는 것은 부팅과정 중 하나인 리눅스 커널을 메모리에
로드하는 과정입니다. 이과정에서는 하드 접근시에 바이오스 루틴을
이용할 수 밖에 없어서 바이오스의 제한에 어쩔 수 없이 걸리게 됩니다.
이 경우에는 커널을 바이오스가 인식하는 영역 안에 위치시키는 편법을
동원해야 합니다. 파티션할 때 /boot 파티션을 바이오스가 인식하는
영역(8.4G라면 8.4G 안쪽)에 위치시키는 것입니다. fdisk로 하면
이것 어렵지 않게 할 수 있습니다.
물론 lba32를 쓰게 된다면 바이오스가 인식할 수 있는 하드 공간이
최대 128G가 됩니다. 따라서 커널을 배치하기 수월하죠. 더군다나 128G
넘는 하드는 지금 나왔는지도 모르겠네요. 나왔다면 아마 신제품일겁니다.--Written by the Blac
k Knight