LInux LOader
, installé le plus souvent dans le MBR). Le prompt LILO:
s'affiche, et au bout de quelques secondes (durée réglable), le système par défaut s'installe, pour nous c'est Linux, version Mandrake 6.1 .
inittab
.
linux 1
(single), si on veut travailler exclusivement en mode mono-utilisateur
linux 5
, pour démarrer le serveur X, et un Window Manager
, directement en niveau 5 graphique
[\u@\h \W]\$
, est donnée
par echo $PS1voir sa définition dans /etc/profile
Le shell
/bin/bash
man bash
(3923 lignes !)
Les commandes
Les commandes les plus simples sont les plus utilisées : elles
sont internes au noyau , comme ls, cp ...
D'autres peuvent être des alias
, des pseudos d'autres commandes.
Par exemple ll est défini comme alias
de ls -l , x
de startx
, m
de mc -c
...
Ce shell regarde si la commande que l'utilisateur lui lance est interne
. Sinon, s'il s'agit d'un alias
d'une autre commande.
Sinon, il recherche un programme sur le système de fichiers,
portant le nom de la commande, en se servant des chemins listés dans la variable $PATH
.
S'il trouve un tel programme, il l'exécute, en lui passant les
arguments spécifiés sur la ligne de commande.
root
.stagex
et totox
(x=1 ..9, selon le numéro de votre station).
#
qui distingue root
d'un quelconque utilisateur, de prompt $
w
. Quelle est sa fonction ?
stagex
, avez vous la permission de fouiner partout ? essayez
donc d'aller dans /root
(commande cd /root
), le rép. personnel de root
!
totox
, l'utilisateur à risque, essaie de supprimer quelques fichiers vitaux, comme /etc/passwd
, le fichier définissant les comptes utilisateurs ou /etc/inittab
, le fichier principal d'initialisation du système; y arrivera t-il ?[totox@p0x /totox]$ cd /etc
--> pour aller dans le rép. /etc
[totox@p0x /etc]$ rm passwd
--> totox veut supprimer ce fichier"rm: détruire le fichier protégé en écriture 'passwd'?"
--> y
, il ose confirmer !"Permission non accordée"
ouf ![totox@p0x /etc]$ ll passwd
--> voilà l'explication !
root
, vous aviez supprimé quelques fichiers ...
Si une tâche requérant les privilèges de root
survient, on lance la commande su
, qui place l'utilisateur en position de root
, sur la même console (moyennant la fourniture du mot de passe); on quitte la commande su
le plus vite possible par exit
.
Manipulation
[stagex@p0x stagex]$ tty (où suis-je ?) [stagex@p0x stagex]$ pwd (dans quel répertoire courant ?) [stagex@p0x stagex]$ who am i (qui suis-je ?) [stagex@p0x stagex]$ who (qui sommes-nous ?) [stagex@p0x stagex] su (ouverture session superviseur) password: [root@p0x stagex] who am i --> conclusion ?
exit
ou logout
login
.
fsck
, avant de procéder à l'initialisation du système.
exit
, pour quitter le shell (ce qui équivaut à se déconnecter (logout))
/etc/profile
communs à tous les users y compris root
/etc/profile.d/*.sh
(percourir alias.sh
et numlock.sh
)
$HOME/.bash_profile
(la variable $HOME contient le chemin vers le répertoire personnel). Il s'agit ainsi d'un fichier de démarrage personnel et paramétrable.
$HOME/.bashrc
dans lequel il est recommandé de placer toutes les fonctions ou alias personnels (car .bashrc
est exécuté dans tout shell)
/etc/bashrc
, dans lequel on place les alias globaux et la définition du prompt $PS1
/etc/bashrc
est le dernier script d'initialisation du shell bash.
Il contient des alias redéfinissables ou à compléter par l'utilisateur root
.
# vi /etc/bashrc (ou bien sûr utiliser
l'éditeur de Midnigth Commander, lancer mc
)
alias l=""ls --color=tty -F -b -T 0"
alias ll="l -l"
alias lp="ll | more"
alias la="ll -a"
alias x="startx"
alias m="mc -c"
:wq (pour écrire dans le fichier et quitter vi)
Puis se reloguer (exit) pour relancer l'interpréteur du shell.
~/.bash_profile
clear salut="Bonjour $USER !" # $USER contient le nom de connexion echo "Nous sommes le $(date)" # $( .. ) permet d'obtenir le résultat de l'exécution de la commande incluse
LILO
peut se trouver sur une disquette ou sur la partition active du disque)
/etc/inittab
reboot
lance le niveau 6).
id:3:initdefault
Le dernier script d'initialisation à être exécuté est
Sous X-KDE, on peut utiliser
Manipulations
Le premier processus, init
Le noyau du système chargé et décompressé, s'exécute et s'initialise : réservation mémoire,
prise en compte de la zone d'échange (swap), détection du matériel et chargement des
pilotes des périphériques, montage du système de fichiers et enfin lance le 1er processus /sbin/init
Le paramétrage de ce processus fondamental est entièrement
assuré par l'exécution de ce fichier script /etc/inittab
dont
voici la suite :
# niveau d'exécution 3 par défaut
id:3:initdefault
# il y a ensuite exécution des scripts
rc.sysinit
--> initialisation du PATH pour les autres scripts, activation swap,
montage systèmes fichiers, gestion des quotas..
si::sysinit:/etc/rc.d/rc.sysinit
# exécution du script etc/rc.d/rc avec le niveau en paramètre
--> lancement des divers services du niveau choisi, ici 3,
etc/rc.d/rc 3
# ceci lance tous les liens symboliques du rép rc3.d
/etc/rc.d/rc3.d/S*
# par exemple /etc/rc.d/rc3.d/S01kerneld*fait référence
au script /etc/rc.d/init.d/kerneld
# les scripts de /etc/rc.d/init.d/ sont appelés avec un paramètre
start, stop, status, restart
Par exemple si on a modifié la configuration du serveur Samba dans le
fichier smb.conf, il faut relancer ce service par la commande
/etc/rc.d/init.d/smb restart
# le fichier inittab se termine par
# exécute xdm
qui lance X et le login graphique, si le "runlevel" est 5
x:5:respawn:/etc/X11/prefdm -nodaemon
/etc/rc.d/rc.local
On y écrit à la fin d'éventuelles commandes pour charger des modules ou lancer des services supplémentaires.
Manipulations
Bizarrement, la commande dmesg nous
en dit un peu plus, notamment sur l'interface réseau.
Que faudrait-il y changer pour démarrer immédiatement au
niveau X ?
Annexe 3 : Vie et mort des processus
Un processus est un programme en cours d'exécution.
Le noyau Linux lance, gère les processus et contrôle leur échanges avec les périphériques. Il tient à jour une table des processus en exécution
Le premier processus, ancêtre de tous les autres est init.
Tous les processus successifs sont créés par un processus parent et appartiennent à un utilisateur. Chacun est identifié par un numéro, son PID
Il peut être important de connaître le PID d'un processus, ne serait-ce pour pouvoir le "tuer", s'il ne répond plus et bloque une console
Voici comment consulter la table des processus et si besoin agir !
ps
liste des processus
ps aux
: donne tous les processus, avec leur numéro PID
ps aux | less : pour contrôler le défilement
ps aux | grep X11 : pour n'afficher que les lignes concernant le processus cherché.
kill PID
: met fin normalement à la tâche
kill -9 PID
: action si nécessaire encore plus radicale !TaskManager
, qui montre l'arborescence des processus.
init
est bien le tout premier lancé par le noyau ?
Expliquer ce que signifie la commande suivante et noter les numéros PID
ps aux | grep login
Que se produira t-il si on supprime un processus login
dans tty2 ? dans tty1 ? Vérifier.
stagex
dans tty1
et dans tty2
Lancer mc
dans tty1,
afficher un fichier
Dans tty2
, repérer le numéro PID
du processus mc
, pour ensuite le supprimer kill PID
.
Vérifier le résultat.
X-KDE
par startx
, passer en mode console dans un autre terminal, y repérer le PID
de kfm
, et le tuer.
Mais qu'avez-vous donc fait ? pouvez vous lancer des programmes ?
Ensuite, débarrassez-vous de kpanel
.
Bravo, admirez votre oeuvre, comment allez-vous pouvoir quitter proprement le serveur X
maintenant ?
Essayez de redémarrer le serveur X --> erreur : "remove /tmp/.X0-lock and start again".
Il n'y a qu'une solution, se débarrasser du processus parent qui est /etc/X11/X ..
ps aux |grep X ---> root PID=2128 /etc/X11/X ...
kill 2128
Annexe 4 : Le chargeur d'OS LILO
Exemple commenté de fichier
/etc/lilo.conf
# lilo est installé dans le MBR du 1er disque
pour l'installer sur disquette, mettre boot=/dev/fd0
boot = /dev/hda
# transmission à LILO du fichier binaire contenant la description des noyaux
map=/boot/map
# fichier binaire utilisé comme secteur de démarrage
install=/boot/boot.b
# indique le label de l'image à chager, sinon c'est le premier rencontré
default=linux
# affiche un texte explicatif au démarrage
message=/boot/message
# vga spécifie l'affichage en mode texte
# normal (80x25), extended (132x44 ou 132x60) ou ask (choix au demarrage)
vga = normal
# active le mode interactif
prompt
# chargement automatique dans 5 secondes du premier système
timeout = 50
# fichier contenant l'image du noyau Linux à charger
image=/boot/vmlinuz-2.2.13-7mdk
label = linux
# partition où se trouve la racine / du système de fichiers
# Pour une disquette root=/dev/fd0
# Si rien n'est specifie, le système utilise le résultat de la commande rdev.
root = /dev/hda2
read-only
Le multi-boot
ou comment faire migrer en douceur son système de Windows9x vers
Linux
On les installe dans 2 partitions différentes.
Attention ! apparemment, Windows exige d'occuper la 1ère partition primaire (correspondant à /dev/hda1
sous Linux) qu'il faut créer avec l'utilitaire DOS fdisk
Ensuite on installe normalement Linux, qui lui respecte l'environnement ...
Si on installe d'abord Linux, laisser une partition /dev/hda1 de taille suffisante pour Windows.
Ne pas paniquer après l'installation de Windows (si tout s'est bien passé ...), Linux n'est plus accessible
car Windows a écrasé lilo
Il faut alors rebooter Linux sur une disquette, puis root réinstalle lilo, en passant la commande lilo
Lorsque le message LILO :
apparaît, on peut saisir le nom, linux ou dos dans l'exemple ci-dessous.
La touche tab
provoque l'affichage des systèmes disponibles sur la machine et le choix.
Au bout de 5 s (si timeout=50
), le système par défaut démarre .
boot = /dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout = 50
image=/boot/vmlinuz-2.2.13-7mdk
label = linux
root = /dev/hda2
read-only
# other = place de la partition de l'"autre" système
other=/dev/hda5
label=dos
# nom de la partition contenant la table de partition
table=/dev/hda
boots
.
Le premier dans l'exemple (linux) est lancé par défaut.
LILO
dans le MBR
pour qu'elle puisse être prise en compte (n'oublions pas que lilo.conf
ne sera pas lisible au boot !).
ext2
.
utiliser l'utilitaire graphique K/Utilitaire/Formatage de disquette ou
mkfs
(make filesystem): # mkfs.ext2 /dev/fd0
cp /boot/vmlinuz-... /mnt/floppy
Examiner le fichier
/etc/lilo.conf de votre machine. Quelles en sont les infos essentielles ?
Voir l'utilitaire linuxconf/Configuration/mode de démarrage
, plus convivial pour apporter des modifications à lilo.conf
, et qui active les changements ...
Ou encore l'utilitaire KLILO
sous KDE.