geninitrd - usterka

Rafał Kleger-Rudomin klakier w pld.org.pl
Pon, 2 Lip 2001, 13:30:44 CEST


Tomasz Kłoczko <kloczek w rudy.mif.pg.gda.pl> writes:

> On Mon, 2 Jul 2001, Michal Moskal wrote:
> 
> > On Mon, Jul 02, 2001 at 10:36:29AM +0200, Rafał Kleger-Rudomin wrote:
> > > 
> > > Przy braku /etc/modules.conf przy instalacji od zera geninitrd
> > > usiłuje używać tego pliku i pokazuje komunikat o błędzie.
> > > 
> > 
> > Zmieniłem w CVS, żeby nie używał jak nie ma. Ale może lepiej by było
> > jakby był? (tzn. żeby się generował wcześniej, albo coś koło tego) ??
> 
> Tu jest pewna zagwozdka. Otóż wygląda to tak :startujemy z kernela który
> jest nieco inny niż produkcyjny i który to kernel niekonicZnie musi mieć
> wszystko tak samo pomodularyzoane. Dodatkowo modutils ze względu na to co

Kernel BOOT jest super modularny z wyjątkiem ext2 który musi mieć na stałe 
bo initrd jest na ext2, oraz romfs na którym chodzi dystrybucyjne initrd.
Cała reszta jest w modułach.

> chciałeś nie generuje pewnych rzeczy na podstawie systemu w jakim jest to
> instalowane (czy jest to dobrze czy źle to jest zależne tylko od tego co
> sie będzie chciało uzyskać i ciężko powienidzieć że rzeczywiście powinno
> być tak zawsze).

Tak jest dobrze, generowanie czegokolwiek przez modutils jest bez sensu
(powody przytaczałem wcześniej)

> Gdyby całość startowałą z kernele modularnego takiego jak produkcyjny (w
> initrd w zasadzie nie musiałoby być aż tak dużo jak na regularnym initrd
> bo całosć nie startowałaby jeszcze włąsciwego root fs) nieco mogło
> uprościć sytuację, bo:
> - całosć by startowała z bootkietki,
> - automatycznie lub półautomatycznei odbywałoby się zainicjowanie sprzetu
>   (scsi/ide),
> - wybierałoby się potrzebny fs na root fs + ewentualnie moduł od raid,
> - inicjowałby się sieć (o ile byłaby potrzebna) i inne rzeczy (np. kiedyś
>   też możnaby inicjować i USB)

Eeech, Amerykę odkrywasz, przeca to tak właśnie działa!

Bootdiskowy kernel wciąga się bez _żadnych_ modułów (root fs ma przecież
w ramdysku). Wszystko co jest mu potrzebne dalej jest na bieżąco doładowywane:
- jeśli musi sie dostać do cdroma to wchodzą moduły ide
- jeśli instalacja net to wchodzi moduł karty sieciowej (dla pci autodetekcja)
  oraz inne potrzebne

Ale to nie ma żadnego związku z generowaniem dystrybucyjnego initd, bo to
dotyczy _source_ (skąd wziąć dystrybucję), a dystrybucyjny initrd
jest zależny od _dest_ (gdzie i na czym instalować)

> w takiej sytuacji odpwiednie aliasy i paramatry do tychże na poziomie
> modutils już byłyby zainicjowane i po instalacji modutils wykonanie
> modprobe -c (nawet po skończeniu instalacji pakietów) mogłby posłużyć do
> wygenerowania modules.conf. W tej sytuacji także zapuszczenie po wszystkim
> dodatkowo geninitrd bez zadnych dodatkowych zmian nie napotkałoby już
> żadnych oporów.

Nie ma to sensu bo geninitrd jest robione w %post kernela podczas instalacji
pakietów. Po co to powtarzać?


Natomiast modules.conf powienien być generowany podczas przygotowywania
_dest_, tzn instalator powienien go przygotować przed instalacją 
pakietów. Wtedy pakiet kernel bedzie robił sobie initd na jego podstawie
(notabene dla ide bez modules.conf też robi dobry), a modutils nie będzie robił nic.

Rafał

-- 
Rafał Kleger-Rudomin (klakier w pld.org.pl)



Więcej informacji o liście dyskusyjnej pld-devel-pl