System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제3장 시스템 관리 기초

    5. 부트 로더 lilo


boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

default=linux

image=/boot/vmlinuz-2.2.12-20kr

label=linux

initrd=/boot/initrd-2.2.12-20kr.img

read-only

root=/dev/hda5

인텔/리눅스에서 부트 과정을 관리하는 lilo는 새로운 부팅 프로그램이 나오기 전에는 이와 같이 설정 파일을 편집하여 사용하는 수 밖에 없다.

lilo 설정 파일은 image= 또는 other= 설정행이 나오기 전까지의 전체 설정 부분과 image=, other= 등의 개별 부팅 정의부분으로 나뉜다.

▶ boot=<lilo가 설치될 장치명>

lilo 설정 파일에서 제일 먼저 등장하는 설정행이며, 가장 중요한 결정을 해야 하는 곳이기도 하다.

lilo가 설치될 장치명을 적는다. lilo가 설치될 수 있는 곳은 3가지이다. /dev/hda라면 첫 번째 ide 하드 디스크의 mbr이고, /dev/sda라면 scsi 첫 번째 부팅 가능한 하드 디스크의 mbr이다. 부팅 가능한 scsi 하드 디스크의 scsi id는 0 도는 1 이어야 한다. mbr에 설치하면 lilo가 시스템의 기본 루트 로더가 된다.

다른 부트 로더의도움을 받아 부팅하는 것이라면 리눅스가 설치된 루트 파티션 장치명을 지정한다. /dev/hda2, /dev/hdb1등 파티션 하나하나를 가리키는 장치명을 적는다.

세 번째 방법으로는 플로피 설치가 잇다. 이때는 부팅 가능한 첫 번째 플로피 장치명인 /dev/fd0를 적는다. 플로피 드라이브의 첫 번째 섹터에 적는 방식으로서, 이 방법도 한 때는 필자가 자주 사용하는 방식이었다. 플로피를 끼워두고 부팅하면 리눅스로 부팅하고, 그렇지 않을 때는 도스로 부팅하게 할 때 유용하다.

▶ prompt, timeout=<입력 대기 시간, 1/10초 단위>

여러 운영체제를 같이 사용하는 대부분의 사람들에게 필요한 옵션으로서, prompt를 한줄에 적어두면 boot: 프롬프트가 표시되면서 부팅할 목록을 입력받는다. 이것을 생략하면 lilo까지만 표시되고 만다. 이때 만약 boot: 프롬프트를 표시하고 싶다면 <shift> 등의 키를 한번 눌러주면 된다.

timeout값을 설정하면 지정된 시간안에 키보드 입력이 없을 때 첫 번째 등록된 부팅 항목 또는 default= 설정행에서 지시하는 항목으로 부팅하게 된다. 1/10초 단위로 지정하므로 50은 5초를 의미한다. 보통 플로피에 설치하는 경우 prompt와 timeout 설정이 필요없으며, ibm os/2 부트 매니저를 사용할 때도 역시 필요치 않다. 즉, mbr에 설치할 때 그리고 lilo를 기본 멀티 부트 매니저로 사용할 때만 유용하다.

리눅스만 설치되어 잇는 서버에서는 이 옵션을 사용하지 않을 것이다. 왜냐하면, 부팅할 운영체제가 딱 하나이기 때문이다.

▶ append="<커널 옵션>"

커널 또한 부트 로더로부터 옵션을 받을 수 있다. 이는 마치 일반 유닉스 명령에 옵션을 사용하는 것과 같다. 커널 옵션은 boot: 프롬프트에서도 매번 입력할 수 잇지만, 항상 입력해야 하는 것이라면 이 곳에 적어줄 수 있다. 보통 인텔/리눅스에서 64메가 그 이상의 메모리를 커널에 통보하기 위해 mem=???m을 사용하거나, bios 정보가 잘못 전달되는 경우 하드 디스크의 지오메트리(geometry) 정보를 적는 데 사용한다.

그러나 이 옵션은 모듈로 된 커널 기능과 무관하게 vmlinuz 또는 zimage라는 이름의 커널 본체에 들어 있는 기능에 대해서만 부여할 수 있다는 사실을 알아야 한다.

커널 모듈에 대한 옵션은 /etc/conf.modules 파일에 적는다.

▶ default=<기본 부팅 항목>

lilo는 default= 설정행이 없으면 image= 또는 other= 설정행으로 첫 번째 등록된 항목으로 일정 시간 뒤 부팅한다. default= 행 뒤에는 label= 행의 내용 중 하나를 적는다.

▶ image=<리눅스 커널 이미지 위치>

리눅스 커널 이미지를 등록하는 부분이다. 리눅스 커널 이미지는 vmlinuz 또는 zimage라는 이름을 갖는다. 파일의 위치는 루트(/) 디렉토리 또는 /boot 디렉토리이다. 레드햇을 설치하고 나서 기본값은 /boot/vmlinuz로 되어 있을 것이다.

