PLD-doc/book/pl_book__bootloader/pl_bootloader__grub.sec

qwiat cvs w pld-linux.org
Czw, 24 Lis 2005, 00:11:38 CET


Author: qwiat
Date: Thu Nov 24 00:11:35 2005
New Revision: 6562

Modified:
   PLD-doc/book/pl_book__bootloader/pl_bootloader__grub.sec
Log:
- przepisanie calego rozdzialu od nowa


Modified: PLD-doc/book/pl_book__bootloader/pl_bootloader__grub.sec
==============================================================================
--- PLD-doc/book/pl_book__bootloader/pl_bootloader__grub.sec	(original)
+++ PLD-doc/book/pl_book__bootloader/pl_bootloader__grub.sec	Thu Nov 24 00:11:35 2005
@@ -1,62 +1,130 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
 <section id="bootloader_grub">
-<title>Grub</title>
+	<title>Grub</title>
 	<para>
-        Każdy z nas zastanawiał się kiedyś nad alternatywą dla <command>lilo</command>, które lubiło czasem zawodzić.
-        Okazuje się, że istnieje bardzo dobra alternatywa o nazwie <command>grub</command>.
-        Ten drugi bootmanager różni się nieco od pierwszego. Największą różnicą jest obsługa dużej gamy systemów plików.
-        Dzięki możliwości bezpośredniego dostępu do systemu plików, jesteśmy w stanie załadować dowolny obraz,
-        który nie został umieszczony w pliku konfiguracyjnym.
-	</para>
-	<para>
-        Konfiguracja gruba różni się nieco od konfiguracji jego konkurentów. Przedewszystkim nie używamy już
-	nazw dysków opierających się na urządzeniach widniejących w <filename>/dev</filename> 
-	(np. <filename>/dev/hda</filename>). Grub przy pomocy BIOSa
-	sprawdza istniejące dyski w systemie i numeruje je począwszy od zera. Dla przykładu, jeżeli posiadamy
-        dwa dyski twarde (np. hda i hdc), pierwszy z nich zostanie oznaczony jako hd0, drugi jako hd1.
-        Sytuacja z partycjami wygląda podobnie, również numerowane są od zera, natomiast pierwsza partycja logiczna
-	będzie oznaczona numerem 4. Dla dotychczasowego <filename>/dev/hda1</filename> w grubie powinniśmy używać (hd0,0). 
-	Podane nawiasy nie są przypadkowe, to cecha składni poleceń gruba. Jeżeli określamy jakiś dysk/partycję,
-        robimy to w nawiasach.
-	</para>
-	<para>
-        Przejdźmy do konfiguracji. Zakładamy, że zarówno rootfs, jak i boot leżą na tej samej partycji.
-	W przykładowej konfiguracji będzie to <filename>/dev/hda1</filename>. 
-	Plikiem konfiguracyjnym w domyślnej instalacji jest
-       <filename>/boot/grub/menu.lst</filename>.
-	</para>
-	<screen># cat /boot/grub/menu.lst
-timeout 15
+		<productname>GRUB</productname> (GRand Unified Bootloader) jest
+		bootloaderm zdobywającym sporą popularność, ze względu na
+		 swoją elastyczność i duże możliwości. Jest
+		tak rozbudowany, że musi trzymać część swoich danych na dysku
+		twardym, z tego też względu obsługuje kilka systemów plików i
+		może wykonywać proste operacje dyskowe. GRUB normalnie "widzi"
+		pliki na dysku, a więc widzi też plik kernela i obrazu initrd,
+		dzięki temu nie ma potrzeby robienia czegokolwiek po  zmianie
+		konfiguracji, wygenerowaniu initrd, aktualizacji kernela itp.
+		Dodatkowo GRUB wspiera nas przez dopełnianiem nazw plików,
+		urządzeń (np. partycji).
+	</para>
+	<para>
+		Do największych zalet gruba można zaliczyć możliwość pełniej
+		rekonfiguracji bootloadera bez ładowania systemu, wszystkie
+		operacje przeprowadzamy z poziomu działającego bootloadera.
+		Kolejną ważną jego cechą jest możliwość używania klawiatury USB,
+		w przeciwieństwie do <productname>LILO</productname>, jedyną rzeczą
+		jaką musimy zrobić w tym wypadku to włączyć obsługę klawiatury USB
+		w BIOS-ie.
+	</para>
+	<para>
+		O initrd  poczytamy w <xref linkend="konfiguracja_geninitrd" />.
+	</para>
+	
+	<section id="bootloader_grub_urzadzenia">
+		<title>Nazewnictwo urządzeń</title>
+		<para>
+			Nie używamy nazw dysków opierających się na urządzeniach
+			widniejących w <filename>/dev</filename> (np.
+			<filename>/dev/hda</filename>). GRUB przy pomocy BIOS-u sprawdza
+			istniejące dyski i numeruje je począwszy od zera. Dla przykładu,
+			jeżeli posiadamy dwa dyski twarde (np. <literal>hda</literal> i
+			<literal>hdc</literal>), pierwszy z nich zostanie oznaczony jako
+			<literal>hd0</literal>, drugi jako <literal>hd1</literal>. Sytuacja
+			z partycjami wygląda podobnie, również numerowane są od zera,
+			natomiast pierwsza partycja logiczna będzie oznaczona numerem 4.
+		</para>
+		<para>
+			Obszar MBR oznaczany jako <filename>/dev/hda</filename>
+			będzie widziany jako <literal>(hd0)</literal>, partycja
+			<filename>/dev/hda1</filename> będzie rozpoznawana jako
+			<literal>(hd0,0)</literal>. Podane nawiasy nie są przypadkowe,
+			jest to cecha składni poleceń GRUB-a.
+		</para>
+		<para>
+			System urządzeń opisano szerzej w <xref linkend="podstawy_urzadzenia" />.
+		</para>
+	</section>
+
+
+	<section id="bootloader_grub_konfiguracja">
+		<title>Konfiguracja podstawowa</title>
+		<para>
+			Konfiguracja polega na odpowiednim skonfigurowaniu pliku
+			<filename>/boot/grub/menu.lst</filename> i instalacji
+			bootloadera w  MBR/bootsektorze dysku. W poniższych
+			przykładach założyliśmy, że zarówno <filename>/</filename>
+			(rootfs) jak i <filename>/boot</filename> leżą na tej samej
+			partycji. W przykładowej konfiguracji będzie to
+			<filename>/dev/hda1</filename>. Poniżej przedstawiono
+			przykładową konfigurację:
+		</para>
+
+<screen>timeout 15
 
