Spotkanie PLUG - 01.XII.1999
Następny tydzień, następne spotkanie. Znowu wystąpił Emil Stępniewski z tym
razem (przynajmniej dla mnie osobiście) wyjątkowo ciekawym wykładem na temat
LILO (przede wszystkim) oraz ogólnie ładowania systemu przez BIOS i procedury
wczytywania kernela do pamięci przez różne loadery.
Można się było dowiedzieć m.in: skąd BIOS wie, co ma zacząć ładować do
pamięci, jaka jest logiczna struktura dysku (co to jest MBR, co to jest
ogólnie boot-sector, tablica partycji, partycje podstawowe <primary>,
rozszerzone, logiczne), a potem w jaki sposób przebiegają kolejne etapy
ładowania systemu przez LILO. Dla osób które nie były na wykładzie, małe
streszczenie tego ostatniego:
- na początku ładowany jest tzw. primary loader - który jest bardzo mały,
ze względu na zafiksowany rozmiar boot-sectora (po załadowaniu na ekranie
pojawia się literka L)
- Primary loader próbuje odczytać tzw. secondary loader - czyli drugi
program ładujący, który już nie ma tak restrykcyjnych ograniczeń co do
swojej wielkości.Jeśli ładowanie się powiedzie - pojawia się literka I, a
jeśli nie - numer błędu który wyskoczył przy ładowaniu, np. 10: błąd CRC,
na ogół wskazuje na uszkodzenie dysku/dyskietki... Przy czym po
wyświetleniu numeru błędu podejmowana jest kolejna próba - ew. znowu jest
wyświetlany numer błędu, i tak w kółko. Stąd efekt przewijających się przez
ekran zer i jedynek...
- Jeśli powiodło się wczytanie drugiego loadera, pierwszy próbuje go
uruchomić - jeśli mu się uda, na ekranie ląduje literka L. Jeśli nie - to
system zwisa...Na ogół oznacza to, że pod adresem który mieliśmy
zapamiętany (bo LILO odwołuje się do dysku po adresach fizycznych, a nie
korzysta z systemu plików) jest coś innego, a nie nasz loader. Możliwe
przyczyny: przenieśliśmy plik z drugim loaderem w inne miejsce, albo źle
wyspecyfikowaliśmy geometrię dysku (lub jej nie podaliśmy, a system sam jej
nie odgadł). Czasem pomaga dodanie opcji "linear" w lilo.conf, lub pełnej
specyfikacji geometrii dysku: liczba cylindrów, głowic, sektorów.
- Jeśli secondary loader się uruchomił, ale coś z nim było nie tak,
wyświetla się znaczek "?" (czyli że obraz drugiego loadera jest nie w tym
miejscu w pamięci co trzeba, dlatego że np. geometria dysku jest podana
niedokładnie) lub "-" (tablica opisująca położenie kernela itp. jest
uszkodzona - to na ogół mają coś wspólnego z plikiem /boot/map - np. był on
przeniesiony w inne miejsce, bez aktualizowania LILO)
- Jeśli został uruchomiony secondary loader i wszystko jest ok, to już on
wyświetla nam literkę "O", ładuje do pamięci kernel i zaczyna go
uruchamiać. Na tym kończy się działanie LILO
Takie informacje są przydatne przy diagnozowaniu problemów z ładowaniem
systemu - teraz już wiadomo z grubsza o co chodzi, jeśli na ekranie jest np.
samo "LI".
Dodatkowo jeszcze poznaliśmy różne sposoby na obchodzenie problemów z
dużymi dyskami i 1024 cylindrem: jednym z nich może być użycie NILO, czyli
loadera który nie używa odwołań BIOSu do dysku i dlatego nie ma problemu z
rokiem 2000... eee, znaczy się właśnie z 1024 cylindrem :)
Innym, IMHO lepszym, jest wykorzystanie _dowolnej_ partycji, która znajduje
się poniżej tegoż cylindra: niekoniecznie linuxowej. Wystarczy na nią
przenieść zawartość katalogu /boot (konkretnie pliki: boot.b, chains.b,
os2_d.b <czyli pliki zawierające loadery, których potem używa LILO. Pliki
chains.b oraz os2_d.b nie zawsze są potrzebne...> i obraz kernela, z
którego chcemy korzystać. Potem wystarczy w pliku lilo.conf nakazać
korzystanie z plików nie z katalogu /boot, tylko np. z /mnt/c/ (który to
katalog jest podmontowanym dosowym dyskiem C:) i uruchomić LILO. Ważne jest
żeby potem nie ruszać tych plików na dosowej partycji, np. programem
defragmentującym. Żeby się przed tym ustrzec, wystarczy ustawić im atrybuty
analogiczne do plików msdos.sys i io.sys: system,read-only i hidden. I to z
grubsza tyle...
Za tydzień jeszcze nie wiadomo, kto wystąpi, niewykluczone że ja
(Sebastian), o ile nie uda mi się znaleźć nikogo innego na to miejsce ;)
wykład będzie na temat korzystania z CVSa, lub o pakietach Debiana, to się
jeszcze wyjaśni... Zapraszam.