04.DOC

(228 KB) Pobierz

 

Rozdział 4.
LILO









H:\Książki\Informatyka\Linux\Linux - księga eksperta\04.DOC              105










Rozdzia³ 4. ¨ LILO              105

Kamrain Husain

W tym rozdziale:

u        Instalacja programu LILO             

u        Linux i dyski twarde

u        Sektor startowy             

u        Uruchamianie systemu             

u        Program instalujący plik mapowania sektora startowego             

u        Pliki obrazów sektora startowego             

u        Wyłączanie i usuwanie programu LILO

u        LILO – rozwiązywanie problemów             

Program LILO (ang. LInux LOader, czyli program ładujący Linuxa) służy do ładowania jądra systemu operacyjnego. Jest on programem bardzo elastycznym: potrafi uruchomić jądro Linuxa zapisane w dowolnym systemie plików, nie wyłączając dyskietki, również z poziomu innego systemu operacyjnego.

Ten rozdział poświęcony jest programowi LILO, obsłudze dysków twardych w systemie Linux, procesowi uruchamiania systemu (ang. boot), najpopularniejszym metodom uruchamiania systemu i ich powiązaniom z LILO. Powinien on pomóc Ci zainstalować oraz poprawnie i wydajnie używać programu LILO.

W systemach linuxowych spotkać można kilka wersji programu LILO. Większość nowszych wersji obsługuje jedną z dwóch struktur katalogów: bardziej tradycyjna (i starsza) struktura przechowywana jest w katalogu /etc/lilo, natomiast nowsza struktura porozrzucana jest po kilku katalogach, takich jak /etc, /sbin i /boot. Ponieważ wersja znajdująca się w całości w katalogu /etc/lilo jest popularniejsza, posłużymy się nią jako wersją modelową. Jeśli posiadasz wersję rozrzuconą po kilku katalogach, w przykładach należy podstawić odpowiednie ścieżki dostępu (jeżeli w systemie plików istnieje katalog /etc/lilo, oznacza to, że zainstalowana jest starsza wersja programu LILO).

Instalacja programu LILO

W większości systemów program LILO jest już zainstalowany i skonfigurowany. Jeśli działa on prawidłowo w Twoim systemie, możesz pominąć ten podrozdział, chyba że zamierzasz uaktualnić wersję tego programu.

Wiele wersji Linuxa zawiera procedurę szybkiej instalacji programu LILO, instalującą minimalną liczbę plików niezbędnych do jego uruchomienia, która jest opisana w pliku QuickInst.old albo QuickInst.new (choć nie we wszystkich wersjach Linuxa). Może ona być używana wyłącznie w przypadku pierwszej instalacji programu LILO lub, gdy jego stara wersja ma zostać całkowicie usunięta. Nie powinna być natomiast stosowana do uaktualniania wersji LILO, ponieważ utracone zostaną wszystkie informacje konfiguracyjne.

 

Zanim można będzie skompilować program LILO, należy odpowiednio skonfigurować jądro systemu, używając programu makeconfig. Aby kompilacja przebiegła poprawnie, wszystkie pliki nagłówkowe kodu źródłowego jądra systemu muszą znajdować się w katalogu /usr/ include/linux. Proces instalacji i kompilacji powinien zostać uruchomiony pod kontrolą powłoki sh (Bourne Shell) albo kompatybilnej. Zgłaszane były problemy pojawiające się podczas kompilacji pod kontrolą powłoki Korn Shell, lepiej więc użyć powłoki /bin/sh lub /bin/bash.

Pełna instalacja LILO wymaga, by wszystkie pliki z jego archiwów (zazwyczaj nazywają się one lilo.xxx.tar.gz, gdzie xxx odpowiada numerowi wersji) były rozpakowane do katalogu o nazwie innej niż /etc/lilo, ponieważ procedura instalacyjna zgłasza błąd, gdy nazwy katalogu źródłowego i docelowego są identyczne. Po zdekompresowaniu plików do jakiegoś tymczasowego katalogu należy kolejno:

