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: