Bootloadery: LILO, CHOS
Bootloadery
Bootloader to program który odpowiada za wybór systemu operacyjnego podczas uruchamiania
komputera. Przeważnie znajduje się na początku partycji lub w pierwszych sektorach dysku.
Szczególnie przydatny jest w sytuacji, gdy na dysku posiadamy kilka systemów operacyjnych i nie
chcemy do uruchamiania każdego z nich używać dyskietek startujących. Najpopularniejszym tego typu
programem rozpowszechnianym z dystrybucjami Linuksa jest LILO (Linux Loader).
Posiada wiele możliwości i potrafi uruchamiać nie tylko Linuksa. Niestety dla początkujących
użytkowników jest dość trudny w obłudze i konfiguracji.
LILO nie jest jedynym programem tego typu na Linuksa. Przyjrzymy się jednemu z jego konkurentów,
który moim zdaniem jest znakomitą aletrnatywą. Tym programem będzie CHOS
(Choose-OS).
1. LILO
LILO rozpowszechniany jest praktycznie z każdą dystrybucją Linuksa, więc nie będzie
najmniejszych kłopotów z jego zdobyciem. Pozatym chyba wszystkie dystrybucje używają go jako
domyślnego bootloadera. Nie spotkałem jeszcze takiej, która podczas instalacji umożliwiała by
zainstalowanie innego programu niż LILO.
Plikiem konfiguracyjnym jest /etc/lilo.conf.
Oto jego przykładowa zawartość:
boot = /dev/hda
default = linux
delay = 300
prompt
vga = normal
# Ustawienia Linuksa:
image = /vmlinuz
root = /dev/hda5
label = linux
read-only
#Ustawienia DOSa:
other = /dev/hda1
label = dos
table = /dev/hda
Tak skonfigurowany LILO umożliwia nam uruchomienie dwóch systemów: Linuksa znajdującego się na
partycji /dev/hda5, lub DOSa który jest na
partycji /dev/hda1.
Niektórzy mogą nie wiedzieć jak się w Linuksie oznacza partycje.
/dev/ jest to katalog w którym przechowywane są
wszystkie pliki urządzeń. Jeżeli używamy dysku IDE to pliki partycji na początku będą miały
hd. Następna litera określa na jakim kanale
pracuje dysk i w jakim jest trybie (primary lub slave). Litera
a jest dla dysku na pierwszym kanale
pracującego jako master, b to dysk również na
pierwszym kanale, lecz w trybie slave. c to
drugi kanał i dysk w trybie master. d to dysk
na kanale drugim w trybie slave. Cyfra oznacza numer partycji. Tutaj już musimy wiedzieć jaki
numert ma partycja. Jeżeli mamy tylko jedną na dysku to będzie to najprawdopodobniej
1. Najlepiej posłużyć się programem
fdisk (ew.
cfdisk). Informacje o wszystkich partycjach
jakie widzi Linux można uzyskać wydając polecenie
cat /proc/partitions. Cyfry od 1 do 4
oznaczają partycję typu primary, natomiast liczby większe od 4 są przeznaczone dla partycji
rozszerzonych.
boot definiuje partycję/dysk na którym ma
zostać zainstalowany LILO. Zeżeli chcemy zainstalować go w sektorze głównym dysku nie musimy
podawać numeru partycji.
Przy pomocy default ustawiamy który system ma
być uruchomiony jeżeli użytkownik po czasie określonym przy pomocy
delay (w dziesiątych sekundy) nie zareaguje.
Tutaj trzeba wpisać to samo co w polu
label pożądanego systemu.
Jeżeli zechcemy aby LILO zawsze pytał nas o system, a nie wyświetlał tylko
LILO i po pewnym czasie uruchamiał domyślny
system lub czekał na naciśnięcie klawisza Shift, to musimy wpisać
prompt.
vga służy do zmiany rozdzielczości jakiej
będziemy używac podczas pracy na konsoli. Najlepiej ustawić tu
ext lub
ask. W przypadku wpisania
ask system będzie się nas pytał o tryb
graficzny przy każdym uruchomieniu. Kiedy wybierzemy sobie któryś z nich i będziemy chcieli go
używac na stałe, wted trzeba go ustawić jako parametr
vga, np.
vga = 0x0F06.
Teraz przechodzimy do częsci pliku definiującego ustawienia konkretnego systemu. Na początku
powinna się znaleźć linjka
image = /sciezka_do_obrazu_jadra w przypadku
Linuksa, lub other = /dev/nazwa_partycji w
przypadku dowolnego innego systemu operacyjnego. W przypadku Linuksa dalej ustawiamy parametry
root (nazwa naszej partycji podmontowanej jako
katalog główny /),
label (etykieta dla systemu) i na końcu
wpisujemy read-only żeby partycja główna była
montowana w trybie tylko do odczytu.
W przypadku innych niz Linux systemów operacyjnych dalej definiujemy
label (etykieta systemu) i
table (gdzie znajduje się tablica partycji).
Oczywiście mozna ustawić więcej systemów operacyjnych lub tylko jeden. Możemy też tak
skonfigurować LILO, aby zależnie od wybranej etykiety uruchamiał Linuksa z różnymi wersjami jądra.
Gdy już skonfigurowaliśmy program, teraz trzeba go zainstalować w miejscu ustawionym w pliku
konfiguracyjnym. Robimy to poleceniem lilo.
Możemy dodać parametr -v, aby LILO
pokazywał nam dokładniej co robi.
Może się zdarzyć, że podczas uruchamiania komputera zapomnimy jakie nazwy nadaliśmy w pliku
konfiguracyjnym poszczególnym systemom. Przydatny w tej sytauacji jest blawisz TAB. Po jego
naciśnięciu program wyświetli listę wszystkich dostępnych możliwości.
Jeżeli przy pomocy LILO uruchamiamy Linuksa możemy po etykiecie podać parametry, które mają być
przekazane do jądra, np. linux vga=ask. W ten
sposób można również zmienić poziom (ang. runlevel) w jakim uruchomi się system. Jest to
szczególnie niebezpieczne gdy osoba niepożądana "dobierze" się do naszego komputera. Wystarczy
wtedy, że wpisze linux single, aby uruchomić
system z uprawnieniami root'a bez podawania hasła. W celu zapezpieczenia się przed taką
ewentualnością możemy ustawić LILO tak, aby pytał o hasło w przypadku próby przekazania do jądra
dodatkowych parametrów. W tym celu do sekcji z ustawieniami Linuksa w pliku
/etc/lilo.conf należy dopisać dwie linijki:
password = nasze_haslo oraz
restricted.
2. CHOS
Jak już wspominałem alternatywą wobec LILO jest CHOS. Osobiście preferuję właśnie, ten drugi
program. Jego zaletą jest niewątpliwie łatwiejsze dostosowanie wyglądu, niż w przypadku LILO.
Może się też okazać łatwiejszy w konfiguracji.
Program można znaleźć na kompakcie LinuxPlus 12/B/1999, lub
na kompakcie z dystrybucją Mandrake, w której skład program wchodzi.
Po zainstalowaniu programu musimy utworzyć jego plik konfiguracyjny
/etc/chos.conf. Oto przykładowa zawartość tego
pliku:
delay=30
selection=blue
autoboot=no
install=/dev/hda
password=nasze_haslo
default=1
infoline=off
background=ascii:/boot/bg/background.asc
menupos=0,12
linux "Linux" {
color=green
image=/boot/vmlinuz
position=21,7
password=yes
cmdline=vga=0x0F06 ro root=/dev/hda5
}
bootsect "Dos" {
image=/dev/hda1
color=green
position=21,11
password=no
}
Opis poszczególnych wpisów:
delay
ma takie same znaczenia, co identyczny parametr w przypadku LILO, lecz tutaj czas podajemy w
sekundach
selection
kolor tła dla aktualnie wybranego elementu, może to być jeden z następujących: black, red,
blue, magenta, green, brown, cyan, lightgray
autoboot
mówi kiedy program ma uruchomić domyślny system, bez pokazywania menu. Może mieć trzy
wartości, no aby wyłączyć tą opcję,
pressed aby uruchomić domyślny system jeżeli
użytkownik będzie trzymał klawisz SHIFT podczas startu programu, lub
not_pressed gdy klawisza nie przytrzyma
install
gdzie ma zostać zainstalowany CHOS. Znaczenie analogiczne do
boot z LILO
password
hasło jakiego chcemy uzywać
default
numer obrazu który ma być domyślny
infoline
czy chcemy aby program wyświetlał na dole erkanu pomoc.
on dla tak,
off dla nie
background
opcja jest konieczna w wyadku gdy chcemy używać tła. Między znakiem = a : musimy
jakiego rodzaju tła chcemy używać. ascii dla
zwykłego pliku tekstowego, dump dla pliku
binarnego lub cp437 jeżeli plik używa strony
kodowej 437 (codepage437). Po : podajemy ścieżkę do pliku. Przykładowe tła znajdują się w
katalogu /boot/bg.
menupos
w jakim, miejscu ma się zaczynać menu. Współrzędne
(0,0) są dla górnego lewego rogu
Obrazy skonfigurowane są według następującego schematu:
typ_obrazu "nazwa" {
opcje
}
typ_obrazu może być następujący:
linux - dla Linuksa
bootsect - dla innych systemów
nazwa to tekst, który pojawi się w menu
Opcje dla obrazu:
color
jakim kolorem czcionki będzie wyświetlana nazwa obrazu
image
w przypadku Linuksa podajemy ścieżkę do pliku z jądrem. Gdy nie jest to obraz Linuksa podajemy
nazwę partycji na jakiej znajduje się system
position
ustalamy pozycję nazwy na ekranie
password
tutaj mogą być trzy odpowiedzi: yes dla
tak, czyli będziemy zawsze pytani o hasło po wybraniu danego obrazu.
no - nigdy nie będziemy pytani o hasło.
restricted - będziemy pytani o hasło, gdy
wejdziemy do menu z opcjami jądra (przy pomocy spacji)
cmdline
ta opcja jest wymagana tylko w wypadku Linuksa. Ustawiamy tu dodatkoe opcje jądra. Obowiązkowo
powinniśmy wstawić ro (tryb read-only) i
root=/dev/nasza_partycja. Ewentualnie możemy
dodac też vga .
root i
vga mają takie same znaczenie jak w przypaku
LILO.
Program instalujemy poleceniem chos (możemy
dodać -v). Aby zobaczyć jak będzie wyglądało
menu wpisujemy chos -view. Jeżeli podczas
wyboru systemu będziemy chcieli zmienić opcje jądra, to zamiast potwierdzić wybór klawiczem
ENTER naciskamy spację.
Maciej Korzeń <maciek_k@go2.pl>
Tuesday, 10.10.2000, 20:05:58