Quelle est la bonne façon d'installer manuellement un nouveau noyau sur Debian 9?

9

Je n'ai pas assez de confiance pour le faire seul et risquer que le serveur ne démarre pas ou quelque chose.

Je voudrais mettre à jour le noyau depuis:

$ uname -r
4.9.0-6-amd64

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

à la version 4.15 ou 4.16 du noyau. Celui que vous recommandez.


Je pense juste que je sais comment lister les versions disponibles:

$ 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)

J'ai aussi besoin d'en-têtes. Sur Ubuntu, il existe également un package appelé extraou similaire, donc je suis confus de ne pas le voir ici.


Quelle est la bonne façon d'installer manuellement un nouveau noyau sur Debian 9?

LinuxSecurityFreak
la source
Y a-t-il une raison particulière pour laquelle vous avez besoin d'un noyau plus récent?
marcelm

Réponses:

10

Si vous souhaitez installer un nouveau noyau empaqueté Debian, vous devez en utiliser un à partir du référentiel backports. Vous semblez avoir ce référentiel déjà ajouté à votre aptconfiguration, donc vous êtes prêt.

Étant donné que votre noyau actuel est la version de base amd64, je suppose que vous n'aurez pas besoin de la version du planificateur en temps réel, ni de la version cloud.

Il suffit de courir

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

c'est-à-dire "installer la version de base -amd64 du noyau 4.16 rétroporté pour Debian 9, et le paquet d'en-têtes correspondant".

Contrairement aux packages standard, le nouveau linux-imagepackage de version ne remplacera pas carrément le noyau 4.9.0 existant, mais sera installé à côté de lui. (C'est parce que le numéro de version est inclus dans le nom du package.) Les chargeurs de démarrage seront automatiquement configurés lors de la linux-imagepost-installation pour présenter les noyaux disponibles dans un ordre basé sur le numéro de version, ou si cela n'est pas possible pour certains chargeurs de démarrage , définissez automatiquement le dernier installé comme préféré.

S'il s'avère que votre nouveau noyau ne démarre pas, vous pouvez simplement sélectionner le noyau précédent dans le chargeur de démarrage, puis supprimer le package du noyau qui s'est révélé non fonctionnel. Si vous dites accidentellement au gestionnaire de paquets de supprimer le noyau sur lequel vous êtes actuellement en cours d'exécution, il est suffisamment intelligent pour savoir que ce n'est pas une bonne chose à faire et abandonnera l'opération.

telcoM
la source
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Si vous n'êtes pas sûr du noyau que vous utilisez (dans ce cas), vous pouvez exécuter uname -r(extrait de askubuntu.com/questions/359574/… )
Ismael Miguel
12

Problème à portée de main

Vous avez besoin d'un noyau Linux plus récent que celui installé sur votre instance Debian. Cela comporte certains risques . Il est recommandé d'éviter de s'écarter du noyau LTS stable par défaut fourni par Debian. Cependant, en raison des besoins de votre côté, vous avez besoin d'un noyau plus récent.

Solution

Vous pouvez ajouter le référentiel de rétroportage , utiliser l'épinglage apt pour contrôler ce qui est installé ici et installer les composants nécessaires pour mettre à niveau votre noyau.

Je recommande fortement l' épinglage d'apt, car vous pouvez ajouter des référentiels alternatifs ou même des référentiels tiers et contrôler ce qui est installé à partir d'eux. Cela vous permet, toujours à vos risques et périls, d'installer et de mettre à jour des packages et des bibliothèques alternatifs et de les mettre à jour en même temps que les principaux composants de votre système d'exploitation. L'épinglage Apt permet un contrôle granulaire des colis provenant de sources alternatives (c'est-à-dire non stables) avec moins de risques de casse. Si vous comprenez le risque, vous pouvez avancer avec cela.

Ajouter un référentiel Backports et configurer les préférences apt

La première étape consiste à ajouter les référentiels appropriés à votre sources.list. Je vous recommande d'utiliser /sources.list.d/mais vous pouvez le faire dans un seul fichier.

#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

Votre sources.listdevrait ressembler à ceci. Vous n'avez pas besoin des pièces non libres si vous n'avez pas besoin d'un logiciel non libre. Ensuite, vous devrez attribuer des priorités aux packages en utilisant /etc/apt/preferences. Ce fichier devrait ressembler à ceci:

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

Vous pouvez être plus précis dans votre approche en spécifiant des packages individuels et en attribuant des valeurs supérieures ou inférieures aux priorités de broche.

Après cela, vous exécutez apt-get update.

Installer le noyau souhaité

En utilisant apt-cache search linux-imagevous listerez tous les noyaux disponibles. Lorsque vous avez identifié le noyau que vous souhaitez, vous pouvez l'installer à l'aide apt-get install linux-image-flavour. Il est recommandé d'installer également le package d'en-tête Linux correspondant. Si vous avez besoin de l'image grsec dans votre environnement, installez-la à la place. Encore une fois avec le package d'en-tête approprié.

Au redémarrage, vous pourrez sélectionner le noyau que vous souhaitez lancer dans le menu GRUB. Si vous rencontrez des problèmes, vous pouvez toujours sélectionner le bon noyau connu et démarrer à la place.

Conclusion

J'ai utilisé apt-pinning pour gérer avec succès l'installation de Debian sur mon ordinateur personnel. J'ai utilisé la méthode ci-dessus pour installer ce qui était le dernier noyau à l'époque (4.15) et mon système fonctionnait bien. Cependant, prenez cela avec un grain de sel car c'est un ordinateur personnel et non ce que je suppose être un serveur de production sur lequel vous souhaitez installer cela. J'inclus également des liens vers toutes les sources auxquelles j'ai fait référence. J'ai utilisé cette page Debian Wiki pour informer sur les étapes nécessaires, ainsi que la page sur l' apt-pinning . Cet article a également été référencé.

Si vous avez des questions ou des préoccupations à propos de ce message, n'hésitez pas à me les poser. S'il y a des corrections ou des idées fausses dans cette réponse, veuillez m'en informer. Je peux mettre à jour le message si nécessaire.

Bonne chance!

kemotep
la source
Pour une raison quelconque, la priorité 700 pour les rétroportages amène mon système à essayer de mettre à niveau tous les packages vers des versions rétroportées. Si je le mets à 499 ou moins, tout semble se comporter. root @ pc: / etc / apt # grep -r iority * preferences.d / sparky: Pin-Priority: 1001 preferences.d / main: Pin-Priority: 1000 preferences.d / main: Pin-Priority: 900 preferences.d / main: priorité Pin: 800 préférences.d / rétroport: priorité Pin: 499
pierce.jason
2

Pour installer linux-image et son paquet d'en-têtes, utilisez la commande suivante:

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

Certaines dépendances doivent être installées à partir de backports après avoir exécuté la commande ci-dessus, elles peuvent être installées via:

apt install -t stretch-backports pckg_name
GAD3R
la source
1
Ou -t stretch-backportspeut être ajouté à la première ligne, il obtient automatiquement toutes les dépendances droite: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk