Bociek PLD - Pisarz
I. Informacje podstawowe
II. Instalacja
III. Podręcznik użytkownika
IV. Podręcznik administratora
Bootloader
Wstęp
V. Tworzenie PLD - Praktyczny poradnik
VI. O podręczniku
O tej książce
Spis treści
Inne wersje tego dokumentu
HTML (jeden plik)
Odnośniki
Tworzymy dokumentację PLD
Strona PLD
Listy dyskusyjne PLD

Wstęp

<- ->
 

Podczas startu naszego komputera z naszego dysku uruchamiany jest bootloader. To właśnie on odpowiada za załadowanie prawidłowego jądra systemu, czy też przekazywanie do jądra specjalnych parametrów. Dla architektur x86 mamy do wyboru jeden z dwóch bootloaderów: LILO oraz Grub (brak wersji 64 bit).

Parametry jadra

Oba bootloadery pozwalają na przekazywanie do jądra specjalnych parametrów, dzięki którym możemy wpływać na start lub pracę systemu jeszcze przed jego załadowaniem. Parametry przekazane przed startem systemu będą przesłaniać te użyte w konfiguracji bootloadera. W poniższej tabeli przedstawiono najczęściej używane opcje.

Przekazywanie parametrów jądra wygląda podobnie w obu wypadkach, po włączeniu specjalnego trybu w bootloaderze otrzymujemy wiersz, na końcu którego dopisujemy potrzebne nam parametry lub modyfikować istniejące. Poniżej przedstawiamy przykładowe dodanie parametru init w bootloaderze Grub:

grub append> root=/dev/sda2 init=/bin/sh

Tryb modyfikacji parametrów startowych w Grubie aktywujemy przez wciśnięcie klawisza e, w przypadku LILO wpisujemy etykietę obrazu, jeśli to jest graficzne LILO to użyjemy klawisza tab.

Parametr Znaczenie Przykład
{$nr}/single

Cyfra (1-5) wskazująca który poziom uruchomieniowy (run level), opcja single to tryb jednego użytkownika. Dzięki nim opcjom można przesłonić ustawienie opcji initdefault z pliku /etc/inittab.

Więcej o poziomach pracy w tym dokumencie, zaś o pliku /etc/inittab przeczytamy w tym dokumencie.

single lub 1
root={$urządzenie}

Wskazanie urządzenia (partycji) na którym znajduje się główny system plików. Wartością parametru może być ścieżka do urządzenia w katalogu /dev (np. /dev/hda1) lub wartość liczbowa powstała z połączenia szesnastkowej wartości liczb major i minor urządzenia. Major podajemy w postaci jednej cyfry, natomiast minor powinien być już rozwinięty do dwóch. Przykładowo urządzenie o wartościach major 3 i minor 1 będzie przedstawiane jako 301, 0301 lub 0x301 (wartości 3 i 1 są takie same w systemie dziesiętnym i szesnastkowym).

Urządzenia oraz liczby major i minor szerzej opisano w tym dokumencie

root=/dev/hda1 lub root=0x301
init={$program} Wskazanie programu, który ma zostać użyty zamiast domyślnego programu Init; opcja używana w krytycznych sytuacjach, np. gdy system nie może zostać uruchomiony nawet w trybie single. init=/bin/bash
vga={$tryb} Wskazanie trybu bufora ramki, więcej o buforze ramki w następnym rozdziale. vga=0x303

Opis wybranych parametrów jądra zamieszczono na stronie http://www.jtz.org.pl/Html/BootPrompt-HOWTO.pl.html, zaś pełną ich listę odnajdziemy w dokumentacji jądra, w pliku /usr/src/linux/Documentation/filesystems/devfs/boot-options

Są również specjalne parametry, które przekazuje się do jądra w trakcie pracy systemu, opisaliśmy je w tym dokumencie.

MBR czy bootsector?

Oba bootloadery mają możliwość instalacji zarówno w obszarze MBR dysku, jak i bootsectorze partycji. Instalacja w MBR jest dosyć wygodna i o wiele bardziej popularna, dlatego właśnie tam powinniśmy instalować bootloader. Instalacja w bootsectorze w wypadku niektórych systemów plików (np. XFS) jest niemożliwa, gdyż ich superblok jest umieszczany na samym początku partycji - w miejscu które powinno być zarezerwowane dla bootloadera.

Frame buffer (bufor ramki)

Frame Buffer (bufor ramki) to m.in. mechanizm pozwalający na pracę konsoli w wyższych rozdzielczościach. Aby go włączyć przekazujemy parametr vga przy uruchomieniu bootloadera lub dodajemy go do pliku konfiguracji np.:

vga=0x303

Sposób dodania tej opcji do pliku konfiguracji bootloadera opisano w dotyczących ich rozdziałach.

Wartość opcji vga to numer trybu graficznego dla danej rozdzielczości i głębi koloru, listę dostępnych trybów przedstawiono w poniższej tabeli. Kodowe oznaczenia trybów bufora ramki możemy podawać zarówno szesnastkowo jak i dziesiętnie, dlatego też w tabeli, obok wartości szesnastkowych umieszczono wartości w systemie dziesiętnym (w nawiasach).

Głębia koloru 640x480 800x600 1024x768 1280x1024
256 (8 bit) 0x301 (769) 0x303 (771) 0x305 (773) 0x307 (775)
32k (15 bit) 0x310 (784) 0x313 (787) 0x316 (790) 0x319 (793)
65k (16 bit) 0x311 (785) 0x314 (788) 0x317 (791) 0x31A (794)
16M (24 bit) 0x312 (786) 0x315 (789) 0x318 (792) 0x31B (795)

Zamiast wskazywać konkretny tryb możemy opcji vga przypisać wartość ask, dzięki temu jądro pozwoli wyświetlić listę trybów i wybrać jeden z nich. Więcej o buforze ramki dowiemy się z dokumentacji kernela, jeśli zainstalowaliśmy pakiet z dokumentacją jądra to znajdziemy ją w katalogu /usr/src/linux/Documentation/fb.

 
<- ->