W kontekście Linuksa często można usłyszeć określenie lilo. Trzeba wiedzieć że są dwie różne rzeczy - programy - i należy je odróżniać: lilo (tutaj pisane małymi literami) i LILO (pisane wielkimi literami). LILO to skrót od LInux LOader. Program LILO ładuje Linux (jądro systemu operacyjnego) do pamięci RAM. To się obecnie nazywa bootloader. Po polsku należałoby powiedzieć na to - program rozruchowy. Cóż to jest program rozruchowy czyli bootloader i do czego służy ? Otóż to służy również do tego aby po włączeniu komputera użytkownik mógł wybrać system operacyjny. Np. może być taka sytuacja (ja mam taką sytuację) jak włączam komputer to mi się pojawia na ekranie tabela, w której mam 24 pozycje i każda pozycja to może być jakiś Linux. Ja mam na pierwszej pozycji Mandrake. Mandraków ma 3 lub 4. Na innej pozycji mam Linux Edu (mam wciąż 0.3 i ten nowy 0.4.1) potem Mepis i inne dystrybucje Linuksa. Czy jest Windows? Nie, na tym komputerze nie ma Windows. Dysk twardy (80 GB) jest podzielony na partycje, mniej więcej 4 gigabajtowe i na każdej jest coś innego. Ciągle to zmieniam. Np. na jednej pozycji jest FEDORA. W momencie gdy pojawia się nowa FEDORA to kasuję starą i w tym miejscu umieszczam nową. Do niedawna to miałem tak ustawione, że po włączeniu komputera, pokazywała się tabelka i jeśli nic nie wybrałem, to uruchamiał się pierwszy z brzegu - jakiś Mandrake. Wreszcie - tutaj w pracy na uczelni - stwierdziłem, że takie ładowanie domyślnego systemu jest niewygodne. W pracy nie mam cierpliwości aby czekać aż mi się ta tabelka załaduje. Dlatego zmieniłem to ustawienie. Obecnie wchodzę do pokoju, włączam komputer i odchodzę na chwilę aby coś innego zrobić, np. rozbieram się dopiero albo włączam czajnik z wodą. A ta tabelka się pojawia i czeka. Podchodzę i wybieram sobie odpowiedni system: jakiś Linux lub Windows XP. Właśnie program LILO wyświetla tę tabelkę a następnie - po wyborze - ładuje system. Przejdę teraz do (małego) lilo. Co robi to? To jest polecenie linuksowe, polecenie które wydaje się z konsoli, (trzeba być administratorem czyli root-em). Można wydać to polecenie z parametrami lub bez parametrów. Jeżeli się wyda takie polecenie to co się dzieje ? Otóż jest czytany plik, który jest umieszczony w katalogy /etc i nazywa się lilo.conf. Jest sprawdzanie czy ten plik jest poprawny. Są pewne zasady jak ten plik ma wyglądać. Co się dzieje dalej ? Co jest w tym pliku ? W tym pliku jest podana informacja gdzie ma być umieszczony ten bootloader (LILO). Czyli lilo to jest polecenie, które umieszcza w odpowiednim miejscu ten bootloader. Może być w następujących miejscach umieszczony:
Teraz dalej (co robi lilo). Czyta, sprawdza gdzie ma być umieszczone LILO.Ponieważ umieszczenie LILO w sektorze to jest zamazanie tego sektora to wcześniej ten sektor jest kopiowany w odpowiednie miejsce. Jeżeli było lilo bez parametru to ta kopia będzie umieszczona w katalogu /boot w pliku o nazwie boot.nnmm przy czym to nn oznacza kontroler dysku a mm oznacza dysk i partycję na tym dysku. Np. jeżeli LILO ma być zapisane w MBR pierwszego dysku IDE to kopia sektora będzie w pliku boot.0300. W MBR jest również tablica partycji. Warto zachować plik boot.0300 w jakimś katalogu z datą. Polecenie lilo działa tak, że jeśli w katalogu /boot istnieje już plik (kopia sektora) to nowa (aktualna) kopia nie jest tworzona.
Podczas instalowania Linuksa Edu jest pytanie czy chcesz umieścić LILO w MBR czy w sektorze startowym partycji? Jest też pytanie czy chcesz utworzyć dyskietkę startową? Moja rada: nie umieszczać w MBR, tylko na partycji. W tablicji partycji jest miejsce na informacje o 4 partycjach. Jeżeli jest tak, że pierwsza to jest np. Windows (tak mam w pracy) a na drugiej jest Linux i LILO jest na partycji, to wystarczy ustawić drugą partycję jako aktywną i LILO zadziała. Można zostawić aktywną piewszą partycję i wtedy uruchamia się Windows. Linuksa nie widać. Jeżeli instaluję Linuksa np. na 6-ej partycji i umieszczę LILO na partycji to nie mogę tego uruchomić bezpośrednio. W takiej sytuacji Linux może byc uruchomiony za pomocą dyskietki startowej. W jednej sali zainstalowałem na każdym komputerze Linux-Edu. Wydawało mi się, że wystarczy jedna dyskietka startowa. Okazało się jednak, że obecnie na dyskietce nie ma jądra, jest tylko LILO, które ładuje jądro z twardego dysku. Dyskietka startowa z jednego komputera nie uruchamiała Linuksa na innym komputerze. Wróćmy do (małego) lilo. Został skopiowany sektor. Robione jest jeszcze coś innego. W pliku lilo.conf są podane informacje co można wybrać np. Mandrake, Fedora itd ale również gdzie jest jądro - plik, który trzeba załadować do pamięci. Korzystając z tych informacji co użytkownik chce mieć do wyboru - jakie systemy - oraz gdzie są odpowiednie pliki (wielkości ok. 1 MB lub większe) tworzony jest jeszcze jeden plik o nazwie map i zapisywany domyślnie w katalogu /boot. Plik, który zawiera nazwy i lokalizacje tych jąder i inne rzeczy. Plik jest tworzony a jeśli istniał o takiej nazwie w tym katalogu to nadpisywany. Jak się uruchomi komputer to ten programik (LILO) jest tylko w sektorze. W tym sektorze nie ma informacji o tych wszystkich systemach do wyboru. Gdzie jest ta informacja? Jest w tym pliku map. Program LILO korzysta z tego pliku który został utworzony na etapie wydawania polecenia lilo. Warto o tym wiedzieć bo jeżeli teraz chcemy doinstalować kolejnego Linuksa to musimy w lilo.conf dodać odpowiednią pozycję i wydać polecenie lilo. Wtedy w pliku map zostanie zapisana nowa tabelka i informacje skąd ładować poszczególne jądra lub inne pliki.
Kiedyś było tak, że program LILO nie potrafił wczytać pliku z jądrem jeśli plik był daleko na dysku. Dlatego u mnie pliki (jądra) kolejnych systemów są skopiowane do podkatalogów katalogu /boot aktywnej partycji i w pliku linux.conf są podane ścieżki do tych plików (jąder). Dyskietka startowa - może być różnie. Kiedyś jądro było mniejsze i było umieszczane na dyskietce. Można było używać jednej dyskietki do uruchamiania róznych komputerów - nawet jeśli system w innym komputerze był na innej partycji. Obecnie dyskietka (z LILO) musi być dostosowana do danej dystrybucji i komputera. Ja tutaj nastawiam się głównie na opowiadanie o Linux-Edu. Linux-Edu v. 0.4.1 ma ustawione domyślnie tzw. lilo graficzne tzn. pojawia się jakiś obrazek i na tym obrazku są te opcje do wyboru. Niektórym się to podoba, jest to nowsze rozwiązanie. Ja jestem przyzwyczajony do starszego rozwiązania, które od wielu lat stosuję, dlatego z tej grafiki zrezygnowałem i zamierzam opowiedzieć jak to można zrobić, czyli cofnąć się do sytuacji z przed kilku lat gdy jeszcze tego rozwiązania graficznego nie było. W przypadku Linux-Edu aby z graficznego LILO przejść do tekstowego (menu) wystarczy zakomentować pewne wiersze w pliku lilo.conf i odkomentowac inne. Na zakończenie, poniżej przykład pliku /etc/lilo.conf. Linux-EduCD 0.4.1 został zainstalowany na partycji hda2. Na partycji hda6 został zainstalowany Mepis. Z katalogu /dev/hda6/boot zostały skopiowane 2 pliki do katalogu /dev/hda2/boot/mepis. Jak widać opcje do wyboru można zabezpieczyć hasłem. Zakomentowanie timeout powoduje, że LILO czeka na wybór.
boot=/dev/hda2
install=menu
prompt
## menu-scheme=wb:bw:wb:bw
delay=20
# timeout=50
map=/boot/map
default="Windows"
image=/boot/vmlinuz-2.4.27
label="LinuxEdu_4.1"
initrd=/boot/initrd.img-2.4.27
append="ramdisk_size=100000 apm=power-off hdc=scsi nomce "
root=/dev/hda2
read-only
password=123qwe123
image=/boot/mepis/vmlinuz-2.6.10
vga=791
label="MEPIS"
append="nomce"
root=/dev/hda6
initrd=/boot/mepis/initrd.splash
password=123asd123
other=/dev/hda1
label="Windows"
other=/dev/hda7
label="Partycja7"
|