6. Messages du système

Contenu de cette section

6.1 unable to get major

Question

Que signifie le message unable to get major suivi d'un nombre ?

Réponse

Un pilote de périphérique compilé dans le noyau (donc " intégré ") se trouve aussi disponible sous forme de module.
E. Decaen : utiliser modprobe -c pour étudier la liste des modules en ligne.

6.2 insmod: NOM_DE_FONCTION: wrong version or undefined

Question

Messages du système lors du démarrage, de l'arrêt ou de l'utilisation de certains programmes réseau :

insmod: NOM_DE_FONCTION: wrong version or undefined
 [ ... nombreux ... ]
Loading failed! The module symbols (from linux-NUMERO_VERSION) don't match
your linux-NUMERO_VERSION

Réponse

En ce qui concerne les modules réseau : ajouter au fichier /etc/modules.conf

alias net-pf-3 off  # si pas AX25
alias net-pf-4 off  # si pas de module IPX (protocole reseau Novell Netware)
alias net-pf-5 off  # si pas de module Appletalk (protocole reseau Apple)

E. Lassauge Les messages de depmod, après recompilation d'un noyau Red Hat, sont dus au initrd standard de cette distribution. Grâce à cette directive de LILO, on monte au boot un système de fichiers dans un RamDisk (dit initrd, init Ram Disk). Avec certaines configurations Red Hat (par exemple la 4.0), ce système de fichiers contient " ce qu'il faut " pour forcer le chargement du module du driver de gestion du disque dur. Si on recompile le noyau, le initrd cherche quand même à charger un module éventuellement ancien.

La solution consiste à utiliser un autre initrd pour le nouveau noyau. Pour cela, il faut modifier le fichier de config de LILO. Consulter le fichier /usr/src/linux/Documentation/initrd.txt (les pointeurs y sont un peu anciens mais j'ai fini par tout trouver, surtout le très utile initrd-example.tgz).

Exemple de /etc/lilo/conf avec 2 initrd :

boot=/dev/sda
map=/boot/map
install=/boot/boot.b
message = /boot/boot.message-2.0.x
image=/boot/vmlinuz-2.0.30
        label=linux
        root=/dev/sda1
        noinitrd
        read-only
image=/boot/vmlinuz-2.0.18
        label=redh
        root=/dev/sda1
        initrd=/boot/initrd-2.0.18
        read-only

Commentaires

6.3 objdump, binutils

Question

La compilation d'un noyau échoue avec un message concernant objdump, par exemple "objdump: 0x100000: No such file or directory".

Réponses

6.4 e2fsck : deleted inode ... zero dtime

Question

e2fsck, par exemple lorsqu'il est invoqué automatiquement durant le boot, produit parfois un message :

Deleted inode XXX has zero dtime. 
Set dtime? yes.

Réponse

R. Card :

Chaque i-noeud possède un champ dtime qui contient la date de suppression du dernier fichier associé à cet i-noeud. Le but de ce champ est de permettre d'effectuer des traitements particuliers quand/si une fonction " undelete " sera incorporée à Ext2fs.

Lorsqu'un fichier est supprimé, le noyau met à jour ce champ dtime (avec la date courante) et l'i-noeud est réécrit sur disque. Quand un i-noeud est alloué, le champ dtime est mis à zéro.

fsck vérifie que le champ dtime est non nul pour tout i-noeud non alloué (dont le nombre de liens est nul). Si ce n'est pas le cas, il affiche ce message d'erreur. Généralement, cette erreur peut être due à des redémarrages brutaux, à des problèmes de disque ou à des bogues dans Ext2fs.

De toutes façons, c'est une erreur très bénigne dans la mesure où dtime n'est pas (encore) utilisé.

6.5 /etc/passwd is locked

Question

"/etc/passwd is locked, try again later"

Réponse

J.-C. Delépine : Tu as dû utiliser la commande adduser et la quitter brutalement. La version RedHat de cette commande crée un fichier /etc/.pwd.lock afin de s'assurer l'exclusivité sur le fichier /etc/passwd.

Solution donc : vérifier quíl n'y a pas un autre adduser qui tourne quelque part puis supprimer le fichier /etc/.pwd.lock

6.6 "unable to get official name for local machine", ou bien sendmail sebloque lors du démarrage (boot)

Réponse

Il faut utiliser un noyau intégrant TCP/IP.

/etc/hosts doit contenir :

127.0.0.1 FQDN localhost loopback N
où :

6.7 Couldn't get free page

Réponse

D. Segonds :
Peut être causé par un manque de mémoire. Rajouter par exemple de la mémoire virtuelle (swap) en utilisant mkswap puis swapon.

6.8 shutdown: already running

Question

"halt,shutdown,reboot" en tant que root ou Ctrl+Alt+Supr me renvoient tous le message: "shutdown: already running"

Réponse

D. Segonds, E. David et Remy Card:

Méthode la plus élégante : shutdown -c.

Un fichier bloque le lancement d'un deuxième shutdown lorsqu'un autre est déjà en cours. Il s'agit de shutdown.pid, souvent placé dans /var/run ou bien dans /etc. Le détruire.

6.9 bad data in /var/run/utmp

Réponse

Des binaires libc5 et libc6 coexistent sur le système, or le format de /var/run/utmp a évolué.

6.10 iso9660 cannot be mounted by the kernel

Réponse

Recompiler un noyau avec prise en charge du système de fichiers ("filesystem") de type iso9660.

6.11 signal 11, 4 ou 6

Réponse

Document signal 11

6.12 Allocation mémoire (segmentation fault)

Question

Mon programme C utilisant malloc() échoue avec le message : "segmentation fault".

Réponse

J. Kachelhoffer-Bertrand :

Cela peut être causé par une erreur de programmation (déréférencement de pointeur 'pendouillant' ("dangling"), c'est-à-dire dont la valeur est incorrecte.

Mais aussi par le fait que Linux pratique la sur-réservation : malloc retourne un pointeur sans vraiment allouer de mémoire. Elle sera effectivement allouée lorsque la première ecriture sera faite. Le système peut alors découvrir qu'il ne reste pas de mémoire disponible et terminer le processus par un "segmentation fault".


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre