aboutsummaryrefslogblamecommitdiffstats
path: root/init/README.2
blob: f148d983cdca62c3b66161753bed7bee608fad84 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                              
                                           

                                                
                           
                                             
                                                    



































                                                                           
Résumé rapide des commandes les plus courantes :

  - { ... } : bloc d'instructions
  - &<cmd> : n'exécute CMD que si le retour précédent est OK
  - |<cmd> : n'exécute CMD que si le retour précédent est ERR
  - !<cmd> : inverse le code de retour de CMD, et peut être
    combiné à &,|

  - te VAR=VAL => retourne TRUE si VAR=VAL dans l'env.
  - in : spécifie l'init auquel on donne la main
  - ec : echo
  - rd : passe en mode prompt clavier, en affichant le
         message. Ne retourne jamais d'erreur. Le prompt
         compte les niveaux pour s'y retrouver avec les {} :-)
  - mt : mount ; re : remount ; um : umount
  - mv : mount --move ; bi : mount --bind
  - ex : exécute dans un sous-process (system())
  - /path/prog args : idem.
  - rx xxx yyy : execute yyy dans chroot xxx;
  - md : mkdir ; ln : lien ; rm : unlink ; st : stat
  - bl,ch,fi : devices block, char, fifo
  - pr xxx yyy : pivot_root : root -> xxx/yyy ; xxx->root


C'est une conf opérationnelle de boot avec un linuxrc dans un initrd
et un .preinit sur un CD.
Par défaut, le kernel charge /sbin/init à partir de l'initrd. Ce dernier
est un lien qui pointe vers le script /.linuxrc, référençant lui-même
/linuxrc comme interpréteur. Le résultat est que l'on exécute :
  /linuxrc < /sbin/init   ce qui revient à /linuxrc < /.linuxrc

Il est possible de forcer le chemin de linuxrc par 'init=/xxxxx' au boot.

Ensuite, le script linuxrc monte le CD puis exécute soit /sbin/init, soit
le nom en regard de la ligne 'in xxxx' dans la conf, soit xxxx si
'init2=xxxx' est précisé sur la ligne de commande, soit enfin le paramètre
de 'in' fourni au clavier en mode prompt si "RDSHELL=1" est passé au noyau.

Le /sbin/init du CD utilise par défaut /.preinit (qu'on aurait pu appeler
en direct par 'init=' venant d'un kernel sans initrd, ou 'init2=' venant
d'un initrd équipé du linuxrc décrit ci-dessus).

Si le paramètre "RAMCOPY=1" est passé au kernel, alors le script recopie
tout le CD en RAM, puis le démonte.

Si le paramètre "AUTORUN=1" est passé au kernel, alors il tentera de monter
une disquette en ext2 puis en fat, pour y exécuter /autorun dans un
sous-processus.

Si le paramètre "INITSHELL=1" est passé au kernel, alors l'utilisateur
récupère un prompt.

Enfin, le script transfère l'exécution à /sbin/init-sysv, ou au binaire
désigné par 'in' dans le script, ou par celui désigné par le paramètre
"INIT=xxx" passé au kernel.