|
LILO란 무엇일까요?
LILO는 LInux LOader로서 여러개의 운영체제를 선택할 수 있게 해주는 일종의 스위치입니다.
즉, 시스템에 하나 이상의 운영체제가 설치되어 있을 때, 각 운영체제를 선택할 수 있게 하는 기능을 지칭합니다. lilo는 이름에서 알 수 있듯이 리눅스에서 지원되는 로더이며, 여러분이 많이 알고 있는 NT의 OS Loader와 OS/2의 부트매니저(이 후 나오는 부트매니저는 OS/2의 부트매니저가 아닌 OS를 선택할 수 있는 프로그램을 지칭합니다), 상용제품인 시스템 커맨더 등이 lilo와 같은 기능을 하는 부트 매니저들입니다.
아주 오래전(?) 하드디스크가 없던 시절 부팅을 하기 위해서는 플로피디스크를 사용하였고, 때문에 도스의 버전을 바꾸는 일이나 다른 운영체제를 사용하는 일은 매우 간단하였습니다. 단지 플로피 디스크를 갈아끼우는 것만으로 운영체제를 선택할 수 있었으니까요.
하지만, 하드디스크가 등장하고 대용량이 되면서 하나의 운영체제가 아닌 2개 혹은 그 이상의 운영체제를 하나의 시스템에서 구동되기를 원했고 때문에 나온 것이 부트 매니저입니다. PC의 전원을 넣으면 BIOS가 자동적으로 플로피, 하드디스크등 부트 디바이스 시퀀스대로 탐색해 나갑니다. 이때 읽어들이는 곳은 부트 디바이스의 맨 선두부분이며, 이 선두부분을 MBR이라고 부릅니다. 여기에 Initial Program Loader(IPL)라 불리는 작은 프로그램이 입력되어 있습니다. 이 프로그램을 메모리에 로드하고 실행하게 되면 IPL에서는 OS의 부트 프로그램이 디스크의 어디에 있는지 알고 있으며, 그것을 실행함으로써 해당 OS가 부팅되는 것입니다. 이 때 여러개의 OS중에서 선택할 수 있도록 만들어진 프로그램을 MBR에 저장함으로써 시동할 때마다 선택한 OS가 부팅되게 합니다.
간단한 멀티부트환경을 구축하기 위해서는 그리 많은 사전지식이 필요하진 않습니다. 단지, 하드디스크가 하나만 있으며 Windows가 먼저 설치되어 있고 리눅스를 나중에 설치하며 설치 시 약간의 공간과 lilo를 MBR에 설치하는 것만 기억하시면 멀티부트환경은 한방에 구축될 것입니다.
|
MBR |
hda1 |
hda2 |
hda3 |
|
lilo |
windows |
linux |
swap |
위의 표는 일반적인 설치시의 파티션 구성이며 실제로 이렇게 구성되어 집니다.
여기서 hda는 IDE방식의 하드디스크 첫 번째를 뜻하며, 아래 그림을 참조하시면 쉽게 이해하실 수 있습니다.
|
메인보드 |
HDD 케이블 |
HDD 케이블 |
|
프라리머리 소켓 |
마스터 hdd (hda) |
슬래이브 hdd (hdb) |
|
hda1 |
hda2 |
hdb1 |
|
세컨더리 소켓 |
마스터 hdd (hdc) |
슬래이브 hdd (hdd) |
|
hdc1 |
hdc2 |
hdc3 |
hdd1 |
hdd2 |
만약 여러분이 리눅스의 lilo를 조작한다면 반드시 hda1과 같은 이름을 알고 계셔야 합니다.
다음의 내용은 필자가 lilo의 설정을 다양하게 하기 위해 임의적으로 만든 설정입니다.
저는 Windows와 와우리눅스, 한컴리눅스를 동시에 사용하며, 파티션은 윈도우파티션(C,D) 와우리눅스, 한컴리눅스와 스왑파티션으로만 구성하였습니다. (물론, 혼자 쓰기 때문에 통으로 사용합니다. 하지만, 보안을 위해 파티션 분할하는거 잊으시면 안됩니다.)
|
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 : "Boot" single-key message=/boot/message lba32 default=linux password=1234 restricted
image=/boot/vmlinuz-2.2.17-8wl2 label=linux alias=1 read-only root=/dev/hda3
image=/boot2/vmlinuz label=hancom alias=2 read-only root=/dev/hda6
other=/dev/hda1 label=dos alias=3 |
그럼, 한 줄 한 줄 설명을 해 나가도록 하겠습니다.
boot=/dev/hda : lilo의 부트로더를 인스톨할 장소를 지정합니다. 현재 상태는 MBR이며 만약 플로피디스크에서 한다면 boot=/dev/fd0라고 하면 됩니다.
timeout=50 : "Boot" : 메시지가 뜬 다음 기다리는 시간입니다. 1/10초단위이며 이 시간이 지나면 default로 지정된 운영체제로 부팅하게 됩니다. 만약 무한정 대기하게 하고 싶으면 이 항목을 삭제하시면 됩니다.
single-key : 라벨을 입력하는 것이 아니라 키 하나만 입력하여 선택할 수 있도록 합니다. 아래의 alias부분과 맵핑됩니다.
message=/boot/message.txt : 리로에 뜨는 선택화면(펭귄이 나오고 오른쪽 상단에 선택할 수 있게 하는 화면)의 배경 이미지입니다. 물론 텍스트도 가능합니다.
default=linux : 기본적으로 부팅되는 운영체제의 라벨입니다. 라벨을 입력하지 않고 리턴을 누르면 부팅되는 OS의 라벨입니다. 주의할 것은 라벨이 linux라고 해서 linux가 부팅되는 것이 아니라 라벨이 linux에 해당되는 OS가 부팅된다는 것입니다.
password=1234 : 패스워드를 설치하여 부팅하기 전에 패스워드를 입력해야만 합니다.
restricted : 패스워드를 묻되 inittab에서 지정된 런레벨이 아닐때 만 묻습니다.
|
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault: <= 바로 3이 기본으로 지정된 부팅 런레벨입니다. |
image=/boot/vmlinuz-2.2.17-8wl2 : 시동하는 리눅스의 커널코드 파일의 장소
label=linux : 해당하는 운영체제의 라벨
alias=1 : 싱글키와 같이 사용되며 운영체제 선택시 1만 누르면 해당하는 운영체제가 부팅됩니다.
read-only
root=/dev/hda3 : 리눅스를 부트할 때 루트파일 시스템으로서 마운트하는 파티션을 지정합니다.
image=/boot2/vmlinuz
label=hancom
alias=2
read-only
root=/dev/hda6
other=/dev/hda1 : 리눅스 이외의 운영체제의 파티션
label=dos : 라벨
alias=3
이상의 내용을 여러분 마음대로 수정한 다음 반드시 해야할 사항이 바로 lilo를 입력한 다음 리턴을 치는 것입니다.
|
[root@mmx /etc]# lilo
Warning: /etc/lilo.conf should be readable only for root if using PASSWORD
Added linux (alias 1) *
Added hancom (alias 2)
Added dos (alias 3)
[root@mmx /etc]# |
lilo라는 명령어는 lilo.conf 파일에 설정된 내용을 boot= 항목에 기술된 디바이스에 저장합니다. 만약 오류가 있다면 그 오류를 출력하므로 살포시 고치신 다음, 다시 lilo라고 입력하시면 됩니다.(참고적으로, 이것을 잊으시는 분들이 제 주변에도 많답니다. 반드시 수정하였으면 lilo라고 입력하세요.)
1. Linux에서
|
[root@mmx /etc]# lilo -u (혹은 대문자 U) |
2. Windows에서
3. 디폴트 운영체제의 변경
|
[root@mmx /etc]# lilo -D dos |
1. Linux가 설치된 상태에서 Windows를 설치하였을 때, 하지만 불행하게도 복구디스크가 없을 때
가장 먼저 Linux-install CD를 찾습니다.
다음과 같이 CD의 dosutils로 이동한 다음 loadlin과 autoboot 안에서 vmlinuz를 C의 루트로 복사합니다.
그 다음 리부팅을 해야 하는데,
Starting Windows xx라고 나올 때 F8키를 누르면 메뉴가 나오고, 그 중에서 5번 DOS prompt only를 선택합니다.
그리고 나서 프롬프트가 나오면,
|
c:> loadlin vmlinuz root=/dev/hda1 ro |
라고 입력하면 리눅스로 부팅되는 화면을 보실 수 있습니다.
단, mshbios/u라고 하여 한글 바이오스를 먼저 제거해주셔야만 합니다.
그 다음은 여러분이 아시는 바와 같이 lilo를 설정하고 lilo라고만 입력하시면 됩니다. 그러면 반가운 리로가 여러분을 맞이할 것입니다.
2. 복구디스크 만드는 방법
먼저, 현재 커널의 버전을 확인해야 합니다.
|
[root@mmx /boot]# ls /lib/modules/
2.2.17-8wl2
[root@mmx /boot]# |
다음은 디스켓을 넣고, 복구 디스켓을 만들어 보겠습니다.
|
[root@mmx /boot]# mkbootdisk --device /dev/fd0 2.2.17-8wl2
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press <Enter> to continue or ^C to abort: <= 리턴을 치면 시작합니다.
[root@mmx /boot]# mount /mnt/floppy/
[root@mmx /boot]# ls /mnt/floppy/
boot dev etc initrd.img lost+found vmlinuz-2.2.17-8wl2
[root@mmx /boot]# |
보시면 알겠지만, 마운트가 되어 있다면 먼저 마운트를 풀어주셔야 합니다.
|