필자 : 배철수 / 리눅스월드 발행인
|
|||||||
아래 글은 레드햇 6.2에서 커널을 2.4로 업그레이드하면서 UDMA 100 하드를 사용하는 방법이다. 이 글에서 예를 든 보드는 Abit KT7A-RAID 보드이다.(이 보드는 AMD의 Athlon 칩을 사용한다.) UDMA 100 하드는 기존의 DMA 33 하드에 비해 세 배 이상 빠른 속도를 보여준다. WIDE SCSI 하드와 거의 차이가 없다. 그러나 이 하드를 사용하려면 마더보드가 UDMA 100을 지원해야 한다. 피시의 CMOS 셋업에는 UDMA 100 하드(콘트롤러)를 설정하는 부분이 없고 부팅시 별도의 키를 눌러야 셋업 메뉴가 뜬다.(ctrl+h) UDMA 100 하드를 연결하는 콘트롤러는 기존의 IDE(DMA 33) 하드 콘트롤러와 분리되어 있다. 즉 하드 디스크 연결 콘넥터가 4개이다. IDE 1과 2가 DMA 33 하드 용이고 3과 4는 UDMA 100 용이다. UDMA 100 하드를 기존의 IDE 콘넥터(IDE 1 과 2)에 연결해도 사용은 가능하나 이때는 DMA 33 하드와 같은 속도만을 낸다. UDMA 100 하드의 빠른 전송속도를 이용할 수 없으므로 자원 낭비다. 그런데 UDMA 100 하드를 UDMA 전용 3번이나 4번 콘넥터에 연결하면 레드햇 6.2를 설치할 때 하드를 찾지 못한다. IDE 3번은 장치명이 /dev/hde 와 /dev/hdf 이고 4번은 /dev/hdg 와 /dev/hdh 인데 레드햇 설치 CD에서는 이 장치를 인식하지 못하는 것이다. 이유는 레드햇 6.2 설치에 사용되는 커널에 UDMA 100 콘트롤러 드라이버가 들어 있지 않기 때문이다.(레드햇 7.0은 필자가 테스트해 보지 않아 알 수 없으나 마찬가지일 걸로 생각된다. 이유는 레드햇 7.0도 2.2.X 커널을 사용하는데 2.2.x 커널에는 UDMA 100 드라이버가 들어 있지 않다. 단 패치를 하면 가능하다.) 그러면 어떻게 리눅스에서 UDMA 콘넥터에 연결된 UDMA 100 하드를 부팅 및 사용할 수 있는가? 아래 설명은 레드햇 6.2를 처음 설치하는 경우의 설명이다. 이미 설치되어 있는 경우는 작업 단계가 줄어든다. 이 글을 참고하면 응용이 가능하다. 필자가 사용한 마더보드가 아니면 이 글 대로 따라 해도 UDMA 100 하드를 사용할 수 없을 수도 있다.(하드가 같은 경우에도.) 마더보드의 UDMA 100 콘트롤러가 다를 수 있기 때문이다.
- 설치환경 마더보드 : Abit KT7A-RAID
- 설치작업
1. 개요. 레드햇 6.2 설치 CD에서 사용하는 커널(2.2.14)에는 Abit KT7A 보드에 사용된 UDMA 100 용 vt82cXXXX 및 hpt370 칩셋 드라이버가 들어있지 않으므로 커널을 2.4로 올려야 한다. 그래서 리눅스 설치 때는 UDMA 하드를 일반 IDE 즉 DMA 33 콘넥터(IDE 1 즉 /dev/hda)에 연결해서 설치하고 설치가 끝난 후 커널 2.4에서 UDMA 100 드라이버를 넣어 컴파일한 다음 리부팅해 UDMA 100 콘트롤러가 인식되면 하드를 UDMA 콘넥터(IDE 3 번)로 옮기는 방법을 사용한다. 다른 방법도 있지만 이 방법이 비교적 간편하다. 아래가 그 순서이다.
2. UDMA 하드를 IDE 콘넥터 1 번(/dev/hda)에 연결해 리눅스를 설치한다. 이때 CD로 설치하려면 CD 드라이브는 2 번 콘넥터(/dev/hdc)에 연결한다.(UDMA 100과 DMA 33용 하드디스크 케이블은 다르다.) -
UDMA 100 하드는 primary master(/dev/hda)
3. 커널 2.4를 컴파일 해서 UDMA 100 드라이버를 선택한다. 드라이버는 보드마다 다르므로 선택은 보드 매뉴얼을 참고 한다. 즉 보드에서 사용하는 UDMA 콘트롤러에 따라 선택이 달라진다. 아래는 필자가 사용한 보드의 경우이다. * 커널 컴파일 부분은 여기서 설명하지 않는다.
2.4.X 커널을 사용할 경우 ip masquerade 와 * 커널 버전은 2.4.3이다. Make menuconfig 에서 선택하는 부분이다.
4. lilo.conf에 새 커널을 추가하고 리부팅 한다. 만약을 위해 기존의 커널로 부팅하는 부분을
남겨 놓을 것. 아래와 같다. (default=linux 부분은 제거할 것.)
위에서 bzImage 가 UDMA 100 드라이버를 넣어 컴파일한 커널이다.(2.4.3)
5. 부팅시 메시지에 UDMA 100 콘트롤러가 인식되는지 살필 것. 아래 부분이 UDMA 100 콘트롤러 부분이다.
위에서 “VIA vt82c686b (rev40) IDE UDMA 100
controller ...” 부분이 나온다. 또한 4 개의 IDE 장치가 인식되고
있다.(ide 0 ~ 4) 커널 패치 전에는 두 개의 장치(ide0, ide1) 만
나타났을 것이다. ide2 및 ide3 이 나타나지 않으면 UDMA 100 드라이버가
커널에 들어 있지 않으므로 다음으로 진행하지 말 것. !!!!!!!! 경 고 !!!!!!! 이제부터는 매우 조심해야 한다. 아래에서 파일 수정이 잘못되거나, 명령 실행이 순서대로 되지 않으면 리부팅 시 kernel panic 이 나면서 부팅이 안된다. 상당한 전문가가 아니라면 이를 수정하는 방법을 모르므로 리눅스를 다시 설치하는 불상사를 겪을 수 있다. 자신이 없으면 다른 전문가의 자문을 구할 것. 작업 중간에 전원이 나가거나 임의로 리부팅 해도 문제가 발생한다. 데이터가 들어 있는 사용 중인 하드라면 미리 데이터를 모두 백업한 후 아래 작업을 진행하기 바란다. -------------------------------------------------------------------
6. /etc/fstab 파일을 수정한다. 하드디스크를 UDMA 전용 3번째 콘넥터로 옮기므로 /etc/fstab에 지정된 하드 장치명을 /dev/hda 에서 /dev/hde 로 변경한다. 변경
전
변경
후는 아래와 같다.
* 하드 파티션 구성이 다르면 위와 똑같이 나오지
않는다. 어는 경우든 hda 를 hde로 모두 * 변경 후 절대 리부팅하지 말 것. 리부팅하면 kernel panic 이 나온다.
7. /etc/lilo.conf 를 수정한다. 아래와 같다.(위의 4번에 나오는 필자의 피시의
lilo.conf 를 예로 든다.)
* root=/dev/hde2 만 변경했다. (기존에는 hda2
였다.) 하드를 3번 콘넥터(/dev/hde) 로 주의] 위에서 boot=/dev/hda 는 수정하지 말
것. 이 부분은 lilo 프로그램이 저장되는
8. lilo 명령을 준다. 이를 빼고 리부팅하면 100% 부팅에 실패한다. 혹시 lilo 명령시 에러가 나면 다음으로 진행하지 말고 원인을 살필 것.
9. shutdown -h now 명령으로 시스템을 종료한다.
10. 하드디스크를 3번째 콘넥터에 연결한다. (즉 UDMA 100 전용 첫번째 콘넥터)
11. 다시 리눅스를 부팅하면 이제 부팅시의 메시지가 다를 것이다. /dev/hde가 장치가 새로 나타날 것이다. (hda가 이름이 변경된 것이다.) 아래와 같다.
이제 부팅도 되고 UDMA 100 도 제대로 작동하므로 모든게 끝났는가? 아니다. 아직 한 가지 더 고칠게 있다. lilo.conf 에서 아래 부분을 고쳐야 한다. boot=/dev/hda --> boot=/dev/hde 로 고쳤으면 lilo 명령을 실행. 이제는 하드의 장치명이 /dev/hde 이므로 lilo 명령을 내릴 때 lilo 프로그램은 hde 의 마스트부트레코드에 저장되야 하기 때문이다. 고치지 않아도 부팅은 되겠지만 lilo 명령 때 에러가 난다. “boot= ” 는 lilo 프로그램이 저장되는 하드디스크의 부트 섹터를 지정한다. /dev/hde 는 세번째 콘넥터에 연결된 하드의 마스터부트레코드에 lilo 프로그램을 저장하라는 뜻이다. 다른 운영체제와 멀티부팅을 하는 경우에 lilo 를 MBR에 저장하면 멀티부팅이 안되는 경우가 있다. 이때는 리눅스의 root 디렉토리가 위치하는 파티션 - 위의 경우는 /dev/hde2 - 에 lilo 를 저장한다.
12. 추가해야 될 사항은 부팅 순서에서 hde로
부팅하려면 필자도 처음에 HDD로 지정했다 부팅이 안되서
애를 먹었다. CD 드라이브는 UDMA 두번째 콘넥터에 연결할 것. |