IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
next up previous contents index index
suivant: {Dés}installation de programmes sous monter: Administration des Systèmes Linux précédent: Étapes du démarrage d'un   Table des matières   Index


Étapes du démarrage d'un système Linux

Nous verrons dans cette section quelles sont les différentes étapes de démarrage des *BSD.
Ainsi durant le processus de boot on passera par les étapes suivantes:
  1. Après le chargement du ``MBR'' lilo va donner la main au kernel.
  2. Le kernel s'initialise, accède au "initial ram disk" et donne la main au chargeur initrd, qui va permettre de charger des modules supplémentaires avant d'accéder au système (le déroulement de cette étape est décrit dans le fichier linuxrc). Au démarrage du noyau, celui-ci décompresse et monte le contenu du fichier initrd.img sur le disque virtuel /dev/ram0. Pour accéder à ce pseudo système de fichiers on peut procéder de la façon suivante:
    1. cp /boot/initrd.img /tmp
    2. cd /tmp
    3. mv initrd.img initrd.gz
    4. gunzip initrd.gz
    5. mkdir img
    6. mount -t ext2 initrd img -o loop=/dev/loop0
    7. cd img
    8. cat linuxrc
  3. Après l'initialisation des modules, Linux accède à la partition racine. À la limite, un système Linux n'est composé que d'un kernel et d'un interpréteur de commande (/bin/sh): Un gros DOS! Un micro système *BSD (un BSD sur une disquette) aura généralement un petit script /etc/rc qui fera un initialisation minimum et ensuite lancera la tâche principale.
  4. /sbin/init prend la relève Le travail initial du kernel, c'est de préparer l'accès au système de fichier et de donner la main à /sbin/init. Cet utilitaire est présent sur tout les systèmes Unix. à partir du fichier /etc/inittab, /sbin/init va démarrer les différents processus nécessaire à l'opération d'un système multi-usagers.
  5. /etc/inittab Le fichier /etc/inittab a un format relativement simple. Outre des commentaires (ligne débutant par le caractère #), il contient une commande par ligne. Chaque ligne a le format suivant:
    1. Identificateur: C'est généralement une séquence de deux lettres identifiant uniquement cette ligne. /sbin/init utilise cet identificateur lorsqu'il rapporte des erreurs.
    2. Runlevels Chaque commande est associé à un ou plusieurs groupes appelé "run levels". Les "run levels" sont identifiés par un numéro de 0 à 6. La définition exacte de chaque niveau peut varier d'une distribution à l'autre. Les 7 niveaux d'exécution classiques:
      0 halte
      1 mode utilisateur unique
      2 mode multi-utilisateurs sans gestion NFS
      3 mode multi-utilisateurs
      4 sans effet
      5 mode X11
      6 Re-démarrage
    3. Attribut Modes d'exécution (liste non exhaustive):
      once la commande n'est exécutée qu'une fois
      off la commande n'est pas exécutée
      wait attente de l'exécution de la commande
      boot la commande doit s'exécuter durant l'amorçage, le niveau est ignoré
      bootwait idem mais le boot ne se poursuit qu'après la fin de la commande
      ctraltdel la commande est appelée lors de l'appui sur Ctrl+Alt+Del
      initdefault mode d'exécution de Linux
      Image images/noteg.jpg
      Remarque :
      Dans le fichier /etc/inittab on trouvera la ligne suivante:
      ______________________________________________
      # Default runlevel. The runlevels used by RHS are:
      # 0 - halt (Do NOT set initdefault to this)
      # 1 - Single user mode
      # 2 - Multiuser, without NFS.
      # 3 - Full multiuser mode
      # 4 - unused
      # 5 - X11
      # 6 - reboot (Do NOT set initdefault to this)
      #
      id:3:initdefault:
      ______________________________________________
      C'est donc cette ligne qu'il faudra modifier si l'on veut démarrer en mode graphique(5) ou en mode console(3) comme c'est le cas dans cet exemple.
Ainsi si votre niveau de démarrage est le niveau 3, il vous faudra modifier le répertoire /etc/rc3.d afin d'ajouter ou de supprimer des services:
        

(seb@kset)[~]-% ls /etc/rc3.d
K15httpd       K35vncserver  K65identd   S08ip6tables  S14nfslock   S56rawdevices  S95anacron
K15postgresql  K45arpwatch   K70aep1000  S08ipchains   S17keytable  S56xinetd      S95atd
K16rarpd       K45named      K70bcm5820  S08iptables   S20random    S60lpd         S97rhnsd
K20nfs         K46radvd      K74ntpd     S09isdn       S25netfs     S80sendmail    S98wine
K25squid       K50snmpd      K74ypserv   S10network    S26apmd      S85gpm         S99local
K34yppasswdd   K50snmptrapd  K74ypxfrd   S12syslog     S28autofs    S90crond
K35smb         K50tux        S05kudzu    S13portmap    S55ssh\index{ssh}d      S90xfs
Pour le service httpd par exemple on observe que celui-ci commence par un K, qui détermine si le service est activé (S) ou non (K) (Start ou Kill), suivit par un chiffre ``15'' qui précise le niveau d'ordre d'exécution (ici le service network et activé avant portmap). Pour le reste si le nom ne vous parait pas assez explicite vous pouvez par la commande ``ls -l'' voir sur quel fichier il pointe, dans le cas ``K15httpd'' on aura donc le fichier:
lrwxrwxrwx 1 root root 15 mai 11 16:25 /etc/rc3.d/K15httpd -> ../init.d/httpd
De même il est possible de visualiser l'ensemble des services disponibles selon le runlevel par la commande ``chkconfig -list''.
Image images/noteg.jpg
Remarque : On peut très bien faire un mode ``rescue'' qui se
contentera d'ouvrir un shell au démarrage, pour cela il suffira
d'ajouter à /etc/lilo.conf:
 
image=/boot/vmlinuz-2.4.18
label=maintenance
root=/dev/hda5
append="init=/bin/zsh"
read-only
 
Après quoi il suffira d''exécuter la commande ``lilo'' pour que les
changements soient pris en compte au prochain démarrage.

next up previous contents index index
suivant: {Dés}installation de programmes sous monter: Administration des Systèmes Linux précédent: Étapes du démarrage d'un   Table des matières   Index