Was ist der richtige Weg, um einen neuen Kernel manuell unter Debian 9 zu installieren?

9

Ich habe nicht genug Vertrauen, um dies alleine zu tun und riskiere, dass der Server nicht bootet oder so.

Ich möchte den Kernel aktualisieren von:

$ uname -r
4.9.0-6-amd64

$ uname -v
#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)

auf Kernel Version 4.15 oder 4.16. Was auch immer Sie empfehlen.


Ich glaube nur, ich weiß, wie man verfügbare Versionen auflistet:

$ apt-cache search linux-image | grep amd64

linux-headers-4.9.0-6-amd64 - Header files for Linux 4.9.0-6-amd64
linux-headers-4.9.0-6-rt-amd64 - Header files for Linux 4.9.0-6-rt-amd64
linux-image-4.9.0-6-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-6-amd64-dbg - Debug symbols for linux-image-4.9.0-6-amd64
linux-image-4.9.0-6-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-6-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-6-rt-amd64
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-amd64-dbg - Debugging symbols for Linux amd64 configuration (meta-package)
linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT
linux-image-rt-amd64-dbg - Debugging symbols for Linux rt-amd64 configuration (meta-package)
linux-headers-4.9.0-3-amd64 - Header files for Linux 4.9.0-3-amd64
linux-headers-4.9.0-3-rt-amd64 - Header files for Linux 4.9.0-3-rt-amd64
linux-headers-4.9.0-4-amd64 - Header files for Linux 4.9.0-4-amd64
linux-headers-4.9.0-4-rt-amd64 - Header files for Linux 4.9.0-4-rt-amd64
linux-headers-4.9.0-5-amd64 - Header files for Linux 4.9.0-5-amd64
linux-headers-4.9.0-5-rt-amd64 - Header files for Linux 4.9.0-5-rt-amd64
linux-image-4.9.0-3-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-3-amd64-dbg - Debug symbols for linux-image-4.9.0-3-amd64
linux-image-4.9.0-3-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-3-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-3-rt-amd64
linux-image-4.9.0-4-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-4-amd64-dbg - Debug symbols for linux-image-4.9.0-4-amd64
linux-image-4.9.0-4-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-4-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-4-rt-amd64
linux-image-4.9.0-5-amd64 - Linux 4.9 for 64-bit PCs
linux-image-4.9.0-5-amd64-dbg - Debug symbols for linux-image-4.9.0-5-amd64
linux-image-4.9.0-5-rt-amd64 - Linux 4.9 for 64-bit PCs, PREEMPT_RT
linux-image-4.9.0-5-rt-amd64-dbg - Debug symbols for linux-image-4.9.0-5-rt-amd64
linux-headers-4.15.0-0.bpo.2-amd64 - Header files for Linux 4.15.0-0.bpo.2-amd64
linux-headers-4.15.0-0.bpo.2-cloud-amd64 - Header files for Linux 4.15.0-0.bpo.2-cloud-amd64
linux-headers-4.16.0-0.bpo.1-amd64 - Header files for Linux 4.16.0-0.bpo.1-amd64
linux-headers-4.16.0-0.bpo.1-cloud-amd64 - Header files for Linux 4.16.0-0.bpo.1-cloud-amd64
linux-image-4.15.0-0.bpo.2-amd64 - Linux 4.15 for 64-bit PCs
linux-image-4.15.0-0.bpo.2-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-amd64
linux-image-4.15.0-0.bpo.2-cloud-amd64 - Linux 4.15 for x86-64 cloud
linux-image-4.15.0-0.bpo.2-cloud-amd64-dbg - Debug symbols for linux-image-4.15.0-0.bpo.2-cloud-amd64
linux-image-4.16.0-0.bpo.1-amd64 - Linux 4.16 for 64-bit PCs
linux-image-4.16.0-0.bpo.1-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-amd64
linux-image-4.16.0-0.bpo.1-cloud-amd64 - Linux 4.16 for x86-64 cloud
linux-image-4.16.0-0.bpo.1-cloud-amd64-dbg - Debug symbols for linux-image-4.16.0-0.bpo.1-cloud-amd64
linux-headers-4.9.0-4-grsec-amd64 - Header files for Linux 4.9.0-4-grsec-amd64
linux-image-4.9.0-4-grsec-amd64 - Linux 4.9 for 64-bit PCs, Grsecurity protection (unofficial patch)
linux-image-grsec-amd64 - Linux image meta-package, grsec featureset
linux-image-cloud-amd64 - Linux for x86-64 cloud (meta-package)
linux-image-cloud-amd64-dbg - Debugging symbols for Linux cloud-amd64 configuration (meta-package)