1.  przejrzeć plik makefile i upewnić się, że zawarte w nim informacje dotyczące konfiguracji są prawidłowe (dokładniej temat ten zostanie omówiony w podrozdziale „Plik makefile”);

2.  skompilować program LILO; jeśli chcesz używać starej struktury katalogów (/etc/lilo), wydaj polecenie

 

make –f Makefile.old

3.  natomiast jeśli chcesz zainstalować nowszą strukturę:

 

make –f Makefile.new

4.  skopiować pliki programu LILO do katalogu docelowego, wydając polecenie

 

make –f Makefile.old install

lub

 

make –f Makefile.new install

w zależności od tego, czy używasz starej, czy nowej struktury katalogów;

5.  przejrzeć katalogi lilo; powinny znajdować się w nich takie pliki jak: any_d.b, boot.b, chain.b, disktab, lilo i os2_d.b.

Jeśli plików tych nie ma albo też podczas instalacji wyświetlane były komunikaty o błędach, powinieneś powtórzyć proces instalacji. Należy również sprawdzić, czy informacje zawarte w pliku Makefile są odpowiednie dla systemu. Po prawidłowym zainstalowaniu programu LILO można użyć go do skonfigurowania procesu uruchamiania systemu.

Problemy z dyskami twardymi

W niektórych systemach dyski twarde nie pozwalają na odczytanie informacji o swoich parametrach, takich jak ilość głowic, cylindrów i sektorów na ścieżkę – generowane są wtedy komunikaty typu „bad geometry”, a proces instalacji kończy się błędami dysku. Dotyczy to szczególnie dysków SCSI oraz dysków o pojemności większej niż 1GB.

W takim przypadku parametry dysku muszą zostać wpisane do pliku disktab. Dokładniejszy opis tego zagadnienia znajdziesz w podrozdziale „Tablica parametrów dysku” w dalszej części tego rozdziału. Zmodyfikuj zgodnie z opisem zawartość pliku disktab, dopisując do niego parametry dysku, a następnie przetestuj nową konfigurację, kopiując ją na dyskietkę i uruchamiając z niej system. Aby to zrobić, musisz:

1.  wejść do katalogu programu LILO (zazwyczaj jest to katalog /etc/lilo);

2.  skopiować konfigurację LILO na dyskietkę za pomocą następującego polecenia:

 

echo image=nazwa_kernela | ./lilo –C b /dev/fd0 v

gdzie nazwa_kernela to nazwa pliku zawierającego jądro systemu (jeśli nie chcesz utracić bieżącej zawartości pliku mapowania sektora startowego, powinieneś dodać opcję –m, a po niej nazwę nowego pliku mapowania);

3.  ponownie uruchomić system z dyskietki.

Jeśli informacje konfiguracyjne są poprawne, LILO odczyta program uruchamiający system z dyskietki, po czym załaduje z dysku twardego jądro systemu. Parametry dysku są poprawne, jeżeli uruchomienie przebiegło pomyślnie i można poruszać się po systemie plików. Jeśli nie masz dostępu do systemu plików zapisanego na dysku twardym, oznacza to, że parametry dysku zostały podane nieprawidłowo i należy je poprawić.

Plik Makefile

Plik Makefile, dostarczany razem z programem LILO, zawiera informacje poprawne dla większości systemów, dla bezpieczeństwa należy jednak je przejrzeć. LILO używa danych zapisanych w pliku Makefile albo /etc/lilo/config.defines. Jeśli istnieje plik config.defines, plik Makefile jest ignorowany. W większości przypadków edycja pliku Makefile jest dobrym rozwiązaniem, ale jeśli zamierzasz intensywnie korzystać z programu LILO, lepiej wprowadzać modyfikacje do pliku config.defines, ponieważ nowe instalacje LILO nie naruszają danych w nim zapisanych.

