Forums Zebulon.fr: [FAQ] Processus de boot linux - Forums Zebulon.fr

Aller au contenu

Page 1 sur 1

[FAQ] Processus de boot linux ça peut intéresser du monde Noter : -----

#1 L'utilisateur est hors-ligne   Greywolf 

  • Modérateur
  • Groupe : Modérateur [Greywolf]
  • Messages : 9321
  • Inscrit(e) : 06-décembre 01

Posté 18 novembre 2004 - 07:28

Une fois le chargeur de démarrage (LiLo, Grub,...) lancé par le mbr (rappel: le bios cherche d'abord dans le mbr du disque dur qui va scanner le disque pour trouver la partition flaguée bootable et exécuter le contenu du secteur de boot), le noyau est décompressé en mémoire.

Pour qu'un noyau s'y retrouve dans le disque dur, il faut au moins qu'il sache gérer nativement le contrôleur IDE du disque (ou SATA) ainsi que le type de systèmes de fichiers (Ext3, ReiserFS, XFS,...).

L'utilisation d'une image initrd permet de s'affranchir de compiler en dur ces fonctionnalités en les intégrant en tant que module dans l'image.

Lorsque le noyau a retrouvé son disque dur, celui lance le père de tous les processus:
/sbin/init.

init va lire le fichier /etc/inittab pour, entre autres, déterminer le niveau d'exécution par défaut du système et va, inévitablement, charger le niveau S qui correspond au minimum vital.

Le système linux dispose de 7 niveaux d'exécution numérotés de 0 à 6:

0 correspond à la procédure d'extinction de la machine (tapez telinit 0 en root dans une console)
6 correspond à la procédure de redémarrage de la machine (idem)

1 correspond au mode d'administration qui charge un minimum de choses et se conclue par l'accès à un shell root direct si la distribution est peu sécurisée ou avec demande de mot de passe dans le cas contraire.

2, 3, 4 et 5 permettent de déterminer différents niveaux d'exécution avec différents services chargés

2 est normalement multi-utilisateur sans serveur X
5 , sous mandrake, est associée à un système multi-utilisateur avec serveur X.

Mais on peut faire ce que l'on veut (après tout c'est notre PC :P )

Ces niveaux d'exécution permettent au système de déterminer dans quel répertoire rcX.d piocher les scripts de démarrage.
    Sous Mandrake, ces scripts se retrouvent dans les répertoires /etc/rc.d/rc[0-6].d
    Sous Debian, ces scripts se retrouvent dans les répertoires /etc/rc[0-6].d
En regardant de plus près ces répertoires, on s'aperçoit qu'ils ne contiennent que des liens symboliques vers les scripts du même nom contenus dans le répertoire /etc/rc.d/init.d (Mandrake) ou /etc/init.d (Debian).

Ces liens sont tous formés selon la même syntaxe
[S|K]XX<nom_du_script>


S indique au système que le script doit être lancé avec l'opérande start (démarrage du service)
K indique au système que le script doit être lancé avec l'opérande stop (arrêt du service)

XX est un niveau d'exécution, on peut en effet modifier l'ordre dans lequel se lance ces scripts. Par exemple, pour une carte PCMCIA ethernet sur un portable, le chargement de PCMCIA doit se réaliser avant le montage des interfaces réseaux.

Sous Debian, l'utilitaire update-rc.d permet de gérer ces liens.
Sous Mandrake, l'utilitaire est chkconfig.
(je ne rentre pas dans les interfaces graphiques du style KSysV...)

Sous Mandrake, il existe un dernier répertoire nommé rc.local, celui-ci peut contenir des scripts maison qui seront lancés à la fin du processus d'init.

Pour lancer un service sous mandrake, il est possible d'utiliser la syntaxe
service <nom_du_service> start


on peut tout aussi bien faire
/etc/rc.d/init.d/<script_correspondant_au_service> start


//ceci est une ébauche de FAQ. Si des mandrakiens peuvent confirmer ou infirmer mes dires

