Forum Linux.debian/ubuntu le noyau lance initrd ou initrd est lancé par le boot loader

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
27
oct.
2018

Bonjour,

Le boot loader qui se trouve dans les 512 premiers octet de la partition va lancer le noyau, mais comment le boot loader trouve le noyau alors que le systeme de fichier n'est pas monté ? le boot loader sait dans quels cylindres, pistes, secteurs ou se trouve le noyau, ou faut il d'abord monter le systeme de fichier via initrd, mais dans ce cas comment le boot loader trouve le programme initrd ?

initrd c'est juste un programme qui possède les fichiers inodes (qui indique l'emplacement des fichiers, la taille du fichier, les droits sur les fichiers …)

Merci d'avance pour vos éclaircissements

  • # Tu sembles bien confus

    Posté par  (site web personnel) . Évalué à 9.

    Tu sembles assez confus sur la procédure de démarrage, je vais essayer de te guider :

    Le boot loader qui se trouve dans les 512 premiers octet de la partition va lancer le noyau

    Cela dépend si tu es en UEFI ou BIOS traditionnel d'abord. Dans un BIOS traditionnel c'est en effet dans les 512 premiers octets. Mais c'est rarement suffit, un chargeur de démarrage moderne c'est plus lourd que cela. Du coup en général tu as la première partie à cet endroit (nommé MBR) et une seconde partie dans une partition (là où est le répertoire /boot dans ton système).

    L'objectif de la première partie est d'initialiser le strict minimum du matériel et de charger en mémoire le binaire de la seconde partie. Cela inclus donc de savoir lire le système de fichiers où il réside.

    Ensuite la deuxième partie du chargeur de démarrage va charger le noyau et l'initrd en mémoire. Il sait parfaitement où ils se trouvent sur le disque car ils sont normalement dans /boot et la configuration du chargeur de démarrage (au moins pour GRUB) spécifie les noms de fichiers à charger. Puis il passe la main au noyau qui sait où réside l'initrd en mémoire, une fois qu'il a fini l'initialisation du matériel, il monte l'initrd avant de passer la main au processus init.

    Pour résumer l'ordre du boot se passe ainsi : BIOS -> GRUB 1ère partie -> GRUB 2e partie -> Noyau -> Initrd

  • # rep

    Posté par  . Évalué à 1.

    merci de ta réponse.

    tu dis :"
    Ensuite la deuxième partie du chargeur de démarrage va charger le noyau et l'initrd en mémoire. Il sait parfaitement où ils se trouvent sur le disque car ils sont normalement dans /boot et la configuration du chargeur de démarrage (au moins pour GRUB) spécifie les noms de fichiers à charger.
    "

    comment est ce possible de charger le noyau et initrd qui se trouve dans /boot alors que le systeme de fichier n'est pas monté. si le systeme de fichier n'est pas monté alors tu ne connais pas la hiérarchie des tes directory et donc jamais tu peux trouver le noyau et initrd dans le directory /boot

    • [^] # Re: rep

      Posté par  (site web personnel) . Évalué à 4.

      comment est ce possible de charger le noyau et initrd qui se trouve dans /boot alors que le systeme de fichier n'est pas monté.

      Qui te dit qu'il ne le monte pas ? Bien sûr que GRUB fait ce genre de choses pour accéder aux fichiers, je ne vois pas le problème.

      • [^] # Re: rep

        Posté par  (Mastodon) . Évalué à 2.

        Bien sûr que GRUB fait ce genre de choses pour accéder aux fichiers

        Exactement. D'où le concept de bootloader de 1er niveau (ultra simple) et de 2e niveau (bcp plus évolué : il peut utiliser un système de fichier, il peut pourquoi pas faire du graphique, du réseau etc.)

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: rep

      Posté par  . Évalué à 5. Dernière modification le 28 octobre 2018 à 12:43.

      comment est ce possible de charger le noyau et initrd qui se trouve dans /boot alors que le systeme de fichier n'est pas monté

      ouvre le shell de grub

      et tu verras que tu as les options pour preciser ou se trouve le disque (hd0), quel est son type (msdos,gpt), une partition (hd0,0), son format (extX, vfat)

      donc grub dispose bien de ce qu'il faut pour aller chercher la premiere partition utile (celle qui contient /boot) puis en lire le kernel et le initrd

      c'est seulement ensuite que le vrai linux demarre

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.