1 - Démarrage et arrêt d une dune station Unix -
-- Démarrage et arrêt d une station Unix - Démarrage d une station Unix 2 Le boot de la machine Unix se compose des étapes : 1. Mode moniteur de la machine 2. Chargeur primaire 3. Chargeur secondaire 4. Chargement du noyau création du processus init 5. Scripts de démarrage lancés par init
Etape 0 du boot : POST 3 POST = Power On Selt Test Tests électriques et électroniques de la machine. Après le POST, on passe la main au moniteur.
Etape 1 du boot : le moniteur 4 Le moniteur peut être en (ROM, PROM ) inspecter l état létat matériel de la machine permettre à l utilisateur d interagir si besoin pour divers réglages charger en mémoire vive le secteur de boot d un dun certain périphérique et exécuter ce programme.
Etape 2 du boot : chargeur primaire 5 Le chargeur primaire i est constitué en général é ldu premier secteur de boot d un périphérique (MBR - Master Boot Record). Il va lui même charger et exécuter un programme plus gros qui poursuivra le démarrage de la machine. Sur LINUX : le chargeur primaire et le chargeur secondaire sont assurés par le même programme. Deux programmes principalement : LILO (Linux Loader ) GRUB (Grand Unified Boot Loader)
Etape 3 du boot : chargeur secondaire 6 Le chargeur secondaire est le programme chargé depuis le secteur de boot puis exécuté. Il charge en mémoire vive le noyau Unix jusqu à ce que le noyau soit capable de monter par lui-même des filesystems puis l exécute lexécute.
Etape 4 du boot : chargement du noyau Unix Le noyau Unix permet la configuration du système : prise en compte des périphériques éi héi configuration logicielle des interfaces réseau création de toutes les structures mémoire nécessaires au lancement de premier processus de la machine (INIT) PID 1. Le noyau charge et lance le programme init Création de la premier console Les traces du noyau sont placées dans /var/log/dmesg g
Etape 5 du boot : init et ses scripts de démarrage 8
Etape 5 du boot : init et ses scripts de démarrage 9 Le programme init, premier démarré et dernier stoppé au sein du système, Il lance toutes les autres tâches. Le rôle initial de init est de démarrer et d arrêter tous les services via l exécution de plusieurs commandes et scripts. Le processus init est le père de tous les processus. Il a toujours le PID 1. Sa configuration est présente dans le fichier /etc/inittab Une fois le système démarré et les services lancés, init reste actif pour gérer les changements d état des processus qu il contrôle et des niveaux d exécution.
Scripts de démarrage Il y a deux méthodes pour lancer les scripts de démarrage : la méthode System V : basé sur la notion de niveaux d exécution la méthode BSD : il n'y ny a pas de niveaux de fonctionnement (runlevel) La distribution Ubuntu utilise Upstart qui gère les priorités, les événements et dépendances entre les services, mais qui reste calquée sur le même principe. Le mécanisme de niveau d exécution est reconnaissable à la présence du fichier : «/etc/inittab».
Fichier /etc/inittab Un niveau d exécution, ou runlevel, est un état dans lequel se trouve Unix/Linux. Cet état est contrôlé par init. Syntaxe du fichier /etc/inittab: Label Label : Niveaux : action : commande Le label est une étiquette quelconque. Niveaux # 0 - halt stoppe le système d exploitation, éteint la machine. # 1 - Single user mode: Mode mono-utilisateur utilisé pour la maintenance, mode console. # 2 - Multi-utilisateur, sans réseau, console. # 3 - Multi-utilisateur, avec réseau, console. # 4 - Idem que le 3, laissé à la convenance de l administrateur. i t # 5 - Multi-utilisateur, avec réseau, avec environnement graphique X Window. # 6- Reboot : redémarrage de la machine.
Fichier /etc/inittab Principales actions : initdefault: Cette ligne précise le run-level dans lequel init se place au début de son invocation. Il ne peut y avoir qu une ligne de ce type. Sysinit :Exécuté une seule et unique fois lors du démarrage du système. Boot :Idem que Sysinit mais après sysinit. respawn: le programme init devra relancer la commande du champ commande chaque fois qu elle se terminera. wait: Lorsque init rentre dans le niveau considéré, il doit lancer la commande du champ commande et en attendre la fin avant de passer à la ligne suivante de inittab. once: Si la commande n a pas été lancée au préalable, iitl init la lance et passe à la ligne suivante ; en aucun cas, cette commande ne sera relancée. ctrlaltdel :Init reçoit un signal SIGINT issu d une séquence [Alt][Ctrl][Suppr].
Changement de niveau Vous pouvez changer de niveau à la volée après le démarrage de la machine avec la commande : /sbin/init Exemple : # init 5 Le niveau d exécution actuel est visible avec la commande /sbin/runlevel. Exemple : # runlevel N 5 La première valeur retournée est le niveau précédent le niveau actuel. Un N signifie qu il n y a pas de précédent niveau. La seconde valeur est le niveau actuel.
Scripts rc Le script /etc/init.d/rc prend comme paramètre le niveau 14 d exécution Le script rc initialise le niveau d exécution voulu et est responsable du démarrage et de l arrêt larrêt des services associés quand le niveau d exécution change. Les fichiers «/etc/rc0», «/etc/rc1», «/etc/rc2», etc. sont des scripts, tous bâtis sur le même modèle. Signification ifi du mot «rc» : Runtime Configuration «/etc/rc0» : Runtime Configuration of runlevel 0 «/etc/rc1» : Runtime Configuration of runlevel 1 «/etc/rc2» : Runtime Configuration of runlevel 2
Scripts rc 15 Quand on entre dans le runlevel N on lance le script «rcn». Le script «rcn» lance des programmes dont le nom commence par la lettre S et situés dans «/etc/rcn.d». L enchaînement h î tde ces programmes se fait itdans l ordre alphabétique. Un argument est passé à chaque programme : «start» Le script «rcn» lance des programmes dont le nom commence par la lettre K et situés dans «/etc/rcn.d». L enchaînement de ces programmes se fait dans l ordre alphabétique. Un argument est passé à chaque programme : «stop»
Gestion des scripts de démarrage 16 Les services sont contrôlés (démarrage, arrêt, relance, status, etc.) à l aide de scripts présents dans /etc/init.d Ou bien Via la commande service On peut gérer à la main les scripts de démarrage vus précédemment : détermination i ti des runlevels l mise en place des liens symboliques On peut aussi gérer les scripts via la commande «chkconfig [option] [service]»
17 - Démarrage et arrêt d une station Unix - Boot en single user/mono utilisateur C est un mode particulier de démarrage de la machine Unix Utilité : intervenir i sur la machine Unix pour réparer un problème par exemple. la machine Unix ne fonctionne pas encore en mode multi utilisateurs Pour booter en single user, il faut le préciser au niveau du moniteur de la machine. On passe du mode mono utilisateur au mode multi utilisateur via «exit» qui fait se terminer le shell root du mode single user.
Arrêt d une station Unix 18 #halt : Réalise un «sync» avant d arrêter les processus et de rendre la main au mode moniteur en général. #reboot : Provoque un redémarrage du système.
Arrêt d une station Unix 19 Envoi idu signal «SIGTERM» aux processus. #shutdown [options] Pour redémarrer la machine : (option «-r» comme reboot) #shutdown -r now Pour arrêter la machine : (option «-h» comme hlt) halt) #shutdown -h now Sur LINUX, on a la possibilité de contrôler qui peut rebooter la machine via «/etc/shutdown.allow».
Arrêt d une station Unix 20 au niveau de «/etc/inittab» : ca::ctraltdel:/sbin/shutdown -t3 -r now Si option «-a» présente alors «/etc/shutdown.allow» /t/htd fera vérifier éifi si ila personne peut faire Ctrl-Alt-Del. Les opérations de redémarrage ou arrêt laissent des traces visibles par la commande last