Kexec

Saltar a: navegación, buscar
Kexec es un conjunto de llamadas al sistema y utilidades que inicialmente tenían como propósito cargar un kernel al vuelo
Kexec-Tools

Descarga para openSUSE:

Desarrollador: Eric Biederman
Licencia: GPL
Web: /xmission.com/.../kexec

Al hacer eso, evita la BIOS y el cargador de arranque (GRUB por ejemplo), que normalmente son los procesos que consumen mas tiempo.

Acerca de

Desde la versión 2.6.27 del kernel linux (aunque el parche original tiene mucho mas tiempo), esta integrado como Kexec jump (Kexec/Kdump) un sistema de hibernación. En el, se carga un kernel y se ejecuta, ese kernel guarda el contenido de la memoria en un archivo, y se apaga el sistema. Al encenderse de nuevo, se carga el archivo con la memoria y se sigue ejecutando.

Uso

Kexec se utiliza en 2 fases, primero cargamos el kernel en memoria, y luego finalizamos procesos y nos movemos a el.

kexec -l /boot/vmlinuz --command-line="`cat /proc/cmdline`" --initrd=/boot/initrd
kexec -e

Kexec no verifica que hayamos desmontado nuestros volúmenes o que demos de baja servicios, asi que hay que tener mucho cuidado antes de lanzarlo, lo recomendable en cualquier otra distribución es agregar un caso (case) para kexec en /etc/init.d/reboot.

Knotes 128x128.png

Desde la versión 11.0 openSUSE puede finalizar procesos, sincronizar y desmontar volúmenes antes de correr kexec -e.

Así que lo único que hay que hacer para utilizar Kexec sin peligro alguno es:

kexec -l /boot/vmlinuz --command-line="`cat /proc/cmdline`" --initrd=/boot/initrd
reboot

o de esta manera:

kexec /boot/vmlinuz --command-line="`cat /proc/cmdline`" --initrd=/boot/initrd

Nótese que le falta el parámetro -l

Existe otro paquete llamado, perl-Linux-Bootloader que busca la configuración del kernel y lo ejecuta kexec con esos parámetros, sin embargo, hace la llamada finalmente con kexec -e, por lo que es poco menos peligroso que reiniciar apretando el switch.

Características

Beneficios

  • El reinicio es mas rápido.
  • La BIOS no tiene oportunidad de desconfigurar los dispositivos.
  • Lo anterior es especialmente útil cuando se usan controladores de FakeRAID.
  • No se depende de las configuraciones de un gestor de arranque, como GRUB o LILO.
  • Incluso se pueden instalar nuevas distribuciones sin arrancar desde USB, CDROM o red.
  • Se mejora la disponibilidad del sistema, configurándolo para lanzarse un segundo kernel en caso de que el primero colapse. Vea Kdump para mas detalles.

Observaciones

  • Algunos dispositivos no funcionan con los kernels lanzados por Kexec, debido a que no se inicializan correctamente. En la mayoría de los casos se soluciona con pequeñas modificaciones en los controladores.
  • Pueden haber problemas con el vídeo. En este caso, agregue el parámetro --reset-vga al script /etc/init.d/reboot, linea 243 /sbin/kexec --exec --reset-vga o deshabilite vesafb. De cualquier forma, aunque el bootsplash no luzca bien, todo se vera normal una vez que X arranque.

Ver también

Enlaces externos