PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__geninitrd.sec

qwiat cvs w pld-linux.org
Nie, 27 Mar 2005, 23:25:35 CEST


Author: qwiat
Date: Sun Mar 27 23:25:33 2005
New Revision: 5640

Modified:
   PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__geninitrd.sec
Log:
- przepisanie na nowo calego opisu


Modified: PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__geninitrd.sec
==============================================================================
--- PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__geninitrd.sec	(original)
+++ PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__geninitrd.sec	Sun Mar 27 23:25:33 2005
@@ -3,117 +3,170 @@
 <title>geninitrd</title>
 	<section id="konfiguracja_geninitrd_wstep">
 	<title>Wstęp</title>
-	<para>
-		Zdarza się czasami, że potrzebujemy uruchomić
-		<productname>PLD</productname> z naszego dysku twardego
-		w innym komputerze. Jeśli drugi komputer posiada inną płytę
-		główną lub inny system plików, niemal pewne jest to że system
-		się nie uruchomi. Ujrzymy na ekranie komunikat jądra o błędzie:
-	</para> 
-	<screen>Kernel panic: VFS: Unable to mount root fs...</screen>
-	<para>
-		Jądro mówi nam, że nie może zamontować głównego systemu plików. Dzieje się tak
-		wtedy gdy nie potrafi obsłużyć kontrolera pamięci masowych 
-		(<hardware>IDE</hardware>/<hardware>SCSI</hardware>/<hardware>RAID</hardware>)
-		lub odczytać systemu plików dla tej partycji.
-	</para>
-	<para>
-		W PLD i wielu innych dystrybucjach sterowniki tego typu umieszczane są w
-		specjalnym "obrazie" zamiast we wnętrzu jądra. Obraz ten przechowywany jest w
-		katalogu <filename>/boot</filename> i nazywa się zazwyczaj: 
-		"<filename>initrd</filename>". Jest on wczytywany przez
-		bootloader w trakcie startu systemu. Obraz ten zawiera sterowniki konieczne
-		do uruchomienia systemu na komputerze na którym był instalowany. Dla innej
-		maszyny należy wygenerować taki obraz na nowo.
-	</para>
+		<para>
+			Zdarza się czasami, że potrzebujemy uruchomić
+			<productname>PLD</productname> z dysku twardego na innym
+			komputerze, jeśli druga maszyna posiada inną płytę główną
+			lub kontroler HDD, to niemal pewne jest to że system
+			się nie uruchomi. Ujrzymy na ekranie komunikat jądra
+			o błędzie:
+		</para> 
+		<screen>Kernel panic: VFS: Unable to mount root fs...</screen>
+		<para>
+			Jądro mówi nam, że nie może zamontować głównego systemu plików,
+			gdyż nie ma jak wczytać odpowiedniego sterownika kontrolera
+			pamięci masowych:  
+			<hardware>IDE</hardware>/<hardware>SCSI</hardware>/<hardware>RAID</hardware>.
+			W PLD sterowniki są dostępne w
+			postaci tzw. modułów, przez co nie są one "widoczne" dla jądra
+			w trakcie startu systemu. Aby system wystartował wymagane moduły
+			muszą zostać wcześniej umieszczone w specjalnym "obrazie"
+			nazywanym <emphasis>initrd</emphasis> (initial ramdisk),
+			który jest wczytywany przez bootloader. 
+			Initrd jest tworzony w trakcie instalacji systemu, jednak
+			w późniejszym czasie jesteśmy zdani na siebie.
+		</para>
+		<para>
+			Obraz przechowywany jest w katalogu <filename>/boot</filename>
+			i zwykle nazywa się <filename>initrd-{$wersja_jądra}.gz</filename>,
+			do niego zaś prowadzi łącze o nazwie <filename>initrd</filename>.
+		</para>
+		<para>
+			Uwaga! Oprócz sterownika kontrolera będziemy musieli dodać
+			moduł obsługi systemu plików dla partycji "/".
+		</para>
 	</section>
