Author: Francois-Xavier 'FiX' KOWALSKI Date: To: Frederic Mantegazza CC: ML Guilde Subject: Re: Fichier System.map
Frederic Mantegazza <mantegazza@???> writes:
> Bon, je viens de faire une petite erreur de manipe. J'ai vire le
> fichier /boot/System.map du noyau installe par la SuSE.
>
> Ce fichier est-il indispensable ? Si oui, comment le re-generer ?
> Puis-je re-installer le paquet contenant le noyau de la SuSE ? Quel
> risque y a-t-il ?
Bon, comme je me suis lamentablement plante lors de ma tentative
precedente...
A regarder le Makefile du noyau, le System.map est le resultat de la
commande suivante:
Le probleme -- bien sur -- est que "vmlinux" n'est que le code utile
du noyau. L'image utilise -- incluant le bootstrap i386 -- inclue une
version compresse du noyau, qui est de-compactee par le code du
bootstrap. Cette image est donc a priori inutilisable pour regenerer
System.map.
Apres une rechrge (grep/find/strings), System.map n'est utilise que
par les modutils, sa disparition est donc potentiellement tres
dangereuse...
Seulement vu la presence de /proc/ksyms, qui donne le meme type de
resultat (a la l'offset des symboles pres), je ne vois pas a priori
l'interet de System.map. Le code de depmod donne la solution:
/*
* Add the symbol defined in the kernel, simulating a pseudo module.
* Create a dummy module entry in the list of modules.
* This module is used to handle the exported kernel symbols.
*
* Load from the currently running kernel
* OR
* from a file containing kernel symbols from a different kernel.
* The file can be either a "System.map" file or a copy of "/proc/ksyms".
*
* Return -1 if any error.
*/
Pour regenerer ton System.map, il te suffit donc de faire, en tournant
ton noyau:
cat /proc/ksyms > /boot/System.map
[avec les ajustements de nom fichier (suffixe) & de path correspondant
a ta distrib]
...voila! (Ouf)
PS: le risque est donc nul si ton noyau support le fs-type "/proc", ce
qui est desormais toujours le cas en pratique.