PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__initrd.sec

pawelb cvs w pld-linux.org
Sob, 11 Wrz 2004, 13:21:05 CEST


Author: pawelb
Date: Sat Sep 11 11:21:02 2004
New Revision: 4522

Added:
   PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__initrd.sec
Log:
- init

Added: PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__initrd.sec
==============================================================================
--- (empty file)
+++ PLD-doc/book/pl_book__konfiguracja/pl_konfiguracja__initrd.sec	Sat Sep 11 11:21:02 2004
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<section id="konfiguracja_initrd">
+<title>Initrd</title>
+	<section id="konfiguracja_initrd_wstep">
+	<title>Wstęp</title>
+	<para>
+		Zdarza się czasami, że potrzebujemy uruchomić PLD z naszego dysku twardego
+		w innym komputerze. Jeśli drugi komputer posiada inną płytę główną 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 (IDE/SCSI/RAID)
+		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 /boot i nazywa się zazwyczaj: "initrd". 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>
+	</section>
+	<section id="konfiguracja_initrd_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.: PLDLiveCD lub RescueCD.
+		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 dziale <xref linkend="konfiguracja_rescue" /> 
+	</para>
+	</section>
+        <section id="konfiguracja_initrd_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 /etc/fstab. W razie potrzeby edytujemy też plik
+		/etc/sysconfig/geninitrd i ustawiamy jaki rodzaj urządzenia ma być
+		wykrywany (IDE, SCSI, RAID). Następnie montujemy pseudo-system plików "/proc":
+	</para>
+	<screen># mount /proc</screen>
+	<para>
+		Teraz przyszedł czas na wygenerowanie pliku initrd. Używamy do tego programu
+		geninitrd: geninitrd [opcje] nowy_initrd numer_wersji_jądra 
+		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 "/boot/initrd" 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 /etc/lilo.conf odszukujemy linijkę
+		zaczynającą się od słowa "initrd", 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 geninitrd nie doda nam do /boot/initrd 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_initrd_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 geninitrd:
+	</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 IDE firmy Promise PDC20268. 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>
+	</section>
+</section>




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