-title  PLD 2.0 (Ac)
+title  pld
 root (hd0,0)
 kernel /boot/vmlinuz root=0301
 initrd /boot/initrd</screen>
-	<para>
-	Pewnie zastanawiasz się skąd wzięły się te dziwne cyferki przy <command>root=</command> ?
-	Nie ma w nich nic dziwnego, w naszym przypadku 03 to 'major' a 01 to 'minor' naszej partycji.
-	Skąd wziąć te cyferki? To nic trudnego, musimy tylko umieć przeliczać liczby dziesiętne
-	na szesnastkowe.
-	</para>
-	<screen># ls -l /dev/hda1
-brw-rw----  1 root disk 3, 1 2004-06-03 18:41 /dev/hda1</screen>
-	<para>
-	Pierwsza liczba (3) to major, druga (1) to minor. Urządzenia w katalogu <filename>/dev</filename> posiadają
-        oznaczenia w systemie dziesiętnym, kernelowi należy przekazać je w szesnastkowym.
-        Akurat w przypadku hda1 nic się nie zmienia, bo zarówno liczby 3 jak i 1 w obu
-        systemach liczbowych są jednakowe. W przypadku podawania parametru <command>root=</command>
-        major można podać w postaci jednej cyfry, natomiast minor powinien być już rozwinięty do dwóch.
-        Tym sposobem możemy zamienić <command>root=0301</command> na <command>root=301</command>.
-	W przypadku dysków scsi postępujemy analogicznie.
-	</para>
-	<para>
-        Przejdźmy do instalacji gruba w bootsektorze dysku (MBR).
-	</para>
-	<screen># grub
-grub> root (hd0,0)
-Filesystem type is xfs, partition type 0x83
+		<para>
+			Konfiguracja GRUB-a podzielona jest na sekcję główną i sekcje
+			obrazów, sekcja główna są to ustawienia globalne, zaś
+			konfiguracja obrazów to opcje dla każdego z obsługiwanych
+			systemów operacyjnych. Powyżej mamy sekcję główną oraz
+			sekcję obrazu oddzieloną pustym wierszem.
+		</para>
+		<para>
+			Opcja <literal>timeout</literal> w sekcji głównej to
+			czas w sekundach oczekiwania na reakcję użytkownika.
+		</para>
+
+		<para>
+			Opcja <literal>title</literal> w sekcji obrazu to jego
+			etykieta, <literal>root(hd0,0)</literal> to partycja na
+			której GRUB będzie szukał swoich plików (w PLD GRUB trzym
+			a swoje pliki w <filename>/boot/grub</filename>). Parametry
+			<literal>kernel</literal> i <literal>initrd</literal> to
+			ścieżki do plików <literal>kernela</literal> i
+			<literal>initrd</literal>, w powyższym przykładzie
+			będą szukane na urządzeniu <literal>(hd0,0)</literal> gdyż
+			podane do nich ścieżki są względne. Parametr
+			<literal>root=</literal> jest parametrem jądra wskazującym
+			położenie głównego systemu plików, opisanym
+			szerzej w <xref linkend="bootloader_wstep" />.  Może mieć
+			zarówno postać liczbową jak i postać nazwy urządzenia z
+			katalogu <filename>/dev</filename> np.
+			<filename>/dev/hda1</filename>.
+		</para>
+		<para>
+			Kiedy plik konfiguracji jest gotowy możemy przejść
+			do instalacji GRUB-a.
+		</para>
+	</section>
+
 
