[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: make-kpkg



OoO Pendant  le journal  télévisé du jeudi  01 mars 2007,  vers 20:08,
Cédric Macquat <cmacquat@gmx.net> disait:

> Je vais en profiter: j'ai déjà compilé quelques fois mon noyau, mais je
> ne saisis pas encore vraiment l'avantage d'avoir ou de ne pas avoir
> d'initrd. Est-ce que tu pourrais m'éclairer ? Un lien ?

Il  y   a  pas  mal  de   confusion  dans  les  réponses   que  tu  as
eues. Généralement, tu n'as besoin d'initrd.

Voici grossièrement comme se passe la séquence de boot :
 - le boot  loader est chargé par  le BIOS (c'est lui qui  est dans le
   MBR,  pas  le  noyau  !)  et  il  se  débrouille  pour  se  charger
   entièrement
 - il charge le noyau avec l'aide du BIOS (donc il peut le lire sur le
   disque)
 - le noyau prend  la main sur le BIOS et il  n'est donc plus possible
   de lire le disque à cette étape
 - la partition racine est montée et l'utilitaire init est exécuté

Pour monter  la partition racine, il  faut pouvoir lire  le disque, le
noyau doit donc contenir de  quoi lire le disque (support des disques)
et le système de fichier qui est dessus. Si tu as un chipset Intel, il
faut donc coller  le support de celui-ci en dur dans  le noyau (pas en
module).

On rencontre là  le premier problème qui concerne  les distributions :
comment faire un noyau qui  fonctionne partout ? Avec mon scénario, il
faut tout mettre en dur dans le  noyau, ce qui fait un noyau énorme et
plein de choses inutiles chargées en mémoire.

C'est là  qu'intervient l'initrd. Au lieu  de monter la  racine, on va
monter  une image  disque qui  a été  chargée en  mémoire par  le boot
loader en même  temps que le noyau. Cette image  disque va détecter le
matos présent  sur ta  machine et charger  ce qu'il faut  pour pouvoir
monter ensuite la véritable racine.

À ce niveau, si tu compiles ton noyau toi même, tu n'as absolument pas
besoin d'initrd, y compris avec des disques SCSI. Il te suffit dans ce
cas de  compiler le support du SCSI,  des disques SCSI et  de ta carte
SCSI en dur dans le noyau. Sans oublier le système de fichiers.

Il  existe  cependant  des cas  où  tu  dois  quand même  utiliser  un
initrd. Par exemple, si ta  partition racine est chiffrée, l'initrd se
chargera de la déchiffrer car le noyau ne sait pas le faire tout seul.
-- 
BOFH excuse #374:
Its the InterNIC's fault.



Reply to: