Können wir am Beispiel von Ubuntu feststellen, ob der Kernel benutzerdefiniert kompiliert wurde und nicht, was mit der Distribution geliefert wird?
ubuntu
linux-kernel
Bytefire
quelle
quelle
Antworten:
Sicher, überprüfen Sie einfach, ob Sie davon
dpkg
wissen.Überprüfen Sie zuerst die Kernelversion, die Sie ausführen.
Weisen Sie dann
dpkg
an, nach der Kernel-Image-Datei in derdpkg
Datenbank zu suchen .Oder besser
dlocate
aus derdlocate
Packung verwenden.dlocate
Erstellt zuerst einen Cache aus derdpkg
Datenbank und verwendet diesen. So geht es schnell.Überprüfen Sie abschließend, ob die Debian-Archive dieses Paket enthalten.
Wenn dies nicht der Fall ist, handelt es sich um ein benutzerdefiniertes Paket. Wenn dpkg nichts über die Image-Datei weiß, ist Ihr Kernel natürlich überhaupt nicht Teil eines Pakets, sondern wurde lokal kompiliert.
Beachten Sie, dass
apt
dies den Unterschied zwischen einem Paket im Debian-Archiv und einem lokal kompilierten Paket mit demselben Namen erkennen lässt. Ich denke, es überprüft die md5sum des Pakets, aber ich vergesse die Details, wie es das macht. Die Binärpakete enthalten Informationen zu Hashes, siehe beispielsweise unten inapt-cache show linux-image-3.2.0-4-amd64
. z.Bquelle
apt-cache show ...
funktioniert. Ich sehe, ich habe falsch geschrieben. Jetzt korrigieren.Minimal
uname -r
wird die kernale Version geben, wie z3.18.6
. Wenn der Kernel jedoch kompiliert wird, kann eine zusätzliche Zeichenfolge konfiguriert und an diese angehängt werden. Die Distributionen tun dies normalerweise, um ihre eigene Patch-Ebene (nach einem Bindestrich) und ihren eigenen Geschmack anzugeben, z3.18.6-32-generic
. Das ist ein Hinweis; Die Verwendung einer eigenen Zeichenfolge beim Erstellen eines benutzerdefinierten Kernels kann natürlich eine andere sein.uname -v
gibt eine Zeichenfolge an, die standardmäßig so ähnlich istDie Anzahl ist in dem Sinne willkürlich, dass es die Häufigkeit ist, mit der dieser Kernel unter Verwendung eines bestimmten Quellbaums erstellt wurde, ohne dass der Baum zurückgesetzt wurde. Dies kann nützlich sein, wenn Sie Ihren eigenen erstellen.
SMP
zeigt einen Multitasking-Kernel (dh keinen Echtzeit-Kernel) an und PREEMPT ist eine weitere Konfigurationsoption, die sich auf das "Preemption-Modell" des Schedulers bezieht. Aber der große Hinweis hier ist wahrscheinlich die Zeit, als es gebaut wurde. Dies kann verwendet werden, um mit dem Änderungs- / Änderungszeitstempel auf dem Kernel selbst übereinzustimmen, wobei berücksichtigt wird, dass ztouch
. B. mit geändert werden kann . Zum Beispiel,stat
auf diesen Kernel sieht wie folgt aus :Welches ist ziemlich im Einklang mit
Mon Mar 9 13:55:25 EDT 2015
.quelle
Gleich wie alle anderen
ist die über den Paketmanager installierte Version und
Vergleiche die Versionen
für mich ist es
und
die die gleiche Version anzeigen
quelle
/boot
. Mein Punkt ist, dass ich nicht verstehe, warum Sie erwarten würden, dass sich die Ausgabe vonuname
ändert, wenn Sie nur neu kompilieren, während Sie einige Optionen ändern. In diesem Fall würde ich das erwartenapt-cache
unduname -r
die gleichen Informationen zurückgeben, obwohl Sie lokal neu kompiliert haben.Ich würde sagen, die allgemeinste Antwort lautet "Nein, du kannst nicht". Es gibt verschiedene Methoden, die in bestimmten Fällen hilfreich sein können, und diese wurden bereits vorgeschlagen, aber alle scheinen zu übersehen, wie diese Situation tatsächlich zustande gekommen ist. In Wahrheit kann dieser Kernel, wenn Sie einen benutzerdefinierten Kernel verwenden, alles tun, einschließlich das Ausblenden seiner Anwesenheit oder das Erscheinen eines anderen Kernels.
Ich wäre besorgt, wenn Sie tatsächlich einen benutzerdefinierten Kernel ausführen und dies nicht wüssten. Die einzige zuverlässige Methode, um zu wissen, welcher Kernel verwendet wird, besteht darin, sorgfältig zu verfolgen, welchen Kernel Sie kompilieren und installieren.
Wenn Sie wirklich nicht sicher sind, auf welchem Kernel das System ausgeführt wird oder aus welchen Quellen dieser Kernel erstellt wurde oder woher er stammt, würde ich ernsthaft in Betracht ziehen, das Betriebssystem von einem bekanntermaßen guten Image neu zu installieren und in Zukunft vorsichtiger zu sein, welche Kernel Sie versuchen und starten von oder verwenden.
quelle