¿Carga diferentes distribuciones de Linux cada vez que la computadora se inicia automáticamente?

15

Tengo dos distribuciones de Linux (OpenSuSE, Ubuntu) instaladas en dos particiones diferentes. Cada vez que enciendo mi máquina, GRUB se carga, lo que me permite seleccionar una de las dos distribuciones.

No quiero que aparezca GRUB, así que limito el tiempo de espera a cero en /boot/grub/menu.lst, lo que probablemente hará que mi máquina cargue OpenSuSE cada vez que inicie mi PC porque es la primera opción en el menú .lst.

¿Es posible que la segunda vez que reinicie mi PC, Ubuntu se cargue automáticamente? La tercera vez que reinicio de nuevo, es posible que OpenSuSE se inicie, mientras que la cuarta vez que reinicio, ¿Ubuntu se puede cargar y así sucesivamente?

En otras palabras, ¿cómo puedo hacer que mi máquina arranque el siguiente sistema operativo en menu.lst, la próxima vez que se reinicie?

Usman
fuente
1
¿Le importaría agregar algunos detalles: está usando Karmic (que usa Grub2)? Además, ¿comparte una partición / boot entre ambas distribuciones? ¿O la partición de arranque de una distribución enlaza con ambas distribuciones kernel / initrd, etc.?
¡No es raro en absoluto! Solía ​​hacer esto con una partición de Linux dedicada que restauraría Windows usando Partimage. Cualquier otro arranque iría a Linux para una restauración, luego un reinicio inmediato de nuevo en Windows. (Pero usé LiLo con el interruptor -R IIRC.)

Respuestas:

11

Ponga algo en los scripts de inicio para reescribir menu.lst.

Entonces, haga que Ubuntu escriba una versión menu.lstque cargue OpenSuSE, y haga que OpenSuSE escriba una versión que cargue Ubuntu.

Una forma relativamente segura de hacer esto sería tener 3 archivos, menu.lst, menu.lst.ubuntuy menu.lst.SuSEy tienen las secuencias de comandos hacen:

cp menu.lst.ubuntu menu.lst

en SuSE y:

cp menu.lst.SuSE menu.lst

en Ubuntu

rjmunro
fuente
9

Obtuve la funcionalidad que estaba buscando utilizando la opción 'savedefault' de GRUB. Solía ​​establecer su valor para el otro sistema operativo al final de la entrada de cada sistema operativo en menu.lst.

Muchas gracias a todos los que intentaron ayudar. :)

Usman
fuente
1
+1 Estaba a punto de sugerir savedefault, pero me ganaste;)
Chris
3

Lilo puede hacer esto.

Pero puede considerar una secuencia de comandos simple en cada sistema operativo que establece el otro sistema operativo como el valor predeterminado de grub. Por ejemplo, el siguiente script modificaría una default 1configuración a default 0:

echo -e "g/default 1/d\ni\ndefault 0\n.\nw" | ed /boot/grub/menu.lst

(Ed es muy parecido a Vi. Ejecute solo el primer comando para ver qué está haciendo).

En el otro sistema operativo, puede ejecutar la contraparte:

echo -e "g/default 0/d\ni\ndefault 1\n.\nw" | ed /boot/grub/menu.lst

fuente
Gracias jhs Creo que funcionará para mí. Pero llegaré a LILO si no logro lograr la funcionalidad con GRUB.
2

¿Cuál es su razón / objetivo para hacer esto?

¿Has considerado simplemente ejecutar dos máquinas virtuales diferentes ? Si se pueden considerar las máquinas virtuales, hay varias formas diferentes de lograr esto desde la propia máquina host, sin alterar a los invitados.

sybreon
fuente