하나의 리눅스 lqnxld 항목 설정이 image= 설정행으로부터 시작하며 관련된 label=, root=, initrd= 설정행은 인덴트(indent)하여 보기 좋게 표시하는 것이 좋다.

▶ label=<등록하고자 하는 이름>

부팅 항목을 구별하는 인식 단어이다. 리눅스 커널 부팅을 설정하는 경우라면 관례적으로 linux 라는 이름을 사용한다. 그리고 도스/윈도우에 대해서는 그냥 dos라고 적는다. 하지만, 꼭 이 이름을 사용해야 하는 것은 아니고, 여러분 마음대로 정할 수 있다.

▶ root=<루트 파티션 장치명>

리눅스가 설치된 루트 파티션 장치명을 적어준다.

▶ read-only

이 설정행은 리눅스 부팅에만 해당하는 내용이다. 리눅스는 대부분의 경우 일단 루트 파티션을 읽기 전용으로 마운트한다. 파티션의 이상 유무를 알아보기 위해 e2fsck 명령을 실행할 때는 파티션이 마운트되어 잇지 않거나, 또는 읽기 전용 상태여야 한다. 초기화 과정 중 이상이 없다고 판단되면 정상적인 읽기/쓰기 상태로 전환한다.

▶ initrd=<초기화 루트 디스크 이미지>

scsi 장치 사용자들은 레드햇 리눅스 설치 후 /etc/lilo.conf 파일안에 initrd=boot/initrd-2.2.12-20kr.img와 같은 행이 있다는 것을 알 수 잇을 것이다.

initrd란 초기화(initial) 루트디스크(root disk)의 약자이다. 이는 커널의 기능들이 모듈화되면서 생기는 문제를 처리하기 위해 나온 기술적인 해결책이다.

다음과 같은 상황에서 필요하다.

1. scsi 하드 디스크 장치만 가지고 있다.

2. 커널 이미지에는 scsi 기능이 들어 있지 않다.

3. scsi 기능은 모듈로 처리되어 있다.

레드햇 리눅스 배포판의 커널에는 scsi 기능이 들어 있지 않고 모듈로 따로 떨어져 잇다. 자, 생각해 보자. 커널이 부팅하면서 scsi 하드 디스크를 읽어야 하는데, 커널에는 scsi 기능이 들어 있지 않다. scsi 기능을 구현하는 모듈은 scsi 하드 디스크에 있는 상태이다. scsi 기능이 없으므로 scsi 하드 디스크를 읽을 수도 없고, 따라서 모듈은 그림의 떡이다. 커널은 그냥 패닉(panic)상태가 되어 버린다.

initrd는 기본 커널이 부팅한 후 정상적인 부팅을 위해 추가로 사용해야 하는 기능들을 연이어 적재하기 위해 사용된다. 레드햇 리눅스는 설치 과정에서 scsi 기능을 자동을 initrd 이미지로 만들어서 /boot 디렉토리에 저장하고, /etc/lilo.conf에 initrd= 라는 항목을 넣어준다.

일반적으로 커널을 다시 컴파일하여 필수 scsi 기능을 커널 이미지에 넣어둔 경우 initrd= 설정은 필요치 않다. 그때는 initrd= 행을 주석 처리하거나 지우기 바란다.

initrd 이미지 파일을 만드는 명령으로는 mkinitrd를 레드햇 리눅스에서 제공하고 있다.

▶ other=<다른 운영체제 파티션>

리눅스 이외의 도스/윈도우 운영체제가 설치된 파티션 위치를 지정하고 등록하기 위한 설정행이다. root=, read-only 설정행은 필요치 않는다. table= 설정행에는 /dev/hda 또는 /dev/sda를 적는다.

나. 여러 버전의 커널 사용하기

image=/boot/vmlinuz-2.2.12-20kr

label=linux

read-only

root=/dev/hda5

image=/boot/vmlinuz-2.2.10-20kr

label=devel

read-only

root=/dev/hda5

리눅스 부팅 항목을 꼭 하나만 두어야 한다는 조항은 없다. 위의 예에서처럼 image= 와 label= 행을 달리 함으로써 여러개의 커널 버전을 선택적으로 사용할 수 있다.

새로운 버전의 커널을 컴파일하여 시험할 때는 그냥 원래의 이미지를 덮어쓰지 마록, 원래 잘 되던 내용은 안전을 우해 보존하고, 커널 이미지 이름을 버전 번호를 붙여 저장하고, lilo 설정을 하나 더 해주자.

위의 예에서 2.2.10 개발 버전으로 부팅하기 위해 lilo boot: 프롬프트에서 devel 이라고 입력한다. 필요에 따라 다시 원래의 안정 버전으로 부팅하기 위해 linux 라고 입력한다.

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.