[opensuse-es] Valores predeterminados para GRUB
Hola, Mantengo una openSUSE 11.3 para pruebas instalada en disco externo USB (no sé cuánto durará, pero mientras la tenga instalada me gustaría solucionar esto). El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema. Explico. Por algún motivo extraño, el disco USB donde está instalada openSUSE se ha puesto/detectado en primer lugar (antes que el disco IDE interno del equipo), es decir, que necesito arrancar con un "root (hd0,1)". El problema es que tras cada actualización de seguridad del kernel el menu.lst se cambia a "root (hd1,1) y me toca cambiarlo a mano. En Debian esto se puede solucionar por medio de un parámetro en el "menu.lst" que permite predefinir variables que se van a utilizar tras actualizar el kernel: ## default grub root device ## e.g. groot=(hd0,0) # groot=(hd0,1) No recuerdo haber usado esta opción en openSUSE (mi memoria susera falla cada vez más, así que no descarto que haya algo similar pero que sencillamente no lo recuerde). ¿Alguna idea para automatizar esto? No me gustaría tener que modificar el "/boot/grub/device.map" Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Fri, 29 Oct 2010 16:29:04 +0000, Camaleón escribió: (...)
El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema.
He estado buscando información pero sin dar con la tecla correcta. Por una parte tenemos el archivo "/etc/sysconfig/bootloader" que se supone sería el sitio indicado para predefinir estas cosas, pero sólo veo una variable como posible candidata (DEFAULT_APPEND=) y me parece que sirve para especificar los parámetros adicionales a pasar a la línea del "kernel" pero no a la de "root", que sería la que me interesa en este caso. Después tenemos el archivo "/boot/grub/device.map" donde veo que "hd0" apunta al disco interno y "hd1" apunta al disco USB (donde está instalada openSUSE). Y por último tenemos el archivo "/etc/grub.conf" que contiene: *** setup --stage2=/boot/grub/stage2 --force-lba (hd1,1) (hd1,1) quit *** Pero no sé si debo modificar esto... a ver, se supone que cuando se actualiza el kernel, se ejecuta el mkinitrd que genera la imagen de inicio con los módulos necesarios y además supongo que ejecutará "grub- install" para realizar los cambios necesarios en el "menu.lst". Y supongo también que "grub-install" tendrá en cuenta este archivo (/etc/grub.conf). Pero no creo que deba cambiar este archivo... ¿por qué? Pues porque actualmente lo hace correctamente, es decir, instala GRUB en la segunda partición del disco USB no en la del disco IDE (en el IDE tengo windows con su propio cargador de arranque). Luego... si al actualizar el kernel GRUB toma "hd1" como el disco USB, tal y como los archivos de configuración "device.map" y "grub.conf" indican que así sea, entonces... ¿por qué GRUB no es capaz de encontrar/ arrancar desde "hd1" y tengo cambiarlo a "hd0" para poder iniciar el sistema? :-? En resumen, actualmente para poder iniciar el sistema, en el "menu.lst" tengo: *** title linux root(hd0,1) #esto cambia a "root=(hd1,1)" tras actualizar el kernel y el sistema no inicia kernel /vmlinuz root=/dev/disk/by-id/disco-usb bla bla bla initrd /initrd *** En el device.map: ** (hd1) /dev/disk/by-id/USB (hd0) /dev/disk/by-id/disco_interno_ide *** Y en el grub.conf: *** setup --stage2=/boot/grub/stage2 --force-lba (hd1,1) (hd1,1) quit *** Y me acabo de dar cuenta de otra cosa curiosa. Cuando inicio el equipo y en el menú de GRUB salto a la consola (grub>) si ejecuto un: find /boot/vmlinuz Devuelve: (hd0,1) Pero cuando inicio sesión, y accedo a la shell de GRUB desde el sistema, el mismo comando devuelve (hd1,1) ¿!¡?. ¿Qué está pasando y cómo podría solucionarlo? Sin cargarme el cargador de arranque de Windows, si es posible :-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El dom, 31-10-2010 a las 19:42 +0000, Camaleón escribió:
(...)
El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema.
He estado buscando información pero sin dar con la tecla correcta.
* Si es un sistema "actualizado" es decir antes era otra version puede ocurrirte que los stages no sean los correctos y no se hayan mapeado. * Hacer esto , puede no solventarlo por que sea otra la cuestion, pero no te perjudicara ......., yo lo tengo que hacer en los zypper dup que van de un 110/111 por ejemplo a un 113, casi en todas las maquinas por que existe un raid y no lo hace correctamente. * verifica como esta el tema grub hd1 --device-map=device.map quit rm /boot/grub/*stage* cp /usr/lib/grub/* /boot/grub/ * reinstala grub grub root (hd1,1) setup (hd1) quit -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El dom, 31-10-2010 a las 23:46 +0100, jose maria escribió:
El dom, 31-10-2010 a las 19:42 +0000, Camaleón escribió:
(...)
El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema.
He estado buscando información pero sin dar con la tecla correcta.
* Si es un sistema "actualizado" es decir antes era otra version puede ocurrirte que los stages no sean los correctos y no se hayan mapeado.
Es un sistema instalado desde cero.
* Hacer esto , puede no solventarlo por que sea otra la cuestion, pero no te perjudicara ......., yo lo tengo que hacer en los zypper dup que van de un 110/111 por ejemplo a un 113, casi en todas las maquinas por que existe un raid y no lo hace correctamente.
Me parece bien. Lo pruebo.
* verifica como esta el tema grub hd1 --device-map=device.map quit
rm /boot/grub/*stage* cp /usr/lib/grub/* /boot/grub/
Hecho.
* reinstala grub grub root (hd1,1) setup (hd1) quit
grub> root (hd1,1) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 17 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+17 p (hd1,1)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. Pues ya está reinstalado, ahora sólo queda esperar a alguna actualización del kernel a ver qué hace. De momento no ha habido ningún cambio, es decir, el GRUB "real" sigue viendo al disco USB como hd0 y el GRUB "falso" (la shell) lo ve como hd1, lo cual no es buena señal :-/ Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Mon, 01 Nov 2010 14:01:06 +0100, Camaleón escribió:
El dom, 31-10-2010 a las 23:46 +0100, jose maria escribió:
El dom, 31-10-2010 a las 19:42 +0000, Camaleón escribió:
(...)
El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema.
He estado buscando información pero sin dar con la tecla correcta.
* Si es un sistema "actualizado" es decir antes era otra version puede ocurrirte que los stages no sean los correctos y no se hayan mapeado.
Es un sistema instalado desde cero.
* Hacer esto , puede no solventarlo por que sea otra la cuestion, pero no te perjudicara ......., yo lo tengo que hacer en los zypper dup que van de un 110/111 por ejemplo a un 113, casi en todas las maquinas por que existe un raid y no lo hace correctamente.
Me parece bien. Lo pruebo.
(...)
Pues ya está reinstalado, ahora sólo queda esperar a alguna actualización del kernel a ver qué hace. De momento no ha habido ningún cambio, es decir, el GRUB "real" sigue viendo al disco USB como hd0 y el GRUB "falso" (la shell) lo ve como hd1, lo cual no es buena señal :-/
Perdón por retomar este hilo antiguo, pero acabo de iniciar el equipo donde tengo la 11.3 y había una actualización para el kernel. Al reiniciar ha vuelto a pasar lo mismo, la entrada de GRUB se ha vuelto a cambiar a "root (hd1,1)" cuando tenía que ser "root (hd0,1)"... es decir, que no ha funcionado ;-( Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El mar, 11-01-2011 a las 16:32 +0000, Camaleón escribió:
El Mon, 01 Nov 2010 14:01:06 +0100, Camaleón escribió:
El dom, 31-10-2010 a las 23:46 +0100, jose maria escribió:
El dom, 31-10-2010 a las 19:42 +0000, Camaleón escribió:
(...)
El caso es que con cada actualización de seguridad del kernel (hoy mismo he hecho una) se me descompone el "menu.lst" de GRUB y tengo que acceder al modo de edición en tiempo de arranque para poder iniciar el sistema.
He estado buscando información pero sin dar con la tecla correcta.
* Si es un sistema "actualizado" es decir antes era otra version puede ocurrirte que los stages no sean los correctos y no se hayan mapeado.
Es un sistema instalado desde cero.
* Hacer esto , puede no solventarlo por que sea otra la cuestion, pero no te perjudicara ......., yo lo tengo que hacer en los zypper dup que van de un 110/111 por ejemplo a un 113, casi en todas las maquinas por que existe un raid y no lo hace correctamente.
Me parece bien. Lo pruebo.
(...)
Pues ya está reinstalado, ahora sólo queda esperar a alguna actualización del kernel a ver qué hace. De momento no ha habido ningún cambio, es decir, el GRUB "real" sigue viendo al disco USB como hd0 y el GRUB "falso" (la shell) lo ve como hd1, lo cual no es buena señal :-/
Perdón por retomar este hilo antiguo, pero acabo de iniciar el equipo donde tengo la 11.3 y había una actualización para el kernel. Al reiniciar ha vuelto a pasar lo mismo, la entrada de GRUB se ha vuelto a cambiar a "root (hd1,1)" cuando tenía que ser "root (hd0,1)"... es decir, que no ha funcionado ;-(
Saludos,
-- Camaleón
* El fichero /boot/grub/device.map refleja correctamente la tupla (hd) identificador del disco usb y el fijo ? , por que la identificacion puede rotar en cada arranque al ser un dispositivo extraible y tal vez habria que hacerlo fijo y cargarlo en la imagen initram. * Creo que es un problema del script que considera el usb como algo "puntual", o no lo considera en absoluto como un dispositivo para esos menesteres, perl-bootloader creo que es quien lo trabaja no recuerdo. * otra solucion es poner otra entrada en menu.lst y añadir fallback=1 , siendo default=0 la entrada predeterminada y 1 la siguiente en caso de fallo en esa entrada pon lo del usb, lo digo por que si es cosa del script entiendo que esa parte de la configuracion no la toque. * No me acuerdo bien del hilo, si no van los tiros por hay, vuelve a recordarnoslo o da la referencia del hilo.
El mié, 12-01-2011 a las 01:43 +0100, jose maria escribió:
* El fichero /boot/grub/device.map refleja correctamente la tupla (hd) identificador del disco usb y el fijo ? , por que la identificacion puede rotar en cada arranque al ser un dispositivo extraible y tal vez habria que hacerlo fijo y cargarlo en la imagen initram.
* Creo que es un problema del script que considera el usb como algo "puntual", o no lo considera en absoluto como un dispositivo para esos menesteres, perl-bootloader creo que es quien lo trabaja no recuerdo.
* otra solucion es poner otra entrada en menu.lst y añadir fallback=1 , siendo default=0 la entrada predeterminada y 1 la siguiente en caso de fallo en esa entrada pon lo del usb, lo digo por que si es cosa del script entiendo que esa parte de la configuracion no la toque.
* No me acuerdo bien del hilo, si no van los tiros por hay, vuelve a recordarnoslo o da la referencia del hilo.
* Si es cosa del script como creo, todo esto no creo que se tenga en cuenta, habria que modificarlo, eso anda por /usr/share/YaST2/include/bootloader/ y la docu en /usr/share/doc/packages/yast2-bootloader/autodocs/index.html * Pero recordando alguna cosa rara que he hecho con portatiles y usb, verifica tambien que la imagen initrd tenga soporte para usb y usb_storage. * lsinitrd -l /boot/initrdencuestion , en /etc/sysconfig/kernel se puede añadir el modulo y crear la imagen con mkinitrd, esto ejecuta los scripts preconfigurados en /lib/mkinitrd/boot/boot-usb.sh que son enlaces a ../scripts/boot-storage.sh, etc .... , nota que algunos hacen referencia a reglas udev, creo tambien que debes identificar el usb en menu.lst y fstab para los usb por LABEL es decir creandolo en la llave, no se si por uid sera siempre el mismo, desde luego por bus-id casi seguro que no. * Pero como digo creo que es cosa de la funcion que busca medios instalables, BootloaderInstallable () , de bootloader.ycp y misc.ycp.
El Wed, 12 Jan 2011 01:43:13 +0100, jose maria escribió:
El mar, 11-01-2011 a las 16:32 +0000, Camaleón escribió:
Perdón por retomar este hilo antiguo, pero acabo de iniciar el equipo donde tengo la 11.3 y había una actualización para el kernel. Al reiniciar ha vuelto a pasar lo mismo, la entrada de GRUB se ha vuelto a cambiar a "root (hd1,1)" cuando tenía que ser "root (hd0,1)"... es decir, que no ha funcionado ;-(
* El fichero /boot/grub/device.map refleja correctamente la tupla (hd) identificador del disco usb y el fijo ? , por que la identificacion puede rotar en cada arranque al ser un dispositivo extraible y tal vez habria que hacerlo fijo y cargarlo en la imagen initram.
El "device.map" tiene al disco usb como hd1 y al interno como hd0. El GRUB ejecutado dentro del sistema ve al disco usb como hd1 y al interno como hd0. El GRUB real ve al disco usb como hd0 y al interno como hd1. ¿Qué es real y que es virtual? Pues no sé... si modifico el device.map y pongo al disco usb como hd0 y al interno como hd1 es posible que sobreescriba el cargador de arranque de windows lo cual no me haría mucha gracia, aunque podría desconectar el disco duro del portátil para que no "tocara" donde no debe...
* Creo que es un problema del script que considera el usb como algo "puntual", o no lo considera en absoluto como un dispositivo para esos menesteres, perl-bootloader creo que es quien lo trabaja no recuerdo.
No lo sé... GRUB discrepa consigo mismo. En Debian se puede predeterminar este valor modificando el archivo "menu.lst" pero en openSUSE no veo la forma de hacerlo, no puedo predeterminar valores para la entrada "root(hdx,x)".
* otra solucion es poner otra entrada en menu.lst y añadir fallback=1 , siendo default=0 la entrada predeterminada y 1 la siguiente en caso de fallo en esa entrada pon lo del usb, lo digo por que si es cosa del script entiendo que esa parte de la configuracion no la toque.
Puedo probarlo aunque no sé si servirá en este caso porque no se llega a cargar el kernel y desconozco si este supuesto está cubierto. En cuanto tenga resultados lo comento.
* No me acuerdo bien del hilo, si no van los tiros por hay, vuelve a recordarnoslo o da la referencia del hilo.
http://lists.opensuse.org/opensuse-es/2010-10/msg00757.html http://lists.opensuse.org/opensuse-es/2010-10/msg00779.html Gracias por las sugerencias. Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Wed, 12 Jan 2011 12:04:13 +0000, Camaleón escribió:
El Wed, 12 Jan 2011 01:43:13 +0100, jose maria escribió:
* otra solucion es poner otra entrada en menu.lst y añadir fallback=1 , siendo default=0 la entrada predeterminada y 1 la siguiente en caso de fallo en esa entrada pon lo del usb, lo digo por que si es cosa del script entiendo que esa parte de la configuracion no la toque.
Puedo probarlo aunque no sé si servirá en este caso porque no se llega a cargar el kernel y desconozco si este supuesto está cubierto. En cuanto tenga resultados lo comento.
Probado y funciona. GRUB no puede iniciar con la entrada predeterminada ("entrada A" con hd1,1) y automáticamente salta a la segunda ("entrada B" con hd0,1) pero me da la nariz que cuando se actualice el kernel me cambiará la "entrada B" que ahora es la que está marcada como predeterminada... ¿Cómo podría comprobarlo sin tener que esperar a que haya una actualización del kernel? He ejecutado "mkinitrd" así como "grub --batch < /etc/grub.conf" pero no se ha generado un nuevo archivo "menu.lst". También he visto que hay un comando "update-bootloader" pero no sé si conviene ejecutarlo así sin más... Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El mié, 12-01-2011 a las 15:18 +0000, Camaleón escribió:
El Wed, 12 Jan 2011 12:04:13 +0000, Camaleón escribió:
El Wed, 12 Jan 2011 01:43:13 +0100, jose maria escribió:
¿Cómo podría comprobarlo sin tener que esperar a que haya una actualización del kernel?
* Cambia el menu.lst y vuelve a instalar el kernel, zypper install -f kernel-bla , o ve a yast y marca de nuevo el kernel, lo probable es que te instale ya el del parche. * Voy a leer el hilo antiguo por que no entiendo bien que quieres hacer.
El Wed, 12 Jan 2011 17:11:37 +0100, jose maria escribió:
El mié, 12-01-2011 a las 15:18 +0000, Camaleón escribió:
¿Cómo podría comprobarlo sin tener que esperar a que haya una actualización del kernel?
* Cambia el menu.lst y vuelve a instalar el kernel, zypper install -f kernel-bla , o ve a yast y marca de nuevo el kernel, lo probable es que te instale ya el del parche.
Vale, ya lo he quitado y lo he vuelto a actualizar. Resultado: a tomar por saco... es decir, que no sirve. Al actualizar el kernel te añade dos entradas (la 0 y la 1 "failsafe") y te baja las antiguas, así que el menú se queda descompuesto por completo y el "fallback" del grub se va tomar viento... sí, el fallback se aplica, pero la entrada que antes funcionaba (la entrada nº 1) ahora es la nº 3. :-/
* Voy a leer el hilo antiguo por que no entiendo bien que quieres hacer.
Me da a mí que esto va a requerir medidas drásticas... con lo sencillo que es hacerlo en Debian. Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Wed, 12 Jan 2011 17:18:23 +0000, Camaleón escribió:
* Voy a leer el hilo antiguo por que no entiendo bien que quieres hacer.
Me da a mí que esto va a requerir medidas drásticas... con lo sencillo que es hacerlo en Debian.
Medida drástica ejecutada. He extraído el disco duro del portátil (el interno) y he modificado dos archivos: - /boot/grub/device.map El disco usb pasa a ser (hd0) y el interno ahora es (hd1) - /etc/grub.conf He ajustado el comando del "setup" para que apunte al "hd0,1". *** setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1) quit *** Y después he ejecutado "grub --batch < /etc/grub.conf". Todo ha quedado correcto, ahora tanto el GRUB ejecutado dentro del sistema como el GRUB real encuentran al "vmlinuz" en (hd0,1). He vuelto a conectar el disco interno y todo parece normal. Bueno, pues veremos que pasa al actualizar el kernel, espero que no haya más sorpresas >:-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (2)
-
Camaleón
-
jose maria