Caricare una distribuzione Linux diversa ogni volta che il computer si avvia automaticamente?


15

Ho due distribuzioni Linux (OpenSuSE, Ubuntu) installate su due diverse partizioni. Ogni volta che avvio la mia macchina, GRUB si carica, permettendomi di selezionare una delle due distribuzioni.

Non voglio che GRUB venga visualizzato, quindi limito il timeout a zero in /boot/grub/menu.lst, il che molto probabilmente farà caricare OpenSuSE alla mia macchina ogni volta che avvierò il mio PC perché è la prima opzione nel menu .lst.

È possibile che la seconda volta che riavvio il mio PC, Ubuntu venga caricato automaticamente? La terza volta che riavvio di nuovo, OpenSuSE potrebbe essere avviato mentre la quarta volta che riavvio, Ubuntu potrebbe caricarsi e così via?

In altre parole, come posso fare in modo che il mio computer esegua l'avvio del sistema operativo successivo in menu.lst, al successivo riavvio?


1
Ti dispiacerebbe aggiungere qualche dettaglio: stai usando Karmic (che usa Grub2)? Inoltre, condividi una partizione / boot tra le due distro? Oppure la partizione di avvio di una distro si collega ad entrambe le distribuzioni kernel / initrd, ecc?

Non è affatto strano! Lo facevo con una partizione Linux dedicata che ripristinava Windows usando Partimage. Ogni altro avvio andrebbe su Linux per un ripristino, quindi un riavvio immediato in Windows. (Ma ho usato LiLo quindi con l'interruttore -R IIRC.)

Risposte:


11

Inserisci qualcosa negli script di avvio da riscrivere menu.lst.

Quindi, Ubuntu deve scrivere una versione menu.lstche carica OpenSuSE e OpenSuSE deve scrivere una versione che carica Ubuntu.

Un modo relativamente sicuro per farlo sarebbe quello di avere 3 file, menu.lst, menu.lst.ubuntue menu.lst.SuSEe hanno gli script fanno:

cp menu.lst.ubuntu menu.lst

su SuSE e:

cp menu.lst.SuSE menu.lst

su Ubuntu.


9

Ho raggiunto la funzionalità che cercavo usando l'opzione "savedefault" di GRUB. Ho usato per impostare il valore per l'altro sistema operativo alla fine della voce di ciascun sistema operativo in menu.lst.

Grazie mille a tutti coloro che hanno cercato di aiutare. :)


1
+1 Stava per suggerire un salvataggio, ma mi hai battuto;)
chris,

3

Lilo può farlo.

Ma potresti considerare un semplice script in ciascun sistema operativo che imposta l' altro sistema operativo come predefinito di grub. Ad esempio, il seguente script modifica default 1un'impostazione in default 0:

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

(ed è molto simile a Vi. Esegui solo il primo comando per vedere cosa sta facendo.)

Sull'altro sistema operativo, è possibile eseguire la controparte:

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

Grazie jhs. Penso che funzionerà per me. Ma arriverò a LILO se non riesco a ottenere la funzionalità con GRUB.

2

Qual è la tua ragione / obiettivo per farlo?

Hai preso in considerazione solo l'esecuzione di due diverse macchine virtuali ? Se si possono prendere in considerazione le macchine virtuali, esistono diversi modi per farlo dall'interno della macchina host stessa, senza manomettere gli ospiti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.