Parametry definiowane w pliku Makefile, na które należy zwrócić szczególną uwagę, zebrane zostały w tabeli 4.1, wraz z objaśnieniami sposobu ich działania.

Tabela 4.1. Parametry programu LILO definiowane w pliku Makefile

Parametr

Znaczenie

IGNORECASE

Powoduje, że w nazwach plików zawierających jądro systemu nie rozróżniane są małe i wielkie litery; domyślnie włączone.

NO1STDIAG

Powoduje, że nie będą wyświetlane komunikaty o błędach odczytu przy ładowaniu programu zarządzającego uruchamianiem systemu; domyślnie wyłączone.

NOINSTDEF

Jeśli w wierszu poleceń pominięto opcję instalacji, nie zostanie zainstalowany nowy sektor startowy, ale zmodyfikowany istniejący; domyślnie wyłączone.

ONE_SHOT

Powoduje, że system nie uruchomi się samoczynnie w przypadku, gdy wciśnięty zostanie jakiś klawisz; domyślnie wyłączone.

READONLY

Zapobiega usunięciu istniejącego pliku mapowania sektora startowego; domyślnie wyłączone.

Aktualizacja LILO

Proces uaktualniania istniejącej wersji LILO przebiega prawie tak samo jak jego pierwsza instalacja. Jedyną różnicą jest fakt, że wykonane zostaną kopie zapasowe wszystkich istniejących plików konfiguracyjnych, o nazwach z rozszerzeniem .old, na przykład plik chain.b zostanie przemianowany na chain.old. Jeśli nowa wersja LILO zachowuje się poprawnie, pliki te mogą później zostać usunięte.

Uaktualnienie wersji LILO zawsze wiąże się z koniecznością odświeżenia sektora startowego, ponieważ trzeba dodać do niego informacje o nowych lokalizacjach plików i o nowym pliku mapowania sektora startowego. Odświeżanie sektora startowego polega na uruchomieniu programu lilo.

Linux i dyski twarde

Żeby zrozumieć zasadę działania LILO, musisz poznać „budowę” dysku twardego. Na pewno wiesz, że jest to w zasadzie system koncentrycznych ścieżek (ang. track), rozchodzących się od środka powierzchni dysku (talerza) w kierunku jego brzegu. Każda ścieżka podzielona jest na pewną liczbę sektorów (ang. sector).

Dysk twardy identyfikowany jest przez liczbę talerzy, a dokładniej liczbę głowic (ponieważ liczba talerzy może być większa, gdy nie wszystkie są używane do zapisywania danych, jak to ma zazwyczaj miejsce w przypadku pierwszego i ostatniego talerza), liczbę ścieżek na cal (mierzoną wzdłuż promienia) i liczbę sektorów przypadających na jedną ścieżkę. Znając pojemność jednego sektora, łatwo wyliczyć całkowitą pojemność dysku przez pomnożenie liczby sektorów na ścieżkę, liczby ścieżek i głowic oraz pojemności jednego sektora.

Linux jest dość ściśle powiązany z systemem DOS, więc zobaczmy najpierw, jak z dysku twardego korzysta DOS. Dysk zawierający jeden system operacyjny (czyli również dyskietka) posiada sektor startowy (ang. boot sector), po którym następuje obszar danych, zawierający między innymi blok administracyjny (informacje o rozkładzie plików itp.).

Sektor startowy jest pierwszym sektorem na dysku; jest on odczytywany podczas uruchamiania komputera w celu załadowania systemu operacyjnego. Sektor startowy zawiera króciutki program, kierujący proces uruchamiania systemu do właściwych procedur inicjujących.

Blok administracyjny jest przeważnie częścią obszaru danych, choć nie jest bezpośrednio dostępny dla użytkowników. Zawiera on informacje o położeniu plików na dysku (w formacie głowica/ścieżka/sektor). W systemie DOS zapisane są one w tablicy alokac...

Zgłoś jeśli naruszono regulamin