-	<section id="konfiguracja_geninitrd_przygotowanie">
-	<title>Przygotowanie</title>
-	<para>
-		Będziemy potrzebować dystrybucję uruchamianą z płyty CD. Do tego będzie się
-		nadawała się niemal każda taka dystrybucja np.: <productname>PLDLiveCD</productname>
-		lub <productname>RescueCD</productname>.
-		Podłączamy dysk twardy do docelowego komputera. Po uruchomieniu
-		systemu z płytki musimy dostać się na główny system plików (/) - opis
-	       	jak to zrobić znajduje się w <xref linkend="administracja_rescue" /> 
-	</para>
+
+
+		
+	<section id="konfiguracja_geninitrd_automatyczna">
+	<title>Automatyczne generowanie initrd</title>
+		<para>
+			Cały proces możemy zautomatyzować, podłączając dysk do
+			docelowej maszyny, musimy wtedy posłużyć inną dystrybucją
+			i wykonać operację chroot-a - opis jak to zrobić znajduje
+			się tutaj <xref linkend="administracja_rescue" />.
+			Możemy użyć dowolnej dystrybucji linuksa jednak chyba
+			najwygodniejsze będzie użycie systemu uruchamianego z
+			płyty CD np.: <productname>PLD-Live</productname> lub
+			<productname>RescueCD</productname>.
+		</para>
+		<para>
+			Jeśli zmieniły się nazwy urządzeń masowych po podłączeniu dysku
+			twardego do innej maszyny, należy dokonać stosownych
+			poprawek w pliku <filename>/etc/fstab</filename>. W razie
+			potrzeby edytujemy też plik <filename>/etc/sysconfig/geninitrd</filename>
+			i ustawiamy jaki rodzaj urządzenia (<hardware>SCSI</hardware>,
+			<hardware>IDE</hardware>, <hardware>RAID</hardware>) ma
+			być automatycznie wykrywany:		
+<screen>## Do install SCSI modules (if / is on SCSI partition)?
+PROBESCSI=yes
+
+## Do install IDE modules (if / is on IDE partition)?
+PROBEIDE=yes
+
+## Do install RAID modules (if RAID is used)?
+PROBERAID=yes</screen>
+			Następnie montujemy pseudo-system plików <filename>/proc</filename>:
+		</para>
+		<screen># mount /proc</screen>
+		<para>
+			Teraz przyszedł czas na wygenerowanie obrazu. Używamy do tego
+			programu <command>geninitrd</command>:
+		</para>
+		<para>
+			<command>geninitrd  [opcje]  {$nowy_initrd}  {$wersja_jądra}</command> 
+			np.:
+		</para>
+		<screen># geninitrd -v /boot/initrd_nowy 2.6.7</screen>
 	</section>
-        <section id="konfiguracja_geninitrd_generowanie">
-        <title>Automatyczne generowanie initrd</title>
-	<para>
-		Poniższe czynności są konieczne do wykonania jeśli sprzęt i system plików mają
-		zostać wykryte automatycznie. Jeśli zmieniły się nazwy urządzeń masowych
-		po podłączeniu dysku twardego do innej maszyny, należy dokonać stosownych
-		poprawek w pliku <filename>/etc/fstab</filename>. W razie potrzeby edytujemy też plik
-		<filename>/etc/sysconfig/geninitrd</filename> i ustawiamy jaki rodzaj urządzenia ma być
-		wykrywany (<hardware>IDE</hardware>, <hardware>SCSI</hardware>, <hardware>RAID</hardware>). Następnie montujemy pseudo-system plików <filename>/proc</filename>:
-	</para>
-	<screen># mount /proc</screen>
-	<para>
-		Teraz przyszedł czas na wygenerowanie pliku <filename>initrd</filename>. Używamy do tego programu
-		geninitrd: <command>geninitrd [opcje] nowy_initrd numer_wersji_jądra</command> 
-		np.:
-	</para>
-	<screen># geninitrd -v /boot/initrd_nowy 2.6.7</screen>
-	<para>
-		Program wykrywa sprzęt i załącza właściwe moduły do tworzonego initrd.
-		Następnie usuwamy łącze symboliczne o nazwie "<filename>/boot/initrd</filename>" wskazujące
-		na stary obraz i tworzymy łącze wskazujące na nowy:
-	</para>
+
+
+	<section id="konfiguracja_geninitrd_reczna">
+	<title>Ręczne generowanie initrd</title>
+		<para>
+			Ta operacja może być przeprowadzona z dowolnego komputera,
+			jeśli nie jest to macierzysta maszyna użyjemy dowolnej
+			dystrybucji i operacji chroot-a. Metoda ta wymaga precyzyjnej
+			znajomości używanego sprzętu i systemu plików, gdyż sami
+			musimy wskazać odpowiednie moduły. Jest jednak konieczna,
+			np. w sytuacji problemu z automatycznym wykryciem wymaganych
+			sterowników.
+		</para>
+		<para>
+			Możemy wpisać listę koniecznych modułów do odpowiedniej
+			sekcji w pliku <filename>/etc/sysconfig/geninitrd</filename>:
+
+<screen>## Basic modules to be loaded
+BASICMODULES=""
+
+## Modules that should be loaded before anything (i.e. jbd for ext3)
+PREMODS=""</screen>
+
+			
+			lub zmodyfikować wywołanie geninitrd poprzez użycie
+			parametru <emphasis>--with</emphasis>:
+		</para>
+		<para>
+			<command>geninitrd [opcje]  --with={$nazwa_modułu}
+			{$nowy_initrd}  {$wersja_jądra}</command>
+		</para>
+		<para>
+			np.:
+		</para>
+<screen># geninitrd -v --with=ext3 --with=pdc202xx_new  /boot/initrd_nowy 2.6.7</screen>
+		<para>
+			Powyższe wywołanie wymusi dodanie dodatkowo modułów obsługi
+			systemu plików ext3 i kontrolera <hardware>IDE</hardware>
+			PDC20268 firmy Promise.
+		</para>
+	</section>
+
+
+	<section id="konfiguracja_geninitrd_uniwersalne">
+	<title>Generowanie uniwersalnego initrd</title>
+		<para>
+			Częste zmiany używanego obrazu initrd mogą być uciążliwe.
+			Można to obejść łącząc do jednego obrazu większą ilość
+			modułów przy pomocy opcji
+			<emphasis>--with</emphasis> - tak jak to
+			przedstawiono w powyższym rozdziale.
+			Warto pamiętać żeby nie przesadzać z ich ilością, może
+			to spowodować wolniejszy start systemu i niepotrzebne
+			zużycie pamięci operacyjnej przez nieużywane
+			sterowniki.
+		</para>
+	</section>
+
+	<section id="konfiguracja_geninitrd_zakonczenie">
+	<title>Operacje końcowe</title>
+		<para>
+			Musimy usunąć łącze symboliczne o nazwie
+			"<filename>/boot/initrd</filename>" wskazujące
+			na stary obraz i tworzymy łącze wskazujące na nowy:
+		</para>
 	<screen># rm /boot/initrd
 # ln -s /boot/initrd_nowy /boot/initrd</screen>
