Prenant l'exemple d'Ubuntu, pouvons-nous dire si le noyau a été compilé sur mesure plutôt que ce qui vient avec la distribution?
ubuntu
linux-kernel
bytefire
la source
la source
Réponses:
Bien sûr, vérifiez simplement si vous en avez
dpkg
connaissance.Vérifiez d'abord la version du noyau que vous utilisez.
Dites ensuite
dpkg
de rechercher le fichier image du noyau dans ladpkg
base de données.Ou, mieux, utilisez
dlocate
ledlocate
package.dlocate
crée d'abord un cache à partir de ladpkg
base de données et l'utilise. C'est donc rapide.Enfin, vérifiez que les archives Debian contiennent ce paquet.
S'ils ne le font pas, alors c'est un package personnalisé. Bien sûr, si dpkg ne connaît pas le fichier image, votre noyau ne fait pas du tout partie d'un paquet, mais a été compilé localement.
Notez que cela
apt
peut faire la différence entre un paquet dans l'archive Debian et un paquet du même nom compilé localement. Je pense qu'il vérifie la somme md5 du paquet, mais j'oublie les détails de la façon dont il le fait. Les packages binaires contiennent des informations sur les hachages, voir le bas deapt-cache show linux-image-3.2.0-4-amd64
, par exemple. par exemplela source
apt-cache show ...
fonctionne. Je vois que j'ai mal tapé. Correction maintenant.Au minimum,
uname -r
donnera la version kernal, comme3.18.6
. Cependant, lorsque le noyau est compilé, une chaîne supplémentaire peut être configurée et attachée à cela et les distributions le font généralement pour indiquer leur propre niveau de correctif (après un tiret) et leur saveur, comme3.18.6-32-generic
. Voilà un indice; évidemment, utiliser votre propre chaîne lorsque vous créez un noyau personnalisé peut en être un autre.uname -v
donne une chaîne qui par défaut est quelque chose comme çaLe nombre est arbitraire dans le sens où c'est le nombre de fois que ce noyau a été construit en utilisant une arborescence source spécifique sans que l'arborescence soit réinitialisée - cela peut être utile lorsque vous construisez la vôtre.
SMP
indique un noyau multitâche (c'est-à-dire pas en temps réel) et PREEMPT est une autre option de configuration liée au "modèle de préemption" du programmateur. Mais le gros indice ici est probablement l'époque de sa construction. Cela pourrait être utilisé pour correspondre à l'horodatage de modification / changement sur le noyau lui-même, en gardant à l'esprit ce qui peut être changé, par exemple, avectouch
. Par exemple,stat
sur ce noyau ressemble à ceci:Ce qui correspond à peu près
Mon Mar 9 13:55:25 EDT 2015
.la source
Identique à tout autre
est la version installée via le gestionnaire de packages et
comparer les versions
pour moi, c'est
et
qui indiquent la même version
la source
/boot
. Mon point est que je ne vois pas pourquoi vous vous attendriez à ce que la sortie deuname
change si vous recompilez tout en changeant certaines options. Dans ce cas, je m'attendrais à ce queapt-cache
etuname -r
renvoie les mêmes informations, malgré le fait que vous avez recompilé localement.Je dirais que la réponse la plus généralement vraie est "non, vous ne pouvez pas". Il existe différentes méthodes qui peuvent aider dans certains cas et celles-ci ont déjà été suggérées, mais elles semblent toutes ne pas comprendre comment cette situation s'est réellement produite. En vérité, si vous utilisez un noyau personnalisé, ce noyau peut tout faire, y compris masquer sa présence ou apparaître comme un noyau différent.
Je serais inquiet si vous exécutez effectivement un noyau personnalisé et ne le saviez pas. La seule manière fiable de savoir quel noyau est utilisé est de garder une trace précise du noyau que vous compilez et installez.
Si vous n'êtes vraiment pas sûr du noyau sur lequel le système fonctionne ou des sources à partir desquelles ce noyau a été construit ou d'où il provient, j'envisagerais sérieusement de réinstaller le système d'exploitation à partir d'une bonne image connue et d'être plus prudent à l'avenir sur les noyaux que vous essayez de démarrer de ou utiliser.
la source