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