//truc amusant: au prompt lilo ou grub, taper init=/bin/sh
En essayant continuellement on finit par réussir.
Donc : plus ça rate, plus on a de chances que ça marche.
0

PUBLICITÉ

  • Annonces Google

#2 L'utilisateur est hors-ligne   KewlCat 

  • Modérateur
  • Groupe : Modérateur [KewlCat]
  • Messages : 26695
  • Inscrit(e) : 04-décembre 00

Posté 19 novembre 2004 - 12:31

La même chose sous Slackware (qui, je le rappelle, utilise une structure empruntée à BSD pour ses scripts de boot). Je considère ici que le package sysvinit (optionnel, mettant en place les scripts de boot SytemV) n'a pas été installé.

Au niveau de l'init, rien ne change : /sbin/init va lire le contenu de /etc/inittab, et root peut demander à init de passer d'un runlevel à un autre avec la commande telinit <runlevel>

Les scripts se situent tous dans un unique répertoire /etc/rc.d

Boot de la machine : S comme ... euh... "System initialization" ?
- exécute /etc/rc.d/rc.S

Runlevel 0 : halt
- éteint la machine, si on a bien configuré son ACPI ou APM. sinon, arrête tous les processus et affiche "system halted"
- exécute le script /etc/rc.d/rc.0

Runlevel 1 : single user
- permet d'obtenir une console d'administration avec la toute puissance de la machine à son entière disposition ;-)
- exécute le script /etc/rc.d/rc.K

Runlevel 2 : configuré pareil que Runlevel 3
Runlevel 3 : multiuser
- mode par défaut de la slackware, démarre six tty
- exécute /etc/rc.d/rc.M
- (il est appelé depuis rc.M, en fait) exécute rc.local

Runlevel 4 : X11 (xdm, kdm, gdm, ce que vous voulez...)
- exécute /etc/rc.d/rc.4

Runlevel 5 : configuré pareil que Runlevel 3

Runlevel 6 : reboot
- redémarre la machine
- exécute /etc/rc.d/rc.6

Les services démarrés lors du boot peuvent être configurés par le script /var/adm/setup/setup.services (s'il n'est pas déjà dans le $PATH)
[Note : /var/adm est un lien symbolique vers /var/log]
Cela dit, ce script se contente de changer l'attribut exécutable des scripts /etc/rc.d/rc.<nom du service>

Ces scripts s'utilisent généralement de la façon suivante : /etc/rc.d/rc.service [ start | stop | restart ] ("généralement" parce que certaines fois l'action restart n'est pas prévue)

Ainsi, pour redémarrer son serveur Apache, il convient de lancer /etc/rc.d/rc.httpd restart
Pour arrêter les interfaces réseau, il convient de lancer /etc/rc.d/rc.inet1 stop

etc.
"Le formatage est le dernier refuge de l'incompétence" (Adapté de Isaac Asimov)

Image IPB Image IPB Image IPB Image IPB
0

#3 L'utilisateur est hors-ligne   KewlCat 

  • Modérateur
  • Groupe : Modérateur [KewlCat]
  • Messages : 26695
  • Inscrit(e) : 04-décembre 00

Posté 19 novembre 2004 - 10:05

Greywolf, le jeudi 18 novembre 2004 à 19h28, dit :

Une fois le chargeur de démarrage (LiLo, Grub,...) lancé par le bios (rappel: le bios cherche d'abord dans le mbr du disque dur puis, s'il ne trouve rien, passe au superblock de la partition flaggée bootable), le noyau est décompressé en mémoire.