Ich brauche auch Header. Unter Ubuntu gibt es auch ein Paket namens extraoder ähnliches, daher bin ich verwirrt, es hier nicht zu sehen.


Was ist der richtige Weg, um einen neuen Kernel manuell unter Debian 9 zu installieren?

LinuxSecurityFreak
quelle
Gibt es einen bestimmten Grund, warum Sie einen neueren Kernel benötigen?
Marcelm

Antworten:

10

Wenn Sie einen neueren Kernel mit Debian-Paket installieren möchten, sollten Sie einen aus dem Backports-Repository verwenden. Sie scheinen dieses Repository bereits zu Ihrer aptKonfiguration hinzugefügt zu haben , also sind Sie fertig.

Da Ihr aktueller Kernel die Basisversion von amd64 ist, gehe ich davon aus, dass Sie weder die Echtzeit-Scheduler-Version noch die Cloud-Version benötigen.

Renn einfach

apt-get install linux-image-4.16.0-0.bpo.1-amd64 linux-headers-4.16.0-0.bpo.1-amd64

dh "Installieren Sie die Basisversion -amd64 des für Debian 9 backportierten 4.16-Kernels und das entsprechende Header-Paket".

Im Gegensatz zu regulären Paketen ersetzt das neue Versionspaket linux-imageden vorhandenen 4.9.0-Kernel nicht direkt, sondern wird daneben installiert. (Dies liegt daran, dass die Versionsnummer als Teil des Paketnamens enthalten ist.) Die Bootloader werden bei der Nachinstallation automatisch so konfiguriert linux-image, dass entweder die verfügbaren Kernel in einer auf Versionsnummern basierenden Reihenfolge angezeigt werden oder wenn dies für einige Bootloader nicht möglich ist , stellen Sie einfach automatisch die zuletzt installierte als die bevorzugte ein.

Wenn sich herausstellt, dass Ihr neuer Kernel nicht startet, können Sie einfach den vorherigen Kernel aus dem Bootloader auswählen und dann das Kernelpaket entfernen, das sich als nicht funktionsfähig erwiesen hat. Wenn Sie den Paketmanager versehentlich anweisen, den Kernel zu entfernen, auf dem Sie gerade ausgeführt werden, ist es klug genug zu wissen, dass dies keine gute Sache ist, und der Vorgang wird abgebrochen.

telcoM
quelle
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Wenn Sie sich nicht sicher sind, welchen Kernel Sie ausführen (in diesem Fall), können Sie ihn ausführen uname -r(entnommen aus askubuntu.com/questions/359574/… )
Ismael Miguel
12

Problem zur Hand

Sie benötigen einen neueren Linux-Kernel als den auf Ihrer Debian-Instanz installierten. Dies birgt einige Risiken . Es wird empfohlen, dass Sie nicht vom standardmäßigen stabilen LTS-Kernel abweichen, den Debian bereitstellt. Aufgrund Ihrer Anforderungen benötigen Sie jedoch einen neueren Kernel.

Lösung

Sie können das Backports-Repository hinzufügen , mithilfe von apt-pinning steuern, was hier installiert ist, und die erforderlichen Komponenten installieren, um Ihren Kernel zu aktualisieren.

Ich empfehle apt-pinning sehr, da Sie alternative Repositorys oder sogar Repositorys von Drittanbietern hinzufügen und steuern können, was von diesen installiert wird. Auf diese Weise können Sie auf eigenes Risiko alternative Pakete und Bibliotheken installieren, aktualisieren und zusammen mit den Hauptkomponenten Ihres Betriebssystems aktualisieren. Apt-Pinning ermöglicht die granulare Kontrolle von Verpackungen aus alternativen Quellen (dh nicht stabil) mit geringerem Bruchrisiko. Wenn Sie das Risiko verstehen, können Sie damit fortfahren.

Fügen Sie das Backports-Repository hinzu und richten Sie apt-Einstellungen ein

