Master 1ère année Sécurité des Systèmes d’Information 1 Démarrer et arrêter un système
Master 1ère année Sécurité des Systèmes d’Information 2 Démarrage Le démarrage d'un PC se fait en plusieurs étapes À l'allumage, le micro-processeur lance l'exécution d'un programme qui est en mémoire morte (ce qu'on appelle le BIOS (Basic Input-Output System), Ce BIOS reconnaît et initialise les cartes et périphériques (disque, disquette, cdrom, etc…) présents dans la machine, Il exécute ensuite le chargeur de démarrage qui est en partie sur le MBR (Master Boot Record) et en partie sur un des périphériques présents, généralement le disque dur, Ceci amène le chargement et l'exécution du noyau d'un système d'exploitation (/boot pour une installation Red Hat classique) Ce qui se passe au démarrage
Master 1ère année Sécurité des Systèmes d’Information 3 Démarrage Ce qui se passe au démarrage Chargeur de démarrage secondaire Noyau BIOS Chargeur de démarrage primaire
Master 1ère année Sécurité des Systèmes d’Information 4 Le chargeur de démarrage Le chargeur de démarrage est un programme qui charge en mémoire le noyau du système d’exploitation et le démarre Sur les compatibles IBM PC, il est limitée par le MBR qui fait 512 o. Le chargeur de démarrage primaire est contenu dans les 446 premiers octets Les 66 derniers octets contiennent la table de partition Le chargeur de démarrage secondaire est placé dans le système de fichiers. Il peut donc être plus volumineux. Qu’est-ce qu’un chargeur de « boot »?
Master 1ère année Sécurité des Systèmes d’Information 5 Le chargeur de démarrage LILO LILO (LInux LOader) Permet le multiboot, jusqu’à 16 images de démarrage Autorise les mots de passe Se place en partie sur le MBR (512 o) et en partie sur le disque amorçable. Se désinstalle (restauration du MBR) grâce à fdisk /mbr (sous dos) lilo -U (sous linux) Se configure grâce au fichier /etc/lilo.conf S'installe à l’aide de la commande lilo
Master 1ère année Sécurité des Systèmes d’Information 6 Un exemple de lilo.conf boot=/dev/hdambr du disque 1 vga=normal default="linux" keytable=/boot/fr-latin1.klten français svp prompt nowarn timeout=100temps d'attente 10s message=/boot/messageprompt image=/boot/vmlinuz label="linux" root=/dev/hdb5 initrd=/boot/initrd.imgchargement d'initrd append="devfs=mount acpi=ht resume=/dev/hdb6 splash=silent” paramètres passés au noyau vga=788 read-only other=/dev/hda1 label="windows" table=/dev/hda périphérique contenant la table de partition other=/dev/fd0 label="floppy" unsafe
Master 1ère année Sécurité des Systèmes d’Information 7 GRUB (GRand Unified Bootloader) La plupart des distributions ont choisi d’installer le chargeur de démarrage GRUB par défaut GRUB possède un fichier de configuration lu à chaque démarrage, ce qui signifie donc qu'à chaque modification, il est inutile de réinstaller GRUB, contrairement à LILO. Le chargeur de démarrage GRUB
Master 1ère année Sécurité des Systèmes d’Information 8 Notation des disques et des partitions avec GRUB Disques Le compteur de disques de GRUB commence à zéro. Le premier disque dur aura donc le numéro 0, le deuxième 1, etc… GRUB ne fait aucune distinction entre les disques IDE et SCSI puisqu'il passe par le BIOS qui lui non plus ne les différencie pas. Les disques sont donc numérotés dans leur ordre de détection. Partitions Les partitions sont nommées sous la forme (hdn,p) où hdn est le disque dur et p le numéro de partition Les partitions principales sont numérotées de 0 à 3 Les partitions étendues à partir de 4. Par exemple, votre partition hda2 sous Linux sera désignée (hd0,1) sous GRUB. En effet, Linux numérote les partitions à partir de 1 et GRUB à partir de 0.
Master 1ère année Sécurité des Systèmes d’Information 9 Configuration de GRUB /boot/grub/menu.lst ou /boot/grub/grub.conf Comme dans beaucoup de fichiers de configuration, les commentaires sont préfixés du caractère #, et sont simplement ignorés. # Numéro de l'entrée par défautdefault 0 # Titre qui apparaîtra au démarrage # Activation d'une partition en tant que partition de démarrage # Entrée 0 title GNU/Linux root (hd, ) ) kernel /boot/vmlinuz-xx root=/dev/hdxx read- only # Indique qu'il faut démarrer sur l'entrée # par défaut au bout de 10 secondes timeout 10
Master 1ère année Sécurité des Systèmes d’Information 10 Configuration de GRUB # Entrée 2 pour GNU/Hurdtitle GNU/Hurd root (hd, ) kernel /boot/gnumach root=hdxsx module /boot/serverboot # Entrée 1 pour Windowstitle Windows root (hd, ) ) makeactive chainloader +1 et sont à remplacer par les bonnes valeurs.
Master 1ère année Sécurité des Systèmes d’Information 11 Démarrage Le noyau Linux est assez bavard au démarrage, ce qui inquiète les débutants, mais fournit des indications précieuses sur le déroulement des opérations. Ce noyau reconnaît les périphériques et démarre les pilotes correspondants (les drivers) il monte l'arborescence racine (généralement en utilisant le système de fichiers situé sur une des partitions du disque) puis le noyau lance le programme /sbin/init qui devient le processus numéro 1 Le chargement du noyau
Master 1ère année Sécurité des Systèmes d’Information 12 Démarrage Amorçage du système $ ps axl F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND select S ? 0:00 init [2] contex SW ? 0:01 [keventd] ksofti SWN ? 0:00 [ksoftirqd_CPU0] kswapd SW ? 1:09 [kswapd] bdflus SW ? 0:00 [bdflush] kupdat SW ? 0:07 [kupdated] ? SW ? 0:00 [khubd] ? SW ? 0:00 [eth0] poll S ? 0:41 [portmap] Le rôle du noyau s'en arrête là en ce qui concerne le démarrage du système. C'est init qui se charge de démarrer les services du système.
Master 1ère année Sécurité des Systèmes d’Information 13 Les étapes du démarrage Tâches effectuées par l'intermédiaire de script Vérifier l'intégrité des systèmes de fichiers (fsck) Monter les disques locaux Déterminer les zones de pagination Vérifier les quotas disques, supprimer les fichiers temporaires Lancer les processus daemon des sous-systèmes d'impression, de courrier,... Lancer les daemons réseau et monter les disques distants Permettre aux utilisateurs de se connecter (getty ou xdm) et supprimer le fichier /etc/nologin