J'avais pas noté... Il y a une petite correction à apporter : le BIOS lance ce qui se trouve dans le MBR du disque désigné comme disque de boot. Point. C'est le programme du MBR qui va scanner le disque pour trouver la partition flaguée bootable et exécuter le contenu du secteur de boot.
C'est pour cela que, lorsque le MBR est flingué, ça ne boote plus. On peut mettre ce que l'on veut dans le MBR ou dans le secteur de boot, mais si on veut garder un disque sain, il est conseillé de ne pas installer le bootloader dans le MBR (surtout que, parfois, les constructeurs de DD ne mettent pas qu'un bête scanneur/amorceur dans le MBR...)
"Le formatage est le dernier refuge de l'incompétence" (Adapté de Isaac Asimov)

Image IPB Image IPB Image IPB Image IPB
0

#4 L'utilisateur est hors-ligne   Greywolf 

  • Modérateur
  • Groupe : Modérateur [Greywolf]
  • Messages : 9321
  • Inscrit(e) : 06-décembre 01

Posté 20 novembre 2004 - 08:16

corrigé :P
En essayant continuellement on finit par réussir.
Donc : plus ça rate, plus on a de chances que ça marche.
0

#5 L'utilisateur est hors-ligne   KewlCat 

  • Modérateur
  • Groupe : Modérateur [KewlCat]
  • Messages : 26695
  • Inscrit(e) : 04-décembre 00

Posté 20 novembre 2004 - 03:31

Génial :-)
"Le formatage est le dernier refuge de l'incompétence" (Adapté de Isaac Asimov)

Image IPB Image IPB Image IPB Image IPB
0

#6 L'utilisateur est hors-ligne   KewlCat 

  • Modérateur
  • Groupe : Modérateur [KewlCat]
  • Messages : 26695
  • Inscrit(e) : 04-décembre 00

Posté 04 janvier 2006 - 03:45

Article interessant sur IBM Developerworks : Boot loader showdown décrivant et comparant le fonctionnement de Lilo et Grub.
"Le formatage est le dernier refuge de l'incompétence" (Adapté de Isaac Asimov)

Image IPB Image IPB Image IPB Image IPB
0

#7 L'utilisateur est hors-ligne   KewlCat 

  • Modérateur
  • Groupe : Modérateur [KewlCat]
  • Messages : 26695
  • Inscrit(e) : 04-décembre 00

Posté 06 juin 2006 - 08:06

Article sur IBM Developerworks "Inside the Linux boot process" décrivant l'intégralité du processus de boot, du BIOS jusqu'au lancement du premier processus en "user space".
"Le formatage est le dernier refuge de l'incompétence" (Adapté de Isaac Asimov)

Image IPB Image IPB Image IPB Image IPB
0

Page 1 sur 1


Similar Topics
  Sujet Commencé par Statistiques Infos sur le dernier message
Sujet ouvert (nouvelles réponses) « Select proper boot device »
Panne aléatoire – écran noir
Placestan54  
  • 7 réponses
  • 468 vues
Sujet ouvert (nouvelles réponses) [Résolu] Re-boot au démarrage lilium 
  • 10 réponses
  • 420 vues
Sujet ouvert (nouvelles réponses) [Résolu] Processus spoolsv.exe à 25% alain488 
  • 2 réponses
  • 180 vues
Sujet ouvert (nouvelles réponses) XP Pro partition boot plantée
Quid pour réparer une partition bootable plantée ?
riga75012 
  • 5 réponses
  • 320 vues
Sujet ouvert (nouvelles réponses) [Résolu] Démarrer sous Window et non Linux Pouche 
  • 5 réponses
  • 385 vues
Sujet ouvert (nouvelles réponses) Disques durs branchés en tandem empêchent boot
Demande d'aide
gedmeaux 
  • 7 réponses
  • 926 vues
Sujet ouvert (nouvelles réponses) [Résolu] Fichier Hosts utilisé par un autre processus - ZoneAlarm AlbertMuda 
  • 4 réponses
  • 426 vues
Sujet ouvert (nouvelles réponses) Pb de boot XP à partir lecteur DVD SATA Redelectron  
  • 1 réponses
  • 197 vues
Sujet ouvert (nouvelles réponses) Configuration menu de boot NoxAdmin78 
  • 2 réponses
  • 886 vues
Sujet ouvert (nouvelles réponses) [Résolu] Demande aide processus gestionnaire des tâches colonel Alex 
  • 12 réponses
  • 687 vues

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)