나는 2개의 IDE 드라이브와 하나의 SCSI 드라이브를 가지고 있다. SCSI 드라이브는 바이오스에서 인식할 수 없다. 리눅스 로더, 리로(LILO), 는 바이오스 호출(BIOS call)을 사용하고 오직 바이오스에서 인식하는 드라이브만 인식할 수 있다. 나의 멍청한 AMI 바이오스는 단지 A 드라이브 또는 C 드라이브 에서만 부팅이 된다. 나의 루트 파일 시스템은 SCSI 드라이브의 파티션에 존재한다.
해답: 커널, 맵 파일, 그리고 리눅스 파티션에서의 체인로더를 첫 번째 IDE 드라이브에 저장한다. 당신의 루트 파티션위에 커널이 반드시 있어야할 필요는 없다는걸 주목하라. 첫 번째 IDE 드라이브(/dev/hda2)의 두 번째 파티션은 /u2 디렉토리에 마운트 되어 있다. 여기 내가 사용하는 /etc/lilo.conf 파일 이다.
# 첫 번째 IDE 드라이브의 마스터 부트 레코드(MBR)에
# 리로 부트 레코드를 설치한다.
#
boot = /dev/hda
# /sbin/lilo 가 다음의 파일로부터 리로 부트 레코드를
# 마스터 부트 레코드(MBR)의 위치에복사한다.
install = /u2/etc/lilo/boot.b
#
# 나는 verbose 부트 메뉴를 썼다. 리로가 이곳에서 이것을 찾는다.
message = /u2/etc/lilo/message
# 설치 프로그램이 다음 파일을 만들것이다.
# 이것은 부트-로더에 어디에 커널의 블럭이 있는가를 알려준다.
map = /u2/etc/lilo/map
compact
prompt
# 10초를 기다리면 기본값으로 1.2.1 커널을 부팅하다.
timeout = 100
# 다음과 같이 함으로써 바이오스가 이것을 인식할 수 있는 곳에 커널이 저장된다.
# cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
label = 1.2.1
# 리로가 커널에게 첫 번째 SCSI 파티션을 루트로서 마운트하는 것을 알려준다
# 바이오스는 이것을 인식할 수 없다.
root = /dev/sda1
# 이 파티션이 검사되고 /etc/rc.d/rc.S에 의해 다시 마운트 될것이다.
read-only
# 같은 커널이 루트 파티션 대신에 다른 파티션을 마운트하도록 할 수 있다.
# 나는 비상용 루트 셋업을 /u2에 가지고 있다.
image = /u2/z1.2.1
label = 1.2.1-hda2
root = /dev/hda2
read-only
# 나는 새로운 커널이 작동하지 않을경우를 대비하여 구버젼의
# 슬랙웨어 커널을 보관해 놓았다. 나는 실제로 한 번 이것이 필요했다.
image = /u2/z1.0.9
label = 1.0.9
root = /dev/sda1
read-only
# 나의 DR-DOS 6 파티션.
other = /dev/hda1
loader=/u2/etc/lilo/chain.b
label = dos
alias = m