Actualizar Manualmente el Kernel
Los kernel Fedora están empaquetados en formato RPM para que sean fáciles de actualizar y verificar usando los administradores de paquetes DNF o PackageKit. PackageKit consulta automáticamente a los repositorios DNF y le informa de los paquetes que tienen actualizaciones disponibles, incluyendo los paquetes kernel..
Este capítulo es, por lo tanto, solo útil para los usuarios que necesitan actualizar manualmente un paquete kernel usando el comando rpm en lugar del comando dnf.
Utilice DNF para instalar kernels siempre que sea posible
Siempre que sea posible, utilice o DNF o el administrador de paquetes PackageKit para instalar un nuevo kernel porque ellos siempre instalan un nuevo kernel en lugar de reemplazar el actual algo que podría, potencialmente, dejar su sistema incapaz de arrancar. |
Para más información sobre la instalación de paquetes de kernel con DNF vea Actualizando Paquetes.
Visión General de los Paquetes de Kernel
Fedora contiene los siguientes paquetes de kernel:
-
kernel — Contiene el kernel para sistemas de un solo núcleo, multinúcleo y multiprocesador.
-
kernel-debug — Contiene un kernel con numerosas opciones de depuración habilitadas para el diagnóstico del kernel, con el coste de un rendimiento reducido.
-
kernel-devel — Contiene las cabeceras del kernel y los makefiles suficientes para construir módulos contra el paquete kernel.
-
kernel-debug-devel — Contiene la versión de desarrollo del kernel con numerosas opciones de depuración habilitadas para diagnóstico del kernel, con el coste de un rendimiento reducido.
-
kernel-headers — Incluye los ficheros de cabecera C que especifican la interfaz entre el kernel Linux y las librerías y programas del espacio de usuario. Los ficheros de cabecera definen estructuras y constantes que son necesarias para la construcción de la mayoría de los programas estándar.
-
linux-firmware — Contiene todos los ficheros de firmware que son requeridos por los diversos dispositivos para trabajar.
-
perf — Este paquete contiene scripts de apoyo y documentación para la herramienta perf enviada en cada subpaquete de imagen de kernel.
-
kernel-abi-whitelists — Contiene información que pertenece a la ABI (Interfaz Binaria de Aplicaciones) del kernel de Fedora, incluyendo una lista de símbolos de kernel que son necesarios para módulos externos del kernel Linux y un complemento dnf de ayuda.
-
kernel-tools — Contiene herramientas para la manipulación del kernel Linux y documentación de apoyo.
Preparando la Actualización
Antes de actualizar el kernel es recomendable que tome algunas medidas de precaución.
Primero, asegure que tiene un medio de arranque funcional para el sistema en caso de que ocurra un problema. Si el cargador de arranque no está configurado apropiadamente para arrancar el nuevo kernel, usted puede usar este medio para arrancar Fedora.
Los medios USB vienen con frecuencia en forma de dispositivos flash a veces llamados pen drives, thumb disks o keys o como dispositivos de disco duro externamente conectados. Casi todos los medios de este tipo están formateados como sistemas de archivos VFAT
. Puede crear su medio USB arrancable sobre un medio formateado como ext2
, ext3
, ext4
o VFAT
.
Puede transferir un fichero imagen de distribución o un fichero imagen mínimo de arranque a un medio USB. Asegure que hay suficiente espacio libre disponible en el dispositivo. Se requiere alrededor de 4 GB para imagen de distribución DVD, alrededor de 700 MB para imagen de distribución CD o alrededor de 10 MB para imagen mínima de medio de arranque.
Usted debe tener una copia del archivo boot.iso
de un DVD de instalación de Fedora o del CD-ROM#1 de instalación y necesita una dispositivo de almacenamiento USB formateado con el sistema de archivos VFAT
y alrededor de 16 MB de espacio libre. El siguiente procedimiento no afectará a los archivos existentes en el dispositivo de almacenamiento USB a nos ser que tengan los mismos nombre de ruta que los ficheros que usted vaya a copiar en él. Para crear el medio de arranque USB ejecute los siguientes comandos como usuario root
:
-
Instalar el gestor de arranque SYSLINUX en el dispositivo de almacenamiento USB:
~]# syslinux /dev/sdX1
…donde sdX es el nombre del dispositivo.
-
Crear los puntos de montaje para
boot.iso
y el dispositivo de almacenamiento USB:~]# mkdir /mnt/isoboot /mnt/diskboot
-
Montar
boot.iso
:~]# mount -o loop boot.iso /mnt/isoboot
-
Montar el dispositivo de almacenamiento USB:
~]# mount /dev/sdX1 /mnt/diskboot
-
Copiar los archivos ISOLINUX desde
boot.iso
al dispositivo de almacenamiento USB:~]# cp /mnt/isoboot/isolinux/* /mnt/diskboot
-
Usar el archivo
isolinux.cfg
delboot.iso
como el archivosyslinux.cfg
para el dispositivo USB:~]# grep -v local /mnt/isoboot/isolinux/isolinux.cfg > /mnt/diskboot/syslinux.cfg
-
Desmonte
boot.iso
y el dispositivo de almacenamiento USB:~]# mkdir /mnt/isoboot /mnt/diskboot
-
Debería reiniciar la máquina con el medio de arranque y verificar que es capaz de arrancar con él antes de continuar.
Alternativamente, sobre sistemas con dispositivo de disco flexible, usted puede crear un disquete de arranque instalando el paquete mkbootdisk y ejecutando el comando mkbootdisk como root
. Vea la página de manual man mkbootdisk después de instalar el paquete para información de utilización.
Para determinar que paquetes de kernel están instalados, ejecute el comando dnf list installed "kernel-*" en un indicador de shell. La salida se compondrá de algunos o todos los siguientes paquetes, dependiendo de la arquitectura del sistema y de los números de versión que pueden diferir:
~]# dnf list installed "kernel-*" Last metadata expiration check performed 0:28:51 ago on Tue May 26 21:22:39 2015. Installed Packages kernel-core.x86_64 4.0.3-300.fc22 @System kernel-core.x86_64 4.0.4-300.fc22 @System kernel-core.x86_64 4.0.4-301.fc22 @System kernel-headers.x86_64 4.0.4-301.fc22 @System kernel-modules.x86_64 4.0.3-300.fc22 @System kernel-modules.x86_64 4.0.4-300.fc22 @System kernel-modules.x86_64 4.0.4-301.fc22 @System
Desde la salida determine que paquetes necesitan ser descargados para la actualización del kernel. Para un sistema de procesador único el único paquete requerido es el paquete kernel. Vea en Visión General de los Paquetes de Kernel descripciones de los diferentes paquetes.
Descargar el Kernel Actualizado
Hay diversas maneras de determinar si hay un kernel actualizado disponible para el sistema.
-
Por medio del Sistema de Actualización de Fedora — Descarga e instala los paquetes RPM del kernel. Para más información vea https://bodhi.fedoraproject.org/.
-
Por medio de
DNF
usando check-update:
dnf check-update --enablerepo=updates-testing
Para instalar el kernel manualmente, continúe a Llevar a Cabo la Actualización.
Llevar a Cabo la Actualización
Después de recuperar todos los paquetes necesarios, es el momento de actualizar el kernel existente.
Mantenga el kernel viejo cuando lleve a cabo la actualización
Se recomienda encarecidamente mantener el kernel antiguo por si hay problemas con el nuevo kernel. |
En el símbolo del sistema cambie al directorio que contiene los paquetes RPM del kernel. Utilice el argumento -i
con el comando rpm para mantener el kernel viejo. No use la opción -U
, puesto que escribe encima del kernel instalado, lo que crea problemas en el gestor de arranque. Por ejemplo:
~]# rpm -ivh kernel-kernel_version.arch.rpm
El siguiente paso es verificar que se haya creado la imagen de disco RAM inicial. Vea detalles en Verificar la Imagen de Disco RAM Inicial.
Verificar la Imagen de Disco RAM Inicial
El trabajo de la imagen de disco RAM inicial es precargar los módulos del dispositivo de bloques, como para IDE, SCSI o RAID, de modo que se pueda acceder y montar el sistema de archivos raíz, donde normalmente residen. En sistemas Fedora 32, cada vez que se instala un nuevo kernel se instala usando el administrador de paquetes DNF, PackageKit o RPM, los scripts de instalación siempre llaman a la utilidad Dracut para crear un initramfs (imagen de disco RAM inicial).
En todas las arquitecturas distintas de IBM eServer System i (vea Verificar la Imagen de Disco RAM Inicial y el Kernel sobre IBM eServer System i), usted puede crear un initramfs
ejecutando el comando dracut. Sin embargo, usted no necesita, normalmente, crear un initramfs
manualmente: este paso se lleva a cabo automáticamente si el kernel y sus paquetes asociados son instalados o actualizados desde paquetes RPM distribuidos por The Fedora Project.
Sobre arquitecturas que usan el gestor de arranque GRUB 2, usted puede verificar que existe un initramfs
que corresponde a la versión actual del kernel y está especificado correctamente en el archivo de configuración /boot/grub2/grub.cfg
mediante el siguiente procedimiento:
-
Como
root
, liste los contenido en el directorio/boot/
y encuentre el kernel (vmlinuz-kernel_version
) y elinitramfs-kernel_version
con el último (el más reciente) número de versión:Ejemplo 1. Asegurar que las versiones de kernel e initramfs coinciden~]# ls /boot/ config-3.17.4-302.fc21.x86_64 config-3.17.6-300.fc21.x86_64 config-3.17.7-300.fc21.x86_64 efi elf-memtest86+-5.01 extlinux grub2 initramfs-0-rescue-db90b4e3715b42daa871351439343ca4.img initramfs-3.17.4-302.fc21.x86_64.img initramfs-3.17.6-300.fc21.x86_64.img initramfs-3.17.7-300.fc21.x86_64.img initrd-plymouth.img lost+found memtest86+-5.01 System.map-3.17.4-302.fc21.x86_64 System.map-3.17.6-300.fc21.x86_64 System.map-3.17.7-300.fc21.x86_64 vmlinuz-0-rescue-db90b4e3715b42daa871351439343ca4 vmlinuz-3.17.4-302.fc21.x86_64 vmlinuz-3.17.6-300.fc21.x86_64 vmlinuz-3.17.7-300.fc21.x86_64
-
tenemos tres kernels instalados (o, más correctamente, en el directorio
/boot/
hay presentes tres archivos de kernel), -
el último kernel es
vmlinuz-3.17.7-300.fc21.x86_64
, y -
un archivo
initramfs
que coincide con nuestra versión de kernel,initramfs-3.17.7-300.fc21.x86_64.img
, también existe.Los archivos initrd en el directorio /boot/ no son los mismos que los archivos initramfsEn el directorio
/boot/
usted podría encontrar diversos archivosinitrd-kernel_versionkdump.img
. Estos son archivos especiales creados por el mecanismokdump
con propósitos de depuración del kernel, no son usados para el arranque del sistema y pueden ser ignorados con seguridad. Para más información sobrekdump
, vea la Guía de Volcado de Caídas de Red Hat Enterprise Linux 7.
-
-
(Opcional) Si su archivo
initramfs-kernel_version
no coincide con la versión del último kernel en/boot
o en otras situaciones concretas, puede necesitar generar un archivoinitramfs
con la utilidad Dracut. Simplemente llamando a dracut comoroot
sin opciones causa generar un archivoinitramfs
en el directorio/boot/
para el último kernel presente en ese directorio:~]# dracut
Debe usar la opción
--force
si desea que dracut escriba sobre uninitramfs
existente (por ejemplo, si suinitramfs
se ha corrompido). De otro modo dracut rehusará escribir sobre el archivoinitramfs
existente:~]# dracut F: Will not override existing initramfs (/boot/initramfs-3.17.7-300.fc21.x86_64.img) without --force
Puede crear un initramfs en el directorio en que se encuentre llamando a dracut initramfs_name kernel_version, por ejemplo:
~]# dracut "initramfs-$(uname -r).img" $(uname -r)
Si necesita especificar módulos de kernel específicos a ser cargados, añada los nombres de esos módulos (menos cualquier sufijo de nombre de archivo como
.ko
) entre paréntesis en la directivaadd_dracutmodules="module more_modules"
del archivo de configuración/etc/dracut.conf
. Puede listar los contenidos del archivo imageninitramfs
creado por dracut usando el comando lsinitrd initramfs_file:~]# lsinitrd /boot/initramfs-3.17.7-300.fc21.x86_64.img Image: /boot/initramfs-3.17.7-300.fc21.x86_64.img: 18M ======================================================================== Version: dracut-038-31.git20141204.fc21 [output truncated]
Vea página de manual man dracut y la página de manual man dracut.conf para más información sobre las opciones y utilización.
-
Examine el archivo de configuración`/boot/grub2/grub.cfg` para asegurar que existe un archivo
initramfs-kernel_version.img
para la versión del kernel que está arrancando. Por ejemplo:~]# grep initramfs /boot/grub2/grub.cfg initrd16 /initramfs-3.17.7-300.fc21.x86_64.img initrd16 /initramfs-3.17.6-300.fc21.x86_64.img initrd16 /initramfs-3.17.4-302.fc21.x86_64.img initrd16 /initramfs-0-rescue-db90b4e3715b42daa871351439343ca4.img
Vea en Verificar el Cargador de Arranque más información sobre como leer y actualizar el archivo
/boot/grub2/grub.cfg
.
Sobre máquinas IBM eServer System i, los archivos de disco RAM inicial y kernel están combinados en un único archivo, que se crea con el comando addRamDisk. Este paso se lleva a cabo automáticamente si el kernel y sus paquetes asociados son instalados o actualizados desde paquetes RPM distribuidos por The Fedora Project; de este modo, no se necesita ejecutar manualmente. Para verificar que ha sido creado, ejecute como root
el siguiente comando para asegurar que el archivo`/boot/vmlinitrd-kernel_version` ya existe:
ls -l /boot/
kernel_version debería coincidir con la versión del kernel acabada de instalar.
Verificar el Cargador de Arranque
Cuando instala un kernel usando rpm, el paquete del kernel crea una entrada en el archivo de configuración del cargador de arranque para este nuevo kernel. Sin embargo, rpm no configura el nuevo kernel para arrancar como kernel predeterminado. Usted debe hacer esto manualmente cuando instale un nuevo kernel con rpm.
Es siempre recomendable hacer una doble comprobación del archivo de configuración del cargador de arranque después de instalar un nuevo kernel con rpm para asegurarse de que la configuración es la correcta. De lo contrario, el sistema podría no ser capaz de arrancar en Fedora apropiadamente. Si esto sucede, arranque el sistema con el medio de arranque creado anteriormente y vuelva a configurar el cargador de arranque.
In the following table, find your system’s architecture to determine the boot loader it uses, and then click on the "See" link to jump to the correct instructions for your system.
Arquitectura | Cargador de Arranque | Ver |
---|---|---|
x86 |
GRUB 2 |
|
AMD AMD64 or Intel 64 |
GRUB 2 |
|
IBM eServer System i |
OS/400 |
|
IBM eServer System p |
YABOOT |
|
IBM System z |
z/IPL |
— |
Configurar el Cargador de Arranque GRUB 2
Fedora 32 se distribuye con GRUB 2, que lee su configuración del archivo /boot/grub2/grub.cfg
. Este archivo es generado por la utilidad grub2-mkconfig en base a los kernels Linux ubicados en el directorio /boot
, los archivos de plantilla ubicados en /etc/grub.d/
y los ajustes personales en el archivo /etc/default/grub
y se actualiza automáticamente cada vez que instala un nuevo kernel desde un paquete RPM. Para actualizar este archivo de configuración manualmente, teclee lo siguiente en un símbolo del sistema como root
:
grub2-mkconfig-o
/boot/grub2/grub.cfg
Entre distintos fragmentos de código y directivas el archivo de configuración /boot/grub2/grub.cfg
contiene uno o más bloques menuentry
, cada uno representando una única entrada en el menú de arranque GRUB 2. Estos bloques empiezan con la palabra clave menuentry
seguida de un título, una lista de opciones y corchetes de apertura y cierre. Cualquier cosa entre los corchetes de apertura y cierre debería tener sangría. Por ejemplo, los siguiente es un bloque menuentry
de muestra para Fedora 21 con kernel Linux 3.17.6-300.fc21.x86_64:
menuentry 'Fedora (3.17.6-300.fc21.x86_64) 21 (Twenty One)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.17.4-301.fc21.x86_64-advanced-effee860-8d55-4e4a-995e-b4c88f9ac9f0' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f19c92f4-9ead-4207-b46a-723b7a2c51c8 else search --no-floppy --fs-uuid --set=root f19c92f4-9ead-4207-b46a-723b7a2c51c8 fi linux16 /vmlinuz-3.17.6-300.fc21.x86_64 root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet LANG=en_US.UTF-8 initrd16 /initramfs-3.17.6-300.fc21.x86_64.img }
Cada bloque menuentry
que representa un kernel Linux instalado contiene las directivas linux
e initrd
seguidas de la ruta al kernel y a la imagen initramfs`respectivamente. Si se ha creado una partición /boot
separada, las rutas al kernel y la imagen initramfs
son relativas a /boot`. En el ejemplo anterior, la línea initrd16 /initramfs-3.17.6-300.fc21.x86_64.img
significa que la imagen initramfs
está ubicada actualmente en /boot/initramfs-3.17.6-300.fc21.x86_64.img
cuando el sistema de archivos raíz está montado lo mismo para la ruta del kernel.
El número de versión del kernel que se da en la línea linux /vmlinuz-kernel_version
debe coincidir con el número de la versión de la imagen initramfs
dada en la línea initrd /initramfs-kernel_version.img
de cada bloque menuentry
. Para más información sobre como verificar la imagen de disco RAM inicial, vea Verificar la Imagen de Disco Ram Inicial.
La directiva initrd en grub.cfg se refiere a una imagen initramfs
En los bloques Para información sobre el uso de Dracut, vea Verificando la Imagen Inicial de Disco RAM. |
Después de instalar un nuevo kernel con rpm, verifique que /boot/grub2/grub.cfg
es correcto y reinicie el ordenador con el nuevo kernel. Asegúrese de que su hardware sea detectado observando el resultado del proceso de arranque. Si GRUB 2 presenta un error y es incapaz de arrancar en el nuevo kernel, con frecuencia lo más fácil es intentar arrancar con un kernel alternativo o más antiguo de modo que pueda corregir el problema. Alternativamente, use el medio de arranque que creo anteriormente para arrancar el sistema.
Hacer que se muestre el menú de inicio de GRUB 2
Si establece la opción |
Configurar el Cargador de Arranque OS/400
El archivo /boot/vmlinitrd-kernel-version
se instala cuando usted actualiza el kernel. Sin embargo, debe usar el comando dd para configurar el sistema para que arranque con el nuevo kernel.
-
Como
root
, envíe el comando cat /proc/iSeries/mf/side para determinar el lado predeterminado (A, B, o C). -
Como
root
, envíe el siguiente comando, donde kernel-version es la versión del nuevo kernel y side es el lado del comando anterior:dd if=/boot/vmlinitrd-kernel-version of=/proc/iSeries/mf/side/vmlinux bs=8k
Empiece a probar el nuevo kernel reiniciando el ordenador y viendo los mensajes para asegurarse de que el hardware es detectado apropiadamente.
Configurar el Cargador de Arranque YABOOT
El sistema IBM eServer System p usa YABOOT como su cargador de arranque. YABOOT usa /etc/aboot.conf
como su archivo de configuración. Confirme que el archivo contiene una sección image
con la misma versión del paquete kernel que acaba de instalar y asimismo para la imagen initramfs
:
boot=/dev/sda1 init-message=Welcome to Fedora! Hit <TAB> for boot options partition=2 timeout=30 install=/usr/lib/yaboot/yaboot delay=10 nonvram image=/vmlinuz-2.6.32-17.EL label=old read-only initrd=/initramfs-2.6.32-17.EL.img append="root=LABEL=/" image=/vmlinuz-2.6.32-19.EL label=linux read-only initrd=/initramfs-2.6.32-19.EL.img append="root=LABEL=/"
Observe que el valor predeterminado no está configurado para el nuevo kernel. El kernel en la primera imagen es el que arranca como predeterminado. Para cambiar el kernel predeterminado para arrancar o bien mueva la estrofa de la imagen a la primera de la lista o añada la directiva default
y establezca la label
de la estrofa de la imagen que contiene el nuevo kernel.
Empiece a probar el nuevo kernel reiniciando el ordenador y viendo los mensajes para asegurarse de que el hardware es detectado apropiadamente.
Want to help? Learn how to contribute to Fedora Docs ›