PLD-doc/queue/pld-initrd.txt

qwiat cvs w pld-linux.org
Śro, 8 Wrz 2004, 04:18:39 CEST


Author: qwiat
Date: Wed Sep  8 02:18:31 2004
New Revision: 4507

Added:
   PLD-doc/queue/pld-initrd.txt
Log:
-Ponowna proba dodania rozdzialu o tworzenu initrd


Added: PLD-doc/queue/pld-initrd.txt
==============================================================================
--- (empty file)
+++ PLD-doc/queue/pld-initrd.txt	Wed Sep  8 02:18:31 2004
@@ -0,0 +1,104 @@
+Wstęp
+--------
+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: 
+"Kernel panic: VFS: Unable to mount root fs...".
+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.
+
+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.
+
+
+
+Przygotowanie
+---------------
+Będziemy potrzebować dystrybucję uruchamianą z płyty CD. Do tego będzie się
+nadawała się niemal każda taka dystrybucja np.: PLD-Live lub RescueCD.
+Podłączamy dysk twardy do docelowego komputera. Po uruchomieniu
+systemu z płytki musimy zamontować główny system plików (/) pod jakiś katalog.
+Zakładając, że nasz główny system plików to /dev/hda3, wykonujemy:
+
+# mkdir /mnt/rootfs
+# mount /dev/hda3 
+
+Następnie musimy użyć programu chroot:
+
+# chroot /mnt/rootfs /bin/sh
+
+
+
+
+Automatyczne generowanie initrd
+-------------------------------
+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":
+
+# mount /proc
+
+Teraz przyszedł czas na wygenerowanie pliku initrd. Używamy do tego programu
+geninitrd: geninitrd [opcje] nowy_initrd numer_wersji_jądra 
+np.:
+# geninitrd -v /boot/initrd_nowy 2.6.7
+
+
+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:
+
+# rm /boot/initrd
+# ln -s /boot/initrd_nowy /boot/initrd
+
+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:
+----
+initrd = /boot/initrd
+----
+Następnie wydajemy polecenie:
+# lilo
+
+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.
+
+
+
+
+Generowanie uniwersalnego initrd
+--------------------------------
+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:
+geninitrd [opcje] --with=nazwa_modulu nowy_initrd numer_wersji_jądra
+np.:
+# geninitrd -v --with=ext3 --with=pdc202xx_new  /boot/initrd_nowy 2.6.7
+
+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. 
+
+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.
+
+
+
+




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