GNU/Linux >> Tutoriels Linux >  >> Linux

6 étapes du processus de démarrage Linux (séquence de démarrage)

Appuyez sur le bouton d'alimentation de votre système et après quelques instants, l'invite de connexion Linux s'affiche.

Vous êtes-vous déjà demandé ce qui se passe dans les coulisses à partir du moment où vous appuyez sur le bouton d'alimentation jusqu'à ce que l'invite de connexion Linux apparaisse ?

Voici les 6 étapes de haut niveau d'un processus de démarrage typique de Linux.

1. BIOS

  • BIOS signifie Basic Input/Output System
  • Effectue quelques vérifications de l'intégrité du système
  • Recherche, charge et exécute le programme du chargeur de démarrage.
  • Il recherche le chargeur de démarrage sur disquette, cd-rom ou disque dur. Vous pouvez appuyer sur une touche (généralement F12 ou F2, mais cela dépend de votre système) lors du démarrage du BIOS pour modifier la séquence de démarrage.
  • Une fois que le programme du chargeur de démarrage est détecté et chargé dans la mémoire, le BIOS lui donne le contrôle.
  • Donc, en termes simples, le BIOS charge et exécute le chargeur de démarrage MBR.

2. MBR

  • MBR signifie Master Boot Record.
  • Il est situé dans le 1er secteur du disque amorçable. Généralement /dev/hda ou /dev/sda
  • Le MBR a une taille inférieure à 512 octets. Cela a trois composants 1) informations sur le chargeur de démarrage principal dans les 446 premiers octets 2) informations sur la table de partition dans les 64 octets suivants 3) contrôle de validation mbr dans les 2 derniers octets.
  • Il contient des informations sur GRUB (ou LILO dans les anciens systèmes).
  • Donc, en termes simples, MBR charge et exécute le chargeur de démarrage GRUB.

3. GRUB

  • GRUB signifie Grand Unified Bootloader.
  • Si plusieurs images de noyau sont installées sur votre système, vous pouvez choisir celle à exécuter.
  • GRUB affiche un écran de démarrage, attend quelques secondes, si vous n'entrez rien, il charge l'image du noyau par défaut comme spécifié dans le fichier de configuration de grub.
  • GRUB connaît le système de fichiers (l'ancien chargeur Linux LILO ne comprenait pas le système de fichiers).
  • Le fichier de configuration de Grub est /boot/grub/grub.conf (/etc/grub.conf est un lien vers celui-ci). Voici un exemple de grub.conf de CentOS.
  • #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/boot/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-194.el5PAE)
              root (hd0,0)
              kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
              initrd /boot/initrd-2.6.18-194.el5PAE.img
  • Comme vous le remarquez dans les informations ci-dessus, il contient le noyau et l'image initrd.
  • Donc, en termes simples, GRUB charge et exécute simplement les images Kernel et initrd.

4. Noyau

  • Monte le système de fichiers racine comme spécifié dans "root=" dans grub.conf
  • Le noyau exécute le programme /sbin/init
  • Puisque init était le 1er programme à être exécuté par le noyau Linux, il a l'identifiant de processus (PID) de 1. Faites un ‘ps -ef | grep init' et vérifiez le pid.
  • initrd signifie disque RAM initial.
  • initrd est utilisé par le noyau comme système de fichiers racine temporaire jusqu'à ce que le noyau soit démarré et que le système de fichiers racine réel soit monté. Il contient également les pilotes nécessaires compilés à l'intérieur, ce qui l'aide à accéder aux partitions du disque dur et à d'autres matériels.

5. Init

  • Examine le fichier /etc/inittab pour décider du niveau d'exécution de Linux.
  • Voici les niveaux d'exécution disponibles
    • 0 – arrêter
    • 1 – Mode mono-utilisateur
    • 2 – Multi-utilisateur, sans NFS
    • 3 – Mode multi-utilisateur complet
    • 4 – inutilisé
    • 5 – X11
    • 6 – redémarrer
  • Init identifie le niveau d'initialisation par défaut à partir de /etc/inittab et l'utilise pour charger tous les programmes appropriés.
  • Exécutez "grep initdefault /etc/inittab" sur votre système pour identifier le niveau d'exécution par défaut
  • Si vous voulez avoir des ennuis, vous pouvez définir le niveau d'exécution par défaut sur 0 ou 6. Puisque vous savez ce que 0 et 6 signifient, vous ne le ferez probablement pas.
  • En règle générale, vous définissez le niveau d'exécution par défaut sur 3 ou 5.

6. Programmes de niveau d'exécution

  • Lorsque le système Linux démarre, vous pouvez voir divers services démarrer. Par exemple, il pourrait dire "démarrage de sendmail…. D'ACCORD". Ce sont les programmes de niveau d'exécution, exécutés à partir du répertoire de niveau d'exécution tel que défini par votre niveau d'exécution.
  • En fonction de votre paramètre de niveau d'initialisation par défaut, le système exécutera les programmes à partir de l'un des répertoires suivants.
    • Niveau d'exécution 0 - /etc/rc.d/rc0.d/
    • Exécuter le niveau 1 :/etc/rc.d/rc1.d/
    • Exécuter le niveau 2 :/etc/rc.d/rc2.d/
    • Exécuter le niveau 3 :/etc/rc.d/rc3.d/
    • Exécuter le niveau 4 :/etc/rc.d/rc4.d/
    • Exécuter le niveau 5 :/etc/rc.d/rc5.d/
    • Exécuter le niveau 6 :/etc/rc.d/rc6.d/
  • Veuillez noter qu'il existe également des liens symboliques disponibles pour ces répertoires sous /etc directement. Ainsi, /etc/rc0.d est lié à /etc/rc.d/rc0.d.
  • Sous les répertoires /etc/rc.d/rc*.d/, vous verriez les programmes qui commencent par S et K.
  • Les programmes commençant par S sont utilisés au démarrage. S pour démarrage.
  • Les programmes commençant par K sont utilisés pendant l'arrêt. K pour tuer.
  • Il y a des chiffres juste à côté de S et K dans les noms de programmes. Ce sont les numéros de séquence dans lesquels les programmes doivent être démarrés ou arrêtés.
  • Par exemple, S12syslog doit démarrer le démon syslog, qui a le numéro de séquence 12. S80sendmail doit démarrer le démon sendmail, qui a le numéro de séquence 80. Ainsi, le programme syslog sera démarré avant sendmail.

Voilà. C'est ce qui se passe pendant le processus de démarrage de Linux.


Linux
  1. Script de démarrage utorrent / exécuter utorrent au démarrage – Ubuntu 14.04 / 14.10

  2. Linux – Exécuter des applications Mac Os X sous Linux ?

  3. Linux - Commande pour exécuter un processus enfant "hors ligne" (pas de réseau externe) sous Linux ?

  4. Comment accélérer le processus de démarrage Linux à l'aide d'exemples de commande Startpar

  5. Processus de démarrage Linux

Comment exécuter Windows 95 sous Linux

Comment répertorier les services de démarrage au démarrage sous Linux

Surveillance des processus sous Linux

Un guide de base du processus de démarrage Linux

Commande Seq sous Linux

Processus de démarrage Linux :expliqué étape par étape pour les débutants