===== Description des phases de démarrage sous linux ===== - **Bios** cherche le périphérique sur lequel il démarrera et passe le contrôle à un chargeur de programme initial (IPL) installé dans le secteur de partition principal (Master Boot Record, MBR) d'un disque. - L'**IPL** tient dans les 446 premiers octets du disque et a pour seule tâche de localiser et charger un chargeur de démarrage (comme grub) - **Grub** localise le(s) système(s) d'exploitation(s) à partir de la conf ''/boot/grub/menu.lst''. Pour lancer un linux dans la configuration il est indiqué: le chemin du **kernel** utilisé, la partition du disque contenant la **racine du système** (/), et le **ramdisk** (initrd) contenant les drivers nécessaire au chargement du système. - Au démarrage le noyau à la fonction de détecter les périphériques, d'initialiser les pilotes de périphériques, de monter le système de fichier racine (/) en lecture seule et de charger le processus initial **init** - **init** lit sa configuration dans le fichier ''/etc/inittab''. **init** lancera: * Un premier script indiqué sur la ligne **si::sysinit** dans ''/etc/inittab'' qui effectura les tâches principales ((**Tâche lancés par la tâche ''sysinit'':** * Activer udev et sulinux * Définir les parametres du noyau dans ''/etc/sysctl.conf'' * Définir l'horloge système * Charger les mappes de clavier * Activer les partitions swap * Définir le nom d'hôte * Vérifier et remonter le système de fichiers racine (/) * Activer des périphériques RAID et LVM * Activer les quotas de disque * Vérifier et monter d'autres systèmes de fichiers * Nettoyer les "stale locks" et les fichiers PID )) * Tous les scripts du niveau de démarrage par défaut. En fonctions du niveau de démarrage les scripts ''/etc/rc.d/*'' ==== Pour résumer ==== - **Bios** cherche le périphérique sur le quel il démarrera et où se trouve l'IPL (la conf est dans le **CMOS**) - **IPL** localise et charge un chargeur démarrage telque Grub (la conf est dans le **MBR**) - **Grub** sait où se trouve l'image du kernel et les drivers de l'OS à charger (la conf est dans **/boot/grub/menu.lst**) - **Kernel** détecte et charge les pilotes des périphériques nécessaire pour le démarrage du système - **init** est le premier processus lancé, il lancera lui même un ensemble de script permettant de démarrer le système et tous les démons (la conf est dans **/etc/inittab**) ===== Modifier les services lancés au démarrage ===== ==== Sous Redhat ==== Pour lister les services: chkconfig --list Pour ne pas demarrer un service: chkconfig off Pour demarrer un service: chkconfig on Pour démarrer un service dans les niveau 4 et 5 chkconfig --level 45 ==== Sous d'autres OS ==== Sous Debian : update-rc.d [service] defaults Pour activer le service service dans le niveau de fonctionnement R, créez le lien symbolique /etc/rcR.d/Sxyservice avec comme cible ../init.d/service. Le numéro xy doit être le numéro assigné au service lors de l'installation du paquet. Pour désactiver le service, renommez le lien symbolique en le faisant commencer par K à la place de S et en lui donnant le numéro 100 moins xy. Il est plus facile d'utiliser un gestionnaire de service comme //**sysv-rc-conf**//