Avant boot du kernel

Bonjour,

j ai une petite question concernant le boot (je ne m y connait pas trop ). Avant d afficher la ligne "loading Kernel 2.xxxx " il y a une serie de log; A quoi correspond cette phase de boot et a quoi sert elle? is Est ce une reconnaissance du HW ou un preload de modules???

Je me suis ammuse a installer le bootchart et a regarder tout cela. Mais apparement les dumps de bootchart commence au moment ou il y la ligne "loading Kernel 2.xxxx " ; Ais je tord?

Note: pour moi cette phase de boot environt 10 a 15 seconde, est normal

Merci

AH

Le bootloader monte la partition /, je crois que c’est tout.
C’est quoi ton système de fichier sur / ?

c est d ext3 ; mais j ai l impression qu il y a plus que du montage.

AH

Je n’arrive pas à voir de quel moment tu parles.
C’est juste aprés une ligne qui parle de “pivot_root” ?
Si c’est le moment ou s’arrète un noyau auquel il manque son initrd, c’est aussi le moment ou il essaye de monter / pour démarrer la séquence de boot.
A ce moment là, le noyau monte l’initrd et en charge les modules necessaire à l’accés à /. Il peut ensuite enfin accèder aux logs et y écrire. Avant, le noyau commence par effectivement tâter un peu le hard, mais uniquement l’architecture du proc, de la mêmoire, et du bios (acpi s’il le trouve).

c est exactement ici!!! il y donc bien une decouverte du hard et qq chose avec le bios. OK OK. Je suppose que cela a aussi avoir avec les IRQs? Si oui comment vaut il mieux configurer son Bios pour cela:

  • laisser le bios gerer les IRQs
  • laisser cette sequence de boot faire son travail

Bon maintenant que j ai un peu plus d info je vais essayer de me documenter sur cette partie

Essayes plusieurs config de bios, et chronomètre cette partie pour voir quelle est la meilleure ?

:wink:
question tres tres bete (peut etre!) existe t il d autres process (ou d autre methodes ) de boot - ce que je veux dire par la c est en bootant sur Ubuntu il n y a pas cette sequence (ou alors je regarde mal…) ; Est ce lie a upstart ou cela n arien a voir?

En tout cas merci pour les informations ca aide toujours pour poursuivre les recherches

AH

Non, tu as toujours cette séquence: En fait tu as plusieurs étapes

  • Le BIOS lance le MBR, celui ci avec les routines du BIOS charge le noyau et éventuellement un fichier (l’initrd) et passe la main au noyau.
    — à partir de ce moment là, toutes les routines du BIOS sont oubliées ainsi que l’origine du boute, le noyau se débrouille seul avec éventuellement les paramètres de boute passés en arguments (single, root=, etc) -----------

  • Le noyau initialise ses tables puis le matériel. Il y a plusieurs façons de faire cela pour un OS, une où l’OS impose ses choix et les transmets aux BIOS (OS Pnp comme windows), l’autre ou il prend les choix du BIOS si ils sont fait (Linux du moins à l’époque du 2.4).
    Si il y a un initrd, il monte l’initrd, exécute le programme /linuxrc à l’issue de cela
    — Si il y a sur la racine un répertoire /initrd, fait un pivotroot, le système initrd se retrouve sous /initrd, sinon il fait un pivotroot et démonte /initrd.
    — Sinon il monte la racine

  • Le noyau enchaine sur init. Cela commence par une série de scripts qui par exemple charge udev et installent tous les périphériques (Initialisation = mis en place des vecteurs d’interruption par exemple et “conscience” de l’existence du périphérique qui apparait dans lspci par exemple, Installation = exploitation complète du périphérique, en clair les modules correspondant sont chargés et le périphérique est exploitable (ça n’est pas parce qu’on voit un truc dans lspci que linux le reconnait, il l’a vu, c’est tout et la base de données de signature PCI sait ce que c’est). Déclenchement des démons, etc…

Bon, en tout cas c’est comme ça que je comprends le boute.

Excellent merci beaucoup

AH