[ Séquence
de boot | le chargeur
primaire PDC | le chargeur
secondaire | une
fois le noyau chargé | le
script /sbin/rc ]
Le système peut (re)démarrer par trois moyens : un reset (uniquement sur certaines machines), un transfert de contrôle (TC), une mise sous tension. Le démarrage passe par deux étapes:
Quand le système est allumé, le programme de boot initialise et teste le matériel pour que tout soit prêt avant le chargement du noyau du système d'exploitation.
Le transfert de control est le bouton qui est placé pas très loin du bouton ON/OFF des stations HP715, vous avez tout intérêt à le dissimuler car vous tomberez à coup sûr sur un utilisateur un peu curieux qui se demandera ce que ça fait quand on appuie dessus...
Le TC est un reset "soft", il n'efface pas les données qui sont dans la RAM, elles pourront être exploitées pour diagnostiquer d'où vient le problème.
Après que le petit programme contenu en PROM aie
trouvé et
testé le matériel, il va chercher un
périphérique bootable.
Sur ce dernier il va trouver l'Initial System Loader (ISL), qu'il
va charger en mémoire. L'ISL va appeler à son tour le
chargeur
secondaire hpux. hpux va chercher alors le noyau /stand/vmunix
et le charger pour lancer le système.
Vous pouvez interrompre le processus de boot de la station de travail, peu après la mise sous tension, quand l'écran de boot apparaît (bannière HP) appuyez sur la touche ESC. Vous pouvez relacher la touche dès que vous avez une crampe ou que le prompt BOOT_ADMIN apparaît.
Le menu qui s'affiche alors depend de la version du PDC que vous possédez, vous pourriez voir un menu du genre:
Command | Description |
Auto [boot|search] [on|off] | Display or set auto flag |
Boot [pri|alt|scsi.addr] [isl] | Boot from primary, alternate or SCSI |
Boot lan[.lan_addr] [install] [isl] | Boot from LAN |
Chassis [on|off] | Enable chassis mode |
Diagnostic [on|off] | Enable/Disable diagnostic boot mode |
Fastboot [on|off] | Display or set fast boot flag |
Help | Display the command menu |
Information | Display system information |
LanAddress | Display LAN station addresses |
Monitor [type] | Select monitor type |
Path [pri|alt] [lan.id|SCSI.addr] | Change boot path |
Pim [hpmc|toc|lpmc] | Display PIM info |
Search [ipl] [scsi|lan [install]] | Display potential boot devices |
Secure [on|off] | Display or set security mode |
Pour chercher des périphériques bootables tapez:
BOOT_ADMIN>search
Le système vous affichera alors la liste des périphériques bootables, ça peut être intéressant si vous voulez pas booter sur votre disque système et booter ailleurs (réseau, CDROM voire DAT).
Pour booter sur le périphérique SCSI d'adresse 4, vous devrez tapez:
BOOT_ADMIN>boot scsi.1.0
Ne pas oubliez que vous tapez comme si vous aviez un clavier qwerty. A partir de ce menu vous pouvez changer le chemin par défaut de boot (boot primary path), et le chemin secondaire en cas de défaillance du premier.
A noter qu'en mettant l'option Secure à off, vous interdisez quiconque d'interrompre le processus de boot et de parvenir au menu du PDC. Vous disposez de deux moyens pour désactiver cette option:
Le système vous redonnera alors la main, vous retrouverez le
menu et pourrez remettre Secure à on.
hpux est le chargeur secondaire, il est généralement appelé de manière non interactive par l'ISL qui se trouve sur le disque système bootable.
Vous pouvez utiliser hpux de manière interactive, au niveau du menu PDC si le disque à l'adresse 6 est votre disque système, tapez:
BOOT_ADMIN>boot scsi.6.0 isl
Vous pouvez taper isl ou ipl, le résultat est le même. l'ISL se charge et le prompt change.
ISL>hpux
Chargement du noyau par défaut /stand/vmunix
ISL>hpux -is
Hyper intéressant, avec cette option vous démarrez en mode simple utilisateur en étant root sans avoir à donné le mot de passe. En d'autres termes en interrompant le processus de boot par ESC, en appelant l'ISL sur votre disque système, en appelant hpux avec les options qui vont bien vous vous retrouvez root sur un système sans connaître le mot de passe.
ISL>hpux /stand/vmunix.prev
Charge le noyau de sauvegarde, utile si vous venez de regénérer un noyau foireux...
ISL>hpux ll /stand
Si vous avez oublié le nom du noyau, un petit ll.
ISL>hpux -lm
Mode maintenance pour des disques LVM en vrac.
Une fois lancé le noyau /stand/vmunix cherche et configure les différents périphériques, trouve le filesystem root, démarre un shell et lance /sbin/pre_init_rc, c'est ce script qui lance (éventuellement) un fsck sur le disque système, et lance le premier process init. C'est un script non modifiable.
Le process init lit le fichier /etc/inittab qui définit l'environnement de travail et l'état de marche. A tout moment HP-UX est dans un état de marche particulier. Par défaut le système se trouve dans l'état de marche définit par la ligne:
init:4:initdefault
L'état de marche par défaut est 4. Il existe les états de marche suivant nommés: 0, 1, 2, 3, 4, 5, 6, s et S. L'état de marche 0 par exemple correspond au shutdown, l'état de marche s correspond au mode simple utilisateur pour des tâches d'administration système, l'état de marche 4 correspond au mode normal avec CDE.
Vous pouvez lors d'une utilisation normale changer d'état de marche avec la commande init. En état de marche 4, pour passer à l'état de marche 3, faites init3.
Le process init lance alors ioinitrc
qui comme son nom l'indique scrute le système pour
découvrir
des nouveaux périphériques et installer les fichiers
spéciaux
correspondant. Il lance alors /sbin/bcheckrc et /sbin/rc.
Le script /sbin/rc permet de lancer les processus qui doivent l'être suivant l'état de marche choisi. Il est exécuté à chaque fois qu'un nouvel état de marche est appelé.
Mais d'abord jettons un coup d'oeil sur l'arborescence, on prendra comme exemple le process cron qui est lancé au passage de l'état 1 à 2, et qui doit disparaître au passage de l'état 2 à 1.
/ | etc | rc.config | |
rc.config.d | cron | ||
sbin | rc2.d | S700cron | |
rc1.d | K012cron | ||
init.d | cron |
les fichiers de configuration sont sous /etc/rc.config.d en fait dans ces scripts on ne fait que positionner des variables que /sbin/rc va évaluer. On aurait pour le script de configuration de cron, un fichier du genre:
#cron config |
# |
#set CRON=1 to start |
# |
CRON=1 |
Sous /sbin/init.d vous allez trouver les scripts exécutables de lancement des process. Pour /sbin/init.d/cron, en voici un exemple simplifié:
#cron startup | |
# | |
case $1 in | |
'start') | |
if [$CRON -eq 1] | |
then /usr/sbin/cron | |
fi | |
'stop') | |
kill 'ps -ef|grep cron|cut -c10 -c14 | |
esac |
/sbin/init.d/cron est appelé avec l'argument start pour lancer le processus cron, à la condition que la variable CRON définie dans le fichier de configuration /etc/rc.config.d/cron soit correctement positionné, et stop pour le tuer
Maintenant comment les scripts de lancement sous /sbin/init.d et plus particulièrement /sbin/init.d/cron sont ils lancés ?
Vous voulez que cron soit lancé à l'état de marche 2 et tuer à l'état de marche 1. Vous allez donc créer un lien symbolique (ln -s) de /sbin/init.d/cron sous le répertoire /sbin/rc2.d avec comme nom S700cron. Un autre lien sera crée de /sbin/init.d/cron sous le répertoire /sbin/rc1.d avec comme nom K012cron.
Quand vous allumez le système, /sbin/rc va le script /etc/rc.config qui va lire tous les fichiers de configuration sous /etc/rc.config.d et positionner les variables d'environnement des différents processus. Lors de cette étape CRON est fixé à 1. Le système va alors à un moment passer de l'état 1 à 2, il va exécuter tous les fichiers de lancement (qui sont en fait des liens) qui sont sous /sbin/rc2.d et qui commencent par S (S pour Start, le numéro correspond à l'ordre de lancement). Pour cron il va trouver le lien S700cron vers le fichier /sbin/init.d/cron, /sbin/rc va donc exécuter /sbin/rc2.d/S700cron start qui aura pour effet de lancer cron puisque CRON est à 1.
Quand vous éteignez le système, /sbin/rc va à un moment passer de l'état 2 à 1, il va exécuter tous les fichiers (qui sont de liens) qui sont sous /sbin/rc1.d et qui commencent par K (K pour kill, le numéro correspond à l'ordre d'exécution). Pour cron il va trouver le lien K012cron vers le fichier /sbin/init.d/cron, /sbin/rc va donc exécuter /sbin/rc1.d/cron stop qui va tuer le process cron.
Nota: - Le script /sbin/init.d/cron et ses équivalents sont un peu plus "sioux" en fait, c'est dans ces scripts qu'on définit le message qui s'affichera au boot lors de la lecture du script.
- Si vous venez d'installer un process, samba par exemple, vous pouvez lancer d'un shell, en tant que root bien sûr /sbin/init.d/samba start pour le lancer et /sbin/init.d/samba stop pour le tuer, c'est parfois utile quand on a modifié les fichiers de configuration et qu'on veut obliger le process à relire son fichier de config.
- Les fichiers sous /sbin/init.d ne sont normalement pas à modifier.
- Il existe /sbin/init.d un fichier template qui vous permet de développer vos propres scripts de démarrage pour lancer vos process.
[Retour
page d'accueil FUNIX] |
[Retour haut de la page] |