0% ont trouvé ce document utile (0 vote)
29 vues32 pages

Chapitre 5

Transféré par

amine.gmih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues32 pages

Chapitre 5

Transféré par

amine.gmih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 5

Démarrage de Linux
&
Édition des fichiers
Chargeur de démarrage (boot loader)
Quelques Définitions:

MBR (Master Boot Record ou zone d’amorce ):


Le premier secteur d’une taille de 512 octets il contient dans ses 444
premiers octets une routine (un programme) d’amorçage destiné à
démarrer soit le système d’exploitation sur la partition active, soit un
chargeur de démarrage (boot loader)

Un chargeur d'amorçage (ou bootloader):


Un logiciel permettant de lancer un ou plusieurs systèmes d'exploitation,
c'est-à-dire qu'il permet d'utiliser plusieurs systèmes, à des moments
différents, sur la même machine.

Linux utilise LILO ou GRUB comme chargeur de démarrage qui peut


être installé dans le MBR ou dans le boot sector qui doit faire partie
d’une partition bootable
Chargeur de démarrage (boot loader)
On a 2 possibilités:
• Chemin A:
1er boot loader (Dos/windows) = sur MBR
2ème boot loader (LILO ou GRUB) = sur boot sector E Partition primaire
- Avantage : Réinstallation de windows => LILO ou GRUB intact
(Il suffit d’utiliser un outils (dos/windows) comme fdisk => pour rendre la
partition linux bootable)
- Inconvénient : nécessite une partition primaire
• Chemin B: 1 seul boot loader (LILO ou GRUB) = sur MBR

B : Contient un seul boot loader

A: Contient un 1er boot loader A: Contient un 2ème boot loader


Chargeur de démarrage (boot loader)

LILO est constitué d’un programme accompagné de son fichier de


configuration /etc/lilo.conf :
À enlever si vous utiliser un ancien disque dur

Partition « / »

« / » doit être montée en lecture seule. L’OS va la remonter en R&W

Emplacement de l’image du noyau

ce fichier contient une configuration et


Facultative car des pilotes initiaux.
Linux détecte la
taille de la RAM

Cette partition contient un OS ≠ de Linux


Chargeur de démarrage (boot loader)
Après la modification de lilo.conf:
# lilo ou # /sbin/lilo => installe LILO dans le MBR où dans le boot sector
Ou
# /sbin/lilo –C /etc/lilo2.conf

quelques options de « lilo »:


-v: Augmente la quantité de commentaires.
-t: Juste un essai. Ne pas modifier vraiment le secteur de boot.
A utiliser avec -v pour s'assurer de ce que lilo va faire.
-b: pour spécifier le périphérique de démarrage = substitue l’option « boot
=» définie dans lilo.conf
Chargeur de démarrage (boot loader)

Interagir avec LILO


Si vous avez configurez LILO (grâce à « prompt ») de sorte à ce que vous
ayez au démarrage une invite de commande « boot : » ou « lilo : »

Exemple:
Supposons que l’image = linux
Alors:
Boot: linux 1 (s ou S) => Démarrage en single-user mode
Boot: linux init=/bin/sh (sbin/init corrompu, supprimé ou mal configuré)
Chargeur de démarrage (boot loader)

GRUB: remplace LILO et se configure à travers /boot/grub/menu.lst ou


/etc/grub.conf qui est un lien sur le 1er

La configuration du GRUB ne nécessite pas sa réinstallation.


Démarrage par défaut ( 0 = 1er titre, 1=2ème titre, … etc.)

Nombre de secondes avant le démarrage par défaut

la première partition du premier disque détecté par le BIOS.


C’est la partition /boot

Le / n’indique pas la racine du système de fichiers mais celle


de (hd0,0), donc /boot/vmlinuz...

Partition « / » qui contient Fedora.


Communication avec linux (/dev/hda5) et non Grub.

La racine spécifiée, à ne pas monter par GRUB


(hd0,1)= 2ème partition sur le 1er disque

Démarrer le premier secteur de la racine spécifiée ci-dessus


Chargeur de démarrage (boot loader)

Installation de GRUB:
Utilité : suite, à par exemple, un redimensionnement des partitions.

# grup-install /dev/hda
Ou
# grup-install ‘(hd0)’
⇒ Installation de GRUB dans MBR ou autrement dit dans le boot sector du 1er
disque dur

# grup-install /dev/hda1
Ou
# grup-install ‘(hd0,0)’
⇒ Installation de GRUB dans le boot sector de la 1ère partition du 1er disque dur
Chargeur de démarrage (boot loader)

Interagir avec GRUB:


Exemple:
- Choisir un OS
- Appuyer sur [E] pour éditer => affichage des options
- Choisir une option (la ligne qui contient « kernel ») puis Appuyer sur [E]
- ajouter 1 à la fin de la ligne puis appuyer sur entrer
⇒ single-mode user
(idem pour modifier le programme init = ajouter init=/bin/bash à la fin)
- Appuyer sur [B] pour lancer le démarrage.
Processus de démarrage
Les messages qui défilent lors du démarrage:
# dmesg
Processus de démarrage
 Le programme init (/sbin/init) est le premier a être démarré

 Init lit le fichier etc/inittab

 C’est init qui est chargé de démarrer tous les services.

 init est dit de type System V (basé sur la notion de niveaux d’exécution)

 init est le dernier à être stoppé au sein du système


Niveaux d’exécution
 Un niveau d’exécution, ou runlevel, est un état dans lequel se trouve
Unix/Linux. Cet état est contrôlé par init.

 Un niveau d’exécution peut par exemple être utilisé pour lancer Unix en
mono-utilisateur, en multi-utilisateurs, avec ou sans réseau, avec ou
sans mode graphique.
Niveaux d’exécution

Note:
Le niveau d’exécution par défaut est positionné dans /etc/inittab:
id:5:initdefault:
Niveaux d’exécution
 La distribution Debian (et les distributions qui en dérivent) considère
aussi les niveaux 2 à 5 comme multi-utilisateur mais n’établit pas de
différences entre ces niveaux, et démarre par défaut au niveau 2 où
tout est lancé, y compris éventuellement l’interface graphique.
Niveaux d’exécution
Le comportement du processus init et des runlevels est défini dans le fichier /etc/inittab.

La syntaxe d’une ligne est la suivante :


Id : [niveaux] : action : commande
Niveaux d’exécution
Actions:
initdefault : Définit le niveau par défaut lors du boot et du lancement d’init.
sysinit : Exécuté une seule et unique fois lors du démarrage du système.
boot : Idem mais après sysinit.
bootwait : Idem (boot), mais init attend la fin de l’exécution de la commande avant de
continuer à dérouler le fichier inittab.
off : La ligne est ignorée.
once : La commande est exécutée à chaque changement de niveau pour les niveaux
spécifiés
wait : Idem (once), mais init attend la fin de l’exécution avant de continuer.
Respawn : La commande est lancée pour les niveaux concernés. Si le processus se
termine, il est automatiquement relancé. C’est le cas pour les terminaux si un
utilisateur s’en déconnecte.
powerwait : La commande est lancée si le serveur passe sur alimentation de secours
(UPS).
powerfail : Idem, mais sans attente de la fin d’exécution de la commande.
powerokwait : La commande est lancée lorsque le courant est rétabli.
powerfailnow : Commande de dernier recours lorsque l’alimentation de secours est
presque vide.
ctrlaltdel : Init reçoit un signal SIGINT issu d’une séquence [Alt][Ctrl][Suppr].
Niveaux d’exécution
Exemple de fichier /etc/inittab:
Niveaux d’exécution
Niveaux d’exécution
 Changement de niveau
# telinit 5

 Le niveau d’exécution actuel


# runlevel
N 5 (N=il n’y a pas de niveau précédent)
Niveaux d’exécution System V
Le script /etc/init.d/rc prend comme paramètre le niveau d’exécution par
défaut selon la ligne initdefault de /etc/inittab ou celui spécifié lors de
l’appel manuel des commandes init ou telinit.

Le script rc initialise le niveau d’exécution voulu et est responsable du


démarrage et de l’arrêt des services associés quand le niveau d’exécution
change.

l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
Niveaux d’exécution System V
Lors du passage d’un niveau à un autre, et quel que soit l’ordre (du 2 au 5,
du 5 au 3, etc.) le script rc compare les services qui doivent être arrêtés ou
démarrés entre l’ancien et le nouveau niveau.

Si un service est commun aux deux niveaux, il est maintenu. Si un nouveau


service doit être lancé dans le nouveau niveau, il le lance. Si un service doit
être arrêté car il est absent du nouveau niveau, il l’arrête.
Niveaux d’exécution System V
Pour chaque niveau d’exécution n, il existe un répertoire rcn.d qui
contient des liens symboliques vers les services présents dans
/etc/init.d à lancer ou arrêter. Ce répertoire peut être à différents
endroits selon la distribution

Quand rc est exécuté, il va tout d’abord lister tous les liens


commençant par K* à l’aide d’une boucle for pour arrêter les services
concernés.
Puis il fait la même chose pour S*, cette fois en lançant les services
Niveaux d’exécution System V
Gestion des services lancés par niveau d’exécution à l’aide chkconfig
# chkconfig [option] [service]

Exemples:
# chkconfig --list
# chkconfig --list smb
smb 0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt
# chkconfig --level 35 smb on
# chkconfig --list smb
smb 0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche 6:arrêt
# /sbin/chkconfig --add httpd
(ajoute httpd à la liste des scripts gérable par chkconfig)
Niveaux d’exécution System V
Gestion des services lancés par niveau d’exécution à l’aide de ntsysv

L'utilitaire ntsysv est un outil interactif en mode texte. Il a été créé par
Red Hat (Fedora et Mandriva…).

Si vous exécutez ntsysv sans arguments, vous pouvez configurer votre


niveau d'exécution actuel.

Si vous souhaitez spécifier les niveaux d'exécution:


# ntsysv --level 1
# ntsysv --level 23
Niveaux d’exécution System V
Vérifier votre niveau d’exécution par défaut:

# grep :initdefault: /etc/inittab


id:5:initdefault:

changer votre niveau d’exécution à l’aide de:


 init (or telinit)
# init 6 (redémarrage) ou telinit 6
# telinit q (après avoir effectué dans chgts sur /etc/inittab)

 shutdown
C’est commande la plus correcte, la plus propre et la plus sécuritaire
pour arrêter le système: appelle init, mais accepte des paramètres
supplémentaires. Sa syntaxe base est :
# shutdown <param> <délai> <message>
Niveaux d’exécution System V
Exemples:

# shutdown now
changer votre niveau d’exécution à 1

# shutdown -r +10
Redémarrage du système dans 10 minutes

# shutdown -h +15 “system going down for maintenance”


Alerter les utilisateurs

# shutdown -c “never mind”


Pour annuler ce qui a été programmé par shutdown.
Niveaux d’exécution System V
 halt : synchronise les disques avec les tampons, met à jour le
fichier /var/log/wtmp (qui contient un historique des utilisateurs
connectés,visible à l’aide de la commande last) et arrête le système.
 reboot : identique à halt sauf pour le dernier point où la commande
redémarre le système au lieu de l’arrêter.
 poweroff : identique à halt mais tente en plus d’éteindre l’alimentation
électrique de la machine si la carte mère de celui-ci est dotée de cette
fonctionnalité.

Exercice 5.1 page 243


Utilisation de « vi »
Vi est un éditeur de texte en mode texte (toutes les commandes se font
grâce au clavier) qui existe sur les systèmes Unix (Linux entres autres).

Voici les commandes les plus importantes:


Utilisation de « vi »
Très intéressant:

Comment faire un copier/coller entre 2 fichiers sous vi?

# vi fich_source
"a9yy (copie de 9 lignes)
:e! fich_destination
"ap (collage des 9 lignes)
:wq!
Fin

Vous aimerez peut-être aussi