-	<para>
-		Końcową czynnością jest odświeżenie bootloader-a, wcześniej jednak musimy
-		się upewnić że wskazuje on na nowy initrd. Dowiemy się tego przeglądając
-		jego plik konfiguracji. Po tej czynności uaktualniamy bootloader.
-		W przypadku LILO w pliku <filename>/etc/lilo.conf</filename> odszukujemy linijkę
-		zaczynającą się od słowa "<literal>initrd</literal>", która może wyglądać następująco:
-	</para>
-	<screen>initrd = /boot/initrd</screen>
-	<para>
-	Następnie jeżeli mamy zainstalowane lilo wydajemy polecenie:
-	</para>
-	<screen># lilo</screen>
-	<para>
-		W przypadku gruba nic nie musimy robić.
-	</para>
-	<para>	
-		Może się tak zdażyć, że <command>geninitrd</command> nie doda nam do <filename>/boot/initrd</filename> jakiegoś 
-		potrzebnego modułu - w tym celu aby wymusić włączanie danego modułu do
-		initrd należy wpisać go do odpowiedniej sekcji w 
-		<filename>/etc/sysconfig/geninitrd</filename>	
-	</para>
-	<para>
-		Na koniec restartujemy komputer i system powinien uruchomić się bez problemu.
-		Od tej pory, po ponownym podłączeniu dysku do tego komputera, wystarczy
-		jedynie zmieniać wskazanie łącza syblolicznego na odpowiedni obraz initrd i
-		zaktualizować bootloader.
-	</para>
-	</section>
-        <section id="konfiguracja_geninitrd_uniwersalne">
-        <title>Generowanie uniwersalnego initrd</title>
-	<para>
-		Częste zmiany używanego obrazu initrd mogą być uciążliwe. Można to obejść
-		łącząc do initrd więcej modułów. W tym wypadku proces generowania może być
-		przeprowadzony zarówno na naszym jak i na docelowym komputerze. Proces jego
-		tworzenia przebiega bardzo podobnie, w opisie poprzedniego podrozdziału należy
-		zmodyfikować wywołanie <command>geninitrd</command>:
-	</para>
-	<screen>geninitrd [opcje] --with=nazwa_modulu nowy_initrd numer_wersji_jądra</screen>
-	<para>
-		np.:
-	</para>
-	<screen># geninitrd -v --with=ext3 --with=pdc202xx_new  /boot/initrd_nowy 2.6.7</screen>
-	<para>
-		Powyższe wywołanie doda dodatkowo moduły obsługi systemu plików ext3 i
-		kontrolera <hardware>IDE</hardware> PDC20268 firmy Promise. Ręcznego wskazywania modułów do
-		załączenia używa się też w wypadku problemów z autodetekcją kontrolera
-		przez geninitrd. 
-	</para>
-	<para>
-		Warto pamiętać żeby nie przesadzać z ilością załączanych modułów, może to
-		spowodować wolniejszy start systemu i niepotrzebne zużycie pamięci
-		operacyjnej przez nieużywane moduły.
-	</para>
+		<para>
+			Ostatnią czynnością jest odświeżenie bootloader-a, wcześniej
+			jednak musimy się upewnić, że wskazuje on na nowy initrd. Dowiemy
+			się tego przeglądając jego plik konfiguracji, w przypadku
+			<productname>LILO</productname> w pliku
+			<filename>/etc/lilo.conf</filename> odszukujemy linijkę
+			zaczynającą się od słowa "<literal>initrd</literal>", która
+			może wyglądać następująco:
+		</para>
+		<screen>initrd = /boot/initrd</screen>
+		<para>
+			Następnie (o ile mamy zainstalowane LILO) wydajemy polecenie:
+		</para>
+		<screen># lilo</screen>
+		<para>
+			W przypadku <productname>Grub-a</productname> nic nie musimy robić.
+		</para>
+		<para>
+			Na koniec restartujemy komputer i system powinien uruchomić
+			się bez problemu.
+		</para>
 	</section>
 </section>




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