Recompilar kernel

eagLe__

Buenas,

Tengo un pequeño dedicado con el que estoy trasteando y como S.O. tiene CENT OS, está en USA y el soporte técnico hay que pagarlo por lo tanto no quiero liarla.

El tema es el siguiente, tengo que hacer una recompilación del kernel para cambiarle los timing en ciertos procesos y alguna que otra cosilla.

Tengo una GUIA en el cual me muestra paso a paso como hacerlo, ahora bien, mi pregunta es la siguiente ya que de linux estoy aprendiendo solo a base de liarla xD.

¿Mediante el proceso de recompilación puedo dejar el S.O. "K.O"?

O sea, que la "cague" mientras sigo los pasos y cargo el nuevo kernel en el grub pero dicho kernel está "mal editado" y hace que el sistema falle, ¿podrá cargar solo la anterior configuración? Es decir, en Windows si la lias en algo puedes ejecutarlo en el "modo que anterior no dio fallo" (algo así).

Un saludo.

B

en lilo si en grub no

DiSKuN

en ellibro que tngo, recompilé un kernel nuevo y recuerdo que en grub me daba l aoportunidad de elegir el kernel nuevo o el que usaba anteriormente

P.D: no me funcionó xD me daba errores al montar los Volumenes lógicos xD

B

Si, pero como te meta kernel panic se te queda frita. Con lilo le puedes decir que cargue un kernel y si da panic reinicie con el kernel bueno

erdanblo

No, en un entorno normal.

El resultado de la compilación se trata de una serie de ficheros, una imagen y System.map (comprueba tu guía).

Esos ficheros tienes que o sobreescribir los actuales, o bien, crear una nueva entrada en el cargador que uses. (lilo o grub), aconsejable esto ultimo.

Una vez modificado el cargador, se reinicia, y se accede a través de la nueva entrada. En el peor de los casos el sistema no te arrancará el sistema operativo, pero puedes reiniciarlo y entrar con la entrada del cargador que antes SI te funcionaba.

Y por eso digo en un entorno normal, porque en un entorno normal reinicias y seleccionas por donde quieres entrar, en un dedicado, ya es otra cosa, porque no te aparecerá las opciones del boot a menos que tengas contratado algún servicio kvm o similar. En el caso de "cagarla", dependerá de la empresa y los servicios que te de para recuperar la máquina.

Si tienes un KVM virtual como OVH, puedes arrancar con un live, hacer chroot y editar el cargador al valor seguro. En otros dedicados, la verdad es que no tengo mucha experiencia.

Se me ocurre, que te puedes instalar una máquina virtual con Centos, y "replicar" la instalación de Centos que tienes en el dedicado, y compilarte el kernel en el, luego te creas la entradas correctas, y las pruebas. Si en la máquina virtual te funciona, solo tendrás que copiarte esos ficheros al dedicado, y sustituir por los que originalmente este usando ahora mismo (sin crear una nueva entrada, etc...)

#4 Explica eso, que me interesa.

Get

yo cojeria el .config del kernel actual, y sin tocar nada solo cambiaria los timings necesarios.
compilar y añadiria una nueva entrada al lilo. luego en opciones de lilo, decirle q si falla salte al anterior

pero me extraña mucho q los dedicados en usa no tengan remote console (es como tener el server arrancando delante tuyo)
dell tiene: drac Dell remote access console q sirve para eso, corregir fallos durante el boot.

B

man lilo
el parametro R

ejemplo lilo -R nombre_nuevo_kernel

Te cargará el nuevo kernel al reiniciar y si hace panic te vuelve al que tengas por defecto en la config.

De todas formas pilla el .config del kernel que te tire, recompilas y muy importante create el INITRD para cargar los modulos antes del inicio!!!!!!

erdanblo

¿Simplemente eso?

¿No hay que hacer un /sbin/lilo para que compile la nueva configuración ni nada más?

Get

si, hay gente q dice q es mejor usar initrd, y otros q no. yo uso huge kernels
me ahorro el initrd. si es mas lentorro al inicio pero pa servers, me la pela. como un server no lo tiro abajo siempre, me da igual lo q tarde en bootear, quien sabe en q año lo vuelvo a tirar.

erdanblo

Bueno, a mi me ha convencido, de hecho, estoy cambiandolo todo ahora mismo, para tenerlo mañana por la mañana listo para meterme en faena a crear los volumenes lógicos y toda la papa :P

mTh

NINJA EDIT: Lalallala, me salte lo de dedicado lalalala

erdanblo

#11 El problema es que se trata de un dedicado, donde no haces selección en el arranque :D, directamente pilla el primero, osea que a menos que tengas algún método alternativo (como un KVM virtual), lo tienes "chungo" para recuperar la máquina.

mTh

#12

Anda coño, lo de dedicado no lo había leido xDDDD.

erdanblo

Estoy buscando si grub tiene algo similar, pero creo que el failsafe del que aquí hablan no tiene nada que ver: http://www.cs.bgu.ac.il/piavka/suse/ch07s04.html

Edit. Dejo esto por aquí, para el que tenga la misma duda que yo:

http://www.gnu.org/software/grub/manual/html_node/Booting-once_002donly.html#Booting-once_002donly

http://www.gnu.org/software/grub/manual/html_node/Booting-fallback-systems.html#Booting-fallback-systems

Yo me lo leeré mañana, pero por lo que veo en el 1º sería la opción ideal, te permite crear una entrada donde arrancará una sola vez. Si arranca correctamente, copias pegas la entrada y la pones por defecto, si no, pues te vuelve a arrancar con el anterior.

Lo dejo para #1 porque si tiene una instalación "vanilla" #1 de CentOS, le va a venir con Grub (CentOS no da opción a lilo en su instalación).

PD. La segunda es una lista de entradas, donde vaya probando y si falla, continuar con el siguiente, etc...

Jope :P y estaba pensando en cambiar a lilo, y resulta que GRUB es mucho mas potente :P

Get

la ventaja de lilo, es que una vez aplicados los cambios al mbr como si borras el contenido de /boot

Usuarios habituales

Tags