Author: qwiat
Date: Sun Jan 14 20:18:49 2007
New Revision: 8164

Modified:
   PLD-doc/book/pl_book__kernel-urzadzenia/pl_kernel-urzadzenia__geninitrd.sec
Log:
- poprzenoszone akapity pomiedzy sekcjami
- bardziej szczegolowe opisy
- wiecej informacji o geninitrd
- mniej chrooto-centrycznie
- masa kosmetyki


Modified: 
PLD-doc/book/pl_book__kernel-urzadzenia/pl_kernel-urzadzenia__geninitrd.sec
==============================================================================
--- PLD-doc/book/pl_book__kernel-urzadzenia/pl_kernel-urzadzenia__geninitrd.sec 
(original)
+++ PLD-doc/book/pl_book__kernel-urzadzenia/pl_kernel-urzadzenia__geninitrd.sec 
Sun Jan 14 20:18:49 2007
@@ -7,78 +7,98 @@
                        W PLD wszystkie możliwe 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ł
-                       wymaganych jest kilka modułów koniecznych do 
zamontowania
-                       głównego systemu plików, są to moduły kontrolera 
urządzeń
-                       masowych (IDE/SCSI/RAID) oraz systemu plików na głównej
-                       partycji systemowej (rootfs): "/". 
+                       wymaganych jest kilka modułów i innych komponentów
+                       koniecznych do zamontowania głównego systemu plików
+                       (root filesystem):
+                       <itemizedlist>
+                               <listitem>
+                                       <para>
+                                               moduły kontrolera urządzeń
+                                               masowych (IDE/SATA/SCSI) np.: 
<literal>sata_nv</literal>,
+                                               <literal>sata_sil</literal>, 
<literal>sd_mod</literal> 
+                                       </para>
+                               </listitem>
+                               <listitem>
+                                       <para>
+                                               systemu plików na głównej
+                                               partycji systemowej np.: 
<literal>xfs</literal>,
+                                               <literal>reiserfs</literal>
+                                       </para>
+                               </listitem>
+                               <listitem>
+                                       <para>
+                                               elementy konieczne do złożenia 
woluminów
+                                               opartych o LVM lub programowy 
RAID
+                                       </para>
+                               </listitem>
+                       </itemizedlist>
                </para>
                <para>
                        Jedynym sposobem dostarczenia tych sterowników jest
                        umieszczenie ich w specjalnym "obrazie" zwanym
                        <literal>initrd</literal> (initial ramdisk). Obraz ten 
jest
-                       plikiem wczytywanym przez bootloader, tak więc oprócz 
initrd
-                       musimy właściwie skonfigurować bootloader.
+                       plikiem wczytywanym przez bootloader, tak więc dodatkowo
+                       musimy właściwie skonfigurować bootloader - wskazać 
położenie obrazu. 
                        Obraz przechowywany jest w katalogu 
<filename>/boot</filename>
-                       i zwykle nazywa się 
<filename>initrd-{$wersja_jądra}.gz</filename>,
+                       i ma nazwę 
<filename>initrd-{$wersja_jądra}.gz</filename>,
                        do niego zaś prowadzi łącze o nazwie 
<filename>initrd</filename>.
                </para>
                <para>
-                       Initrd jest tworzony przy każdej instalacji
-                       systemu, lub instalacji/aktualizacji kernela. Bywa 
jednak, że 
-                       nasz obraz nie jest wygenerowany prawidłowo i jesteśmy
-                       zmuszeni do utworzenia go samodzielnie. Źle utworzony
-                       uniemożliwi uruchomienie systemu, ujrzymy wtedy 
następujący
-                       komunikat:
+                       Initrd jest tworzony przy każdej instalacji/aktualizacji
+                       kernela. Bywa jednak, że nasz obraz nie jest 
wygenerowany
+                       prawidłowo i jesteśmy zmuszeni do utworzenia go 
samodzielnie.
+                       Źle utworzony uniemożliwi uruchomienie systemu, ujrzymy
+                       wtedy następujący komunikat:
                        <screen>Kernel panic: VFS: Unable to mount root 
fs...</screen>  
                        Jądro mówi nam, że nie może zamontować głównego systemu 
plików,
-                       gdyż brakuje mu jakiegoś sterownika. Może się to zdarzyć
-                       jeśli nasz sprzęt nie został prawidłowo wykryty lub 
próbujemy
+                       gdyż brakuje mu jakiegoś komponentu. Może się to 
zdarzyć,
+                       że nasz sprzęt nie został prawidłowo wykryty lub 
próbujemy
                        uruchomić  PLD z naszego dysku na innym komputerze
                        (o innym kontrolerze urządzeń masowych).
                </para>