Der erste Schritt besteht darin, die richtigen Repositorys zu Ihrem hinzuzufügen sources.list. Ich würde empfehlen, dass Sie verwenden, /sources.list.d/aber Sie können dies in nur einer Datei tun.

#Main Stable Repo
deb http://deb.debian.org stable main contrib non-free 
deb-src http://deb.debian.org stable main contrib non-free
#Stable-updates
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 
#Security Updates 
deb http://deb.debian.org/debian-secruity stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-secruity stable/updates main contrib non-free 
#Stretch Backports    
deb http://ftp.debian.org/debian stretch-backports main contrib non-free
deb-src http://ftp.debian.org/debian stretch-backports main contrib non-free

Du sources.listsolltest ungefähr so ​​aussehen. Sie benötigen die nicht freien Teile nicht, wenn Sie keine nicht freie Software benötigen. Als nächstes müssen Sie Paketen Pin-Prioritäten mit geben /etc/apt/preferences. Diese Datei sollte folgendermaßen aussehen:

Package: *
Pin: release a=debian-security
Pin-Priority: 1000

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=stable-updates
Pin-Priority: 800

Package: *
Pin: release a=stretch-backports
Pin-Priority: 700

Sie können Ihren Ansatz detaillierter gestalten, indem Sie einzelne Pakete angeben und den Pin-Prioritäten höhere oder niedrigere Werte zuweisen.

Danach rennst du apt-get update.

Installieren Sie den gewünschten Kernel

Mit werden apt-cache search linux-imageSie alle verfügbaren Kernel auflisten. Wenn Sie festgelegt haben, welchen Kernel Sie möchten, können Sie ihn mit installieren apt-get install linux-image-flavour. Es wird empfohlen, dass Sie auch das passende Linux-Header-Paket installieren. Wenn Sie das grsec-Image in Ihrer Umgebung benötigen, installieren Sie stattdessen dieses. Wieder mit dem entsprechenden Header-Paket.

Nach dem Neustart können Sie im GRUB-Menü auswählen, welchen Kernel Sie starten möchten. Wenn Sie auf Probleme stoßen, können Sie immer den bekannten guten Kernel auswählen und stattdessen damit booten.

Fazit

Ich habe apt-pinning verwendet, um die Debian-Installation meines PCs erfolgreich zu verwalten. Ich habe die oben beschriebene Methode verwendet, um den neuesten Kernel zu installieren (4.15), und mein System hat einwandfrei funktioniert. Nehmen Sie dies jedoch mit einem Körnchen Salz, da es sich um einen PC handelt und nicht um einen Produktionsserver, auf dem Sie dies installieren möchten. Ich füge auch Links zu allen Quellen hinzu, auf die ich verwiesen habe. Ich habe diese Debian-Wiki-Seite verwendet , um über die notwendigen Schritte sowie die Seite über Apt-Pinning zu informieren . Auf diesen Artikel wurde ebenfalls verwiesen.

Wenn Sie Fragen oder Bedenken zu diesem Beitrag haben, zögern Sie nicht, mich zu fragen. Wenn diese Antwort Korrekturen oder Missverständnisse enthält, informieren Sie mich bitte. Ich kann den Beitrag nach Bedarf aktualisieren.

Viel Glück!

kemotep
quelle
Aus irgendeinem Grund veranlasst die Priorität 700 für Backports mein System, alle Pakete auf Backport-Versionen zu aktualisieren. Wenn ich es auf 499 oder niedriger setze, scheint sich alles zu verhalten. root @ pc: / etc / apt # grep -r iority * Einstellungen.d / sparky: Pin-Priorität: 1001 Einstellungen.d / main: Pin-Priorität: 1000 Einstellungen.d / main: Pin-Priorität: 900 Einstellungen.d / main: Pin-Priorität: 800
Einstellungen.d
2

Verwenden Sie den folgenden Befehl, um das Linux-Image und sein Header-Paket zu installieren:

apt install linux-{image,headers}-4.16.0-0.bpo.1-amd64

Einige Abhängigkeiten müssen von Backports installiert werden, nachdem der obige Befehl ausgeführt wurde. Er kann installiert werden über:

apt install -t stretch-backports pckg_name
GAD3R
quelle
1
Oder -t stretch-backportskann zur Anfangszeile hinzugefügt werden, damit automatisch alle richtigen Abhängigkeiten abgerufen werden : apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
Mivk