-grub> setup (hd0)
+	<section id="bootloader_grub_instalacja">
+		<title>Instalacja</title>
+		<para>
+			Przejdźmy teraz do instalacji GRUB-a w MBR, rozpoczynamy
+			od uruchomienia programu <command>grub</command>, mamy
+			teraz do dyspozycji powłokę oferująca liczne
+			polecenia, dopełnianie oraz pomoc. Rozpoczynamy od
+			polecenia <command>root</command> z parametrem  wskazującym
+			miejsce gdzie znajdują się pliki GRUB-a, konieczne do jego
+			instalacji. 
+
+<screen>grub> root (hd0,0)
+Filesystem type is xfs, partition type 0x83</screen>
+
+			Teraz uruchamiamy instalację bootloadera w MBR dysku, wydajemy
+			polecenie <command>setup</command> z odpowiednim parametrem:
+<screen>grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/xfs_stage1_5" exists... yes
@@ -64,21 +132,65 @@
 succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+18 p (hd0,0)/boot/grub/stage2
 /boot/grub/menu.lst"... succeeded
-Done.
-grub> quit</screen>
-	<para>
-        Staliśmy się posiadaczami bootloadera <command>grub</command>
-        w naszym systemie. W odróżnieniu od <command>lilo</command> nie ma potrzeby ponownej
-        instalacji gruba w MBR w przypadku zmiany kernela lub pliku konfiguracyjnego.
-	</para>
-	<para>
-        Może brakować Ci jeszcze możliwości startu z partycji, na której masz zainstalowany np.
-        system MS Windows. Dodanie kolejnego wpisu należy do bardzo prostych czynności.
-	Zakładająć, że jest on zainstalowany na <filename>/dev/hda2</filename>, 
-	na końcu pliku konfiguracyjnego dopisujemy:
-	</para>
-	<screen>title Windows
+Done.</screen>
+			Komunikaty wskazują poprawność operacji, więc pozostaje
+			nam tylko wyjście z powłoki programu.
+
+<screen>grub> quit</screen>
+
+			W ten oto sposób staliśmy się posiadaczami GRUB-a
+			w naszym systemie, możemy teraz zrestartować maszynę.
+		</para>
+	</section>
+	
+	
+	<section id="bootloader_grub_inne_systemy">
+		<title>Inne systemy operacyjne</title>
+		<para>
+			Zakładam, że chcemy dodać system Microsoftu zainstalowany
+			na partycji <filename>/dev/hda2</filename>, oto sekcja
+			jaką musimy dopisać do
+			<filename>/boot/grub/menu.lst</filename>:
+<screen>title Windows
 rootnoverify (hd0,1)
-chainloader +1
-</screen>
+chainloader +1</screen>
+
+			Domyślnym obrazem wybranym przez bootloader jest ten
+			pierwszy w kolejności w pliku konfiguracji, możemy to
+			ustawienie bardzo prosto modyfikować za pomocą opcji
+			<literal>default</literal> wskazującej numer obrazu, obrazy
+			są numerowane wg. kolejności począwszy od 0.
+<screen>default 0</screen>
+		</para>
+	</section>
+
+
+	<section id="bootloader_grub_fb">
+		<title>Frame Buffer</title>
+		<para>
+			Frame Buffer (bufor ramki) to mechanizm pozwalający m.in.
+			na pracę konsoli w wyższych rozdzielczościach. Aby go
+			włączyć, do parametrów jądra w konfiguracji linuksowego
+			obrazu dodajemy parametr <literal>vga</literal> np.
+			<literal>vga=0x303</literal>. Przykładowa
+			konfiguracja obrazu będzie wyglądała następująco:
+<screen>title  pld
+root (hd0,0)
+kernel /boot/vmlinuz root=0301 vga=0x303
+initrd /boot/initrd</screen>
+			Listę dostępnych trybów zamieszczono w
+			<xref linkend="bootloader_wstep" />.
+		</para>
+	</section>
+
+
+	<section id="bootloader_grub_zakonczenie">
+		<title>Zakończenie</title>
+		<para>
+			W przypadku nietypowych konfiguracji będziemy zmuszeni
+			do podawania ścieżek bezwzględnych do plików. Podajemy
+			je następująco: <literal>(hdX,Y)/katalog/plik</literal> np.:
+			<literal>(hd0,0)/boot/vmlinuz</literal>
+		</para>
+	</section>
 </section>



Więcej informacji o liście dyskusyjnej pld-doc