+               <para>
+                       Systemu nie można uruchomić więc musimy skorzystać z 
operacji
+                       chroot-a, możemy w tym celu użyć dowolnej dystrybucji
+                       linuksa jednak chyba najwygodniejsze będzie użycie
+                       <productname>PLD-Live</productname> lub
+                       <productname>RescueCD</productname>.
+               </para>
        </section>
+
        <section id="kernel-urzadzenia_geninitrd_przygotowanie">
                <title>Przygotowanie</title>
                <para>
                        Poniżej przedstawiono trzy metody generowania initrd. W
-                       większości wypadków najwygodniejszy będzie pierwszy 
sposób, w
-                       przypadku dwóch pozostałych musimy znać nasz sprzęt i 
system
-                       plików partycji "/" aby wskazać nazwy właściwych 
modułów.
+                       większości wypadków wystarczy nam pierwszy ze sposobów,
+                       pozostałe są trudniejsze gdyż musimy znać nasz sprzęt i
+                       system plików partycji "/".
                        Jeśli obraz nie jest tworzony prawidłowo przez pierwszą
-                       metodę musimy się zadowolić dwoma pozostałymi, co więcej
-                       będziemy musieli powtarzać całą operację po każdorazowej
-                       instalacji nowej wersji jądra. Druga i trzecia metoda
-                       mają jedną zasadniczą przewagę nad pierwszą - mogą być
-                       przeprowadzane na dowolnej maszynie.
+                       metodę musimy się zadowolić dwoma pozostałymi. Druga
+                       i trzecia metoda mają jedną zasadniczą przewagę nad
+                       pierwszą - mogą być przeprowadzane na dowolnej maszynie.
                </para>
                <para>
+                       W dwóch pierwszych metodach użyjemy skryptu
+                       <filename>/sbin/geninitrd</filename> z pakietu
+                       <filename>geninitrd</filename>. Jest to wygodny automat,
+                       który stara się wykryć sprzęt, system plików i czy 
główny
+                       system plików jest stworzony na LVM/soft RAID. Skrypt 
geninird wymaga
+                       prawidłowych wpisów w <filename>/etc/fstab</filename> i
+                       podmontowanwego <filename>/proc</filename>. Tak więc 
jeśli
+                       generujemy initrd w systemie typu chroot to wydajemy
+                       polecenie (z chroota):
+               </para>
+               <screen># mount /proc</screen>
+               <para>
                        Opis wykrywania sprzętu i dobierania właściwych modułów
-                       opisano w <xref 
linkend="kernel-urzadzenia_moduly_zarzadzanie" />. Przy
-                       tworzeniu initrd przeważnie musimy skorzystać z operacji
-                       chroot-a, 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>. Opis procedury 
chroota
-                       z płyty typu Live znajdziemy w <xref 
linkend="administracja_rescue" />.
+                       opisano w <xref 
linkend="kernel-urzadzenia_moduly_zarzadzanie" />.
                </para>
        </section>
-
-
                
        <section id="kernel-urzadzenia_geninitrd_automatyczna">
        <title>Automatyczne generowanie initrd</title>
                <para>
-                       Przeważnie sprzęt i używany system plików partycji
-                       "/"  mogą zostać wykryte automatycznie. Proces ten 
zaczynamy
-                       od podłączenia dysku twardego do docelowej maszyny i
-                       posłużenia się inną dystrybucją w celu wykonania 
operacji
-                       chroota. 
-               </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>
+                       W razie potrzeby edytujemy 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:            
@@ -90,31 +110,28 @@
 
 ## Do install RAID modules (if RAID is used)?
 PROBERAID=yes</screen>
-                       Następnie montujemy pseudo-system plików 
<filename>/proc</filename>:
+                       Teraz przyszedł czas na wygenerowanie obrazu wg schematu
                </para>
-               <screen># mount /proc</screen>
                <para>
-                       Teraz przyszedł czas na wygenerowanie obrazu. Używamy 
do tego
-                       programu <command>geninitrd</command>:
+                       <command>geninitrd  [opcje]  {$initrd}  
{$wersja_jądra}</command> 
+                       np.:
                </para>
+               <screen># geninitrd -v -f /boot/initrd-2.6.16.35-1.gz 
2.6.16.35-1</screen>
                <para>
-                       <command>geninitrd  [opcje]  {$nowy_initrd}  
{$wersja_jądra}</command> 
-                       np.:
+                       Parametr <option>-v</option> odpowiada za 
"gadatliuwość" programu,
+                       zaś <option>-f</option> wymusza nadpisanie istniejącego 
obrazu.
                </para>
-               <screen># geninitrd -v /boot/initrd_nowy 2.6.7</screen>
        </section>
 
 
        <section id="kernel-urzadzenia_geninitrd_reczna">
        <title>Ręczne generowanie initrd</title>
                <para>
-                       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,
-                       w przypadku problemów z automatycznym wykryciem 
wymaganych
-                       sterowników lub jeśli chcemy operację wykonać na innej
-                       maszynie niż docelowa.
+                       Metoda ta wymaga precyzyjnej znajomości używanego 
sprzętu
+                       i systemu plików, gdyż sami musimy wskazać odpowiednie
+                       moduły. Jest jednak konieczna, w przypadku problemów z
+                       automatycznym wykryciem wymaganych sterowników lub jeśli
+                       chcemy operację wykonać na innej maszynie niż docelowa.
                </para>
                <para>
                        Możemy wpisać listę koniecznych modułów do odpowiedniej
@@ -132,7 +149,7 @@
                </para>
                <para>
                        <command>geninitrd [opcje]  --with={$nazwa_modułu}
-                       {$nowy_initrd}  {$wersja_jądra}</command>
+                       {$initrd}  {$wersja_jądra}</command>
                </para>
                <para>
                        Dużym ułatwieniem zadania jest automatyczne dołączanie
@@ -141,24 +158,25 @@
                        systemu plików ext3 i kontrolera 
<hardware>IDE</hardware>
                        PDC20268 firmy Promise:
                </para>
-<screen># geninitrd -v --with=ext3 --with=pdc202xx_new  /boot/initrd_nowy 
2.6.7</screen>
+<screen># geninitrd -v --with=ext3 --with=pdc202xx_new  
/boot/initrd-2.6.16.35-1.gz 2.6.16.35-1</screen>
        </section>
 
 
        <section id="kernel-urzadzenia_geninitrd_modyfikacja">
        <title>Gdy zawiedzie geninitrd</title>
                <para>
-                       Możemy zmodyfikować zawartość obrazu bez użycia skryptu
-                       geninitrd, aby to zrobić rozpoczynamy od skopiowania 
initrd
-                       w inne miejsce i rozpakowania go:
-<screen># gzip -d initrd-2.6.8.gz</screen>
+                       Możemy zmodyfikować zawartość obrazu wygenerowanego
+                       przez geninitrd, aby to zrobić rozpoczynamy od 
skopiowania
+                       initrd w inne miejsce i rozpakowania go:
+<screen># gunzip initrd-2.6.16.35-1.gz</screen>
                        rozpakowany plik montujemy jako loop:
-<screen># mount -o loop initrd-2.6.8 initrd-src</screen>
+<screen>mkdir /tmp/initrd-src
+# mount -o loop initrd-2.6.16.35-1 /tmp/initrd-src</screen>
                </para>
                <para>
                        Tworzenie initrd rozpocznijmy od skopiowania zawartości
                        katalogu w inne miejsce:
-<screen># cp -a initrd-src initrd-moje
+<screen># cp -a /tmp/initrd-src initrd-moje
 cp: czytanie `initrd-src/bin/sh': Błąd wejścia/wyjścia</screen>
                        Pomimo tego błędu dobrze się skopiowało, warto jednak 
sprawdzić
                        uprawnienia i atrybuty pliku (ewentualnie poprawić na 
takie
@@ -178,33 +196,19 @@
                        Kompresujemy nowy initrd:
 <screen># gzip -9 initrd-nowy</screen>
                        Teraz już pozostało tylko skopiowanie pliku
-                       <filename>initrd-nowy.gz</filename>     do
-                       <filename>/boot</filename>.
+                       <filename>initrd-nowy.gz</filename> do
+                       <filename>/boot</filename> i nadanie mu odpowiedniej
+                       nazwy.
                </para>
        </section>
 
 
-       <section id="kernel-urzadzenia_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>
-                       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>
+       <section id="kernel-urzadzenia_geninitrd_bootloader">
+       <title>Bootloader</title>
                <para>
-                       Następnie (o ile mamy zainstalowane LILO) wydajemy 
polecenie:
+                       Musimy się upewnić czy łącze symboliczne
+                       <filename>/boot/initrd</filename> wskazuje na 
prawidłowy obraz.
+                       Jeśli używamy <productname>LiLo</productname> wydajemy 
polecenie:
                </para>
                <screen># lilo</screen>
                <para>
@@ -231,8 +235,7 @@
 ## Modules that should be loaded before anything (i.e. jbd for ext3)
 PREMODS=""</screen>
                        możemy też użyć opcji
-                       <emphasis>--with</emphasis> programu geninitrd, lub 
dodać
-                       dodatkowe moduły przy "ręcznym" budowaniu obrazu.
+                       <emphasis>--with</emphasis> programu geninitrd.
                        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
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to