¿Cuál es la forma correcta de instalar el nuevo kernel manualmente en Debian 9?

9

No tengo suficiente confianza para hacer esto solo y arriesgo que el servidor no arranque o algo así.

Me gustaría actualizar el kernel desde:

$ uname -r
4.9.0-6-amd64

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

a la versión del kernel 4.15 o 4.16. Lo que recomiende


Solo creo que sé cómo enumerar las versiones 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)

Yo también necesito encabezados. En Ubuntu también hay un paquete llamado extrao similar, así que estoy confundido de no verlo aquí.


¿Cuál es la forma correcta de instalar el nuevo kernel manualmente en Debian 9?

LinuxSecurityFreak
fuente
¿Hay alguna razón en particular que necesite un núcleo más reciente?
marcelm

Respuestas:

10

Si desea instalar un nuevo kernel empaquetado en Debian, debe usar uno del repositorio de backports. Parece que ya tiene ese repositorio agregado a su aptconfiguración, por lo que está todo listo.

Dado que su núcleo actual es la versión básica de amd64, supongo que no necesitará la versión del planificador en tiempo real ni la versión en la nube.

Solo corre

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

es decir, "instale la versión básica -amd64 del kernel 4.16 compatible con Debian 9 y el paquete de encabezados correspondiente".

A diferencia de los paquetes regulares, el linux-imagepaquete de la nueva versión no reemplazará directamente el kernel 4.9.0 existente, sino que se instalará junto a él. (Esto se debe a que el número de versión se incluye como parte del nombre del paquete). Los gestores de arranque se configurarán automáticamente linux-imagedespués de la instalación para presentar los núcleos disponibles en un orden basado en el número de versión, o si eso no es posible para algunos gestores de arranque. , solo establece automáticamente el más reciente instalado como el preferido.

Si resulta que su nuevo kernel no arrancará, puede seleccionar el kernel anterior del gestor de arranque y luego eliminar el paquete del kernel que no funcionó. Si accidentalmente le dice al administrador de paquetes que elimine el núcleo en el que se está ejecutando actualmente, es lo suficientemente inteligente como para saber que no es algo bueno y anulará la operación.

telcoM
fuente
[...] it is smart enough to know that isn't a good thing to do, and will abort the operation.<- Si no está seguro de qué núcleo está ejecutando (en este caso) puede ejecutar uname -r(tomado de askubuntu.com/questions/359574/… )
Ismael Miguel
12

Problema en cuestión

Necesita un kernel de Linux más nuevo que el instalado en su instancia de Debian. Hay algunos riesgos para esto. Se recomienda evitar desviarse del núcleo LTS estable predeterminado que proporciona Debian. Sin embargo, debido a las necesidades de su parte, necesita un kernel más nuevo.

Solución

Puede agregar el repositorio de backports , usar apt-pinning para controlar lo que está instalado aquí e instalar los componentes necesarios para actualizar su kernel.

Recomiendo encarecidamente apt-pinning ya que puede agregar repositorios alternativos o incluso repositorios de terceros y controlar lo que se instala desde ellos. Esto le permite, nuevamente bajo su propio riesgo, instalar y actualizar paquetes y bibliotecas alternativas y actualizarlos junto con los componentes principales de su sistema operativo. La fijación de aptos permite el control granular de paquetes de fuentes alternativas (es decir, no estables) con menores riesgos de rotura. Si comprende el riesgo, puede avanzar con esto.

Agregue el repositorio de Backports y configure las preferencias de apt

El primer paso es agregar los repositorios adecuados a su sources.list. Le recomendaría que use, /sources.list.d/pero puede hacerlo en un solo archivo.

#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

Su sources.listdebe ser algo como esto. No necesita las partes no libres si no necesita software no libre. A continuación, deberá darles prioridad a los paquetes mediante el uso /etc/apt/preferences. Este archivo debería verse así:

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

Puede ser más granular en su enfoque al especificar paquetes individuales y asignar valores más altos o más bajos a las prioridades del pin.

Después de esto corres apt-get update.

Instalar el kernel deseado

Al apt-cache search linux-imageusarlo, se enumerarán todos los núcleos disponibles. Cuando haya identificado qué kernel desea, puede instalarlo usando apt-get install linux-image-flavour. Se recomienda instalar también el paquete de encabezado de Linux correspondiente. Si necesita la imagen grsec en su entorno, instálela. De nuevo con el paquete de encabezado apropiado también.

Al reiniciar, podrá seleccionar qué kernel desea iniciar en el menú de GRUB. Si se encuentra con problemas, siempre puede seleccionar el núcleo bueno conocido y arrancar usando eso en su lugar.

Conclusión

He utilizado apt-pinning para administrar con éxito la instalación de Debian de mi computadora personal. Utilicé el método anterior para instalar lo que era el kernel más reciente en ese momento (4.15) y mi sistema ha estado funcionando bien. Sin embargo, tome esto con un grano de sal ya que es una computadora personal y no lo que supongo que es un servidor de producción en el que desea instalar esto. También incluyo enlaces a todas las fuentes a las que hice referencia. Utilicé esta página de Debian Wiki para informar sobre los pasos necesarios, así como la página sobre apt-pinning . Este artículo también fue referenciado.

Si tiene alguna pregunta o inquietud sobre esta publicación, no dude en preguntarme. Si hay correcciones o conceptos erróneos en esta respuesta, infórmeme. Puedo actualizar la publicación según sea necesario.

¡La mejor de las suertes!

kemotep
fuente
Por alguna razón, la prioridad 700 para backports hace que mi sistema intente actualizar todos los paquetes a versiones de backports. Si lo configuro en 499 o menos, todo parece comportarse. root @ pc: / etc / apt # grep -r iority * preferencias.d / sparky: Prioridad de clavija: 1001 preferencias.d / principal: Prioridad de clavija: 1000 preferencias.d / principal: Prioridad de clavija: 900 preferencias.d / main: Prioridad de PIN: 800 preferencias.d / backports: Prioridad de PIN: 499
pierce.jason
2

Para instalar linux-image y su paquete de encabezados, use el siguiente comando:

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

Algunas dependencias deben instalarse desde los puertos posteriores después de ejecutar el comando anterior, se puede instalar a través de:

apt install -t stretch-backports pckg_name
GAD3R
fuente
1
O -t stretch-backportsse pueden añadir a la línea inicial, por lo que recibe automáticamente todas las dependencias correctas: apt install -t stretch-backports linux-{image,headers}-4.18.0-0.bpo.3-amd64.
mivk