Qual è il modo corretto di installare manualmente il nuovo kernel su Debian 9?


9

Non ho abbastanza fiducia per farlo da solo e rischiare che il server non si avvii o qualcosa del genere.

Vorrei aggiornare il kernel da:

$ uname -r
4.9.0-6-amd64

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

alla versione 4.15 o 4.16 del kernel. Qualunque cosa tu consigli.


Penso solo di sapere come elencare le versioni disponibili:

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

Ho bisogno anche delle intestazioni. Su Ubuntu c'è anche un pacchetto chiamato extrao similmente, quindi sono confuso di non vederlo qui.


Qual è il modo corretto di installare manualmente il nuovo kernel su Debian 9?


C'è qualche motivo particolare per cui hai bisogno di un kernel più recente?
marcelm

Risposte:


10

Se si desidera installare un kernel compresso Debian più recente, è necessario utilizzarne uno dal repository backport. Sembra che tu abbia già quel repository aggiunto alla tua aptconfigurazione, quindi sei pronto.

Dato che il tuo attuale kernel è la versione base di amd64, suppongo che non avrai bisogno della versione dello scheduler in tempo reale, né della versione cloud.

Corri

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

vale a dire "installa la versione base -amd64 del kernel 4.16 con backport per Debian 9 e il pacchetto di intestazioni corrispondente".

A differenza dei pacchetti regolari, il pacchetto della nuova versione linux-imagenon sostituirà completamente il kernel 4.9.0 esistente, ma verrà installato accanto ad esso. (Questo perché il numero di versione è incluso come parte del nome del pacchetto.) I bootloader saranno automaticamente configurati linux-imagedopo l'installazione per presentare i kernel disponibili in un ordine basato sul numero di versione, o se ciò non è possibile per alcuni bootloader , imposta automaticamente quello installato più di recente come preferito.

Se risulta che il tuo nuovo kernel non si avvierà, puoi semplicemente selezionare il kernel precedente dal bootloader, quindi rimuovere il pacchetto del kernel che si è rivelato non funzionante. Se si dice accidentalmente al gestore pacchetti di rimuovere il kernel su cui si sta attualmente eseguendo, è abbastanza intelligente sapere che non è una buona cosa da fare e interromperà l'operazione.


[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Se non sei sicuro di quale kernel stai eseguendo (in questo caso) puoi eseguirlo uname -r(preso da askubuntu.com/questions/359574/… )
Ismael Miguel

12

Problema a portata di mano

È necessario un kernel Linux più recente di quello installato sulla propria istanza Debian. Ci sono alcuni rischi in questo. Si consiglia di evitare di allontanarsi dal kernel LTS stabile predefinito fornito da Debian. Tuttavia a causa delle necessità da parte tua hai bisogno di un kernel più recente.

Soluzione

È possibile aggiungere il repository di backport , utilizzare apt-pinning per controllare ciò che è installato qui e installare i componenti necessari per aggiornare il kernel.

Consiglio vivamente il pin-apt in quanto è possibile aggiungere repository alternativi o anche repository di terze parti e controllare ciò che viene installato da essi. Ciò consente, sempre a proprio rischio, di installare e aggiornare pacchetti e librerie alternative e aggiornarli insieme ai componenti principali del sistema operativo. L'ap-pinning consente il controllo granulare dei colli da fonti alternative (ovvero non stabili) con minori rischi di rottura. Se capisci il rischio, puoi andare avanti con questo.

Aggiungi repository Backports e imposta apt-preferenze

Il primo passo è aggiungere i repository adeguati al tuo sources.list. Ti consiglierei di usarlo /sources.list.d/ma puoi farlo in un solo file.

#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

Il tuo sources.listdovrebbe essere simile a questa. Non sono necessarie parti non libere se non sono richiesti software non liberi. Successivamente dovrai dare priorità ai pacchetti usando pin /etc/apt/preferences. Questo file dovrebbe apparire così:

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

Puoi essere più granulare nel tuo approccio specificando i singoli pacchetti e assegnando valori più alti o più bassi alle priorità dei pin.

Dopo questo corri apt-get update.

Installa il kernel desiderato

Usando apt-cache search linux-imageelencherai tutti i kernel disponibili. Una volta identificato il kernel che desideri, puoi installarlo usando apt-get install linux-image-flavour. Si consiglia di installare anche il pacchetto di intestazione Linux corrispondente. Se hai bisogno dell'immagine grsec nel tuo ambiente, installa quella. Anche in questo caso con il pacchetto di intestazione appropriato.

Al riavvio sarai in grado di selezionare quale kernel vuoi avviare dal menu di GRUB. Se si verificano problemi, è sempre possibile selezionare il kernel noto noto e avviarlo usando quello.

Conclusione

Ho usato apt-pinning per gestire con successo l'installazione Debian del mio personal computer. Ho usato il metodo sopra per installare quello che era l'ultimo kernel all'epoca (4.15) e il mio sistema ha funzionato bene. Tuttavia, prendi questo con un pizzico di sale in quanto è un personal computer e non quello che presumo sia un server di produzione su cui desideri installarlo. Includo anche collegamenti a tutte le fonti a cui ho fatto riferimento. Ho usato questa pagina Wiki Debian per informare sui passi necessari, così come la pagina su apt-pinning . Anche questo articolo è stato referenziato.

Se hai domande o dubbi su questo post, non esitare a chiedermelo. Se ci sono correzioni o idee sbagliate in questa risposta, per favore informami. Posso aggiornare il post se necessario.

Buona fortuna!


Per qualche motivo, la priorità 700 per i backport fa sì che il mio sistema tenti di aggiornare tutti i pacchetti alle versioni di backport. Se l'ho impostato su 499 o inferiore, tutto sembra comportarsi. root @ pc: / etc / apt # grep -r iority * preferenze.d / sparky: Priorità pin: 1001 preferenze.d / principale: Priorità pin: 1000 preferenze.d / principale: Priorità pin: 900 preferenze.d / main: Priorità Pin: 800 preferenze.d / backports: Priorità Pin: 499
pierce.jason

2

Per installare linux-image e il suo pacchetto header, usa il seguente comando:

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

Alcune dipendenze devono essere installate dai backport dopo aver eseguito il comando precedente, può essere installato tramite:

apt install -t stretch-backports pckg_name

1
Oppure -t stretch-backportspossono essere aggiunti alla linea iniziale, quindi diventa automaticamente tutte le dipendenze a destra: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.