Carregando distribuição Linux diferente sempre que o computador iniciar automaticamente?

15

Eu tenho duas distribuições Linux (OpenSuSE, Ubuntu) instaladas em duas partições diferentes. Cada vez que inicio minha máquina, o GRUB é carregado, permitindo que eu selecione uma das duas distribuições.

Como não quero que o GRUB apareça, limito o tempo limite a zero em /boot/grub/menu.lst, o que provavelmente fará com que minha máquina carregue o OpenSuSE toda vez que inicio o PC, porque é a primeira opção no menu .lst.

É possível que, na segunda vez em que reinicio meu PC, o Ubuntu seja carregado automaticamente? Na terceira vez que reinicio, o OpenSuSE pode ser inicializado enquanto na quarta vez, o Ubuntu pode carregar e assim por diante?

Em outras palavras, como posso fazer com que minha máquina inicialize o próximo SO no menu.lst, da próxima vez que for reiniciado?

Usman
fonte
1
Você se importaria de adicionar alguns detalhes: Você está usando o Karmic (que usa o Grub2)? Além disso, você compartilha uma partição / boot entre as duas distros? Ou a partição de inicialização de uma distro está vinculada ao distros kernel / initrd, etc?
Não é nada estranho! Eu costumava fazer isso com uma partição Linux dedicada que restauraria o Windows usando o Partimage. Qualquer outra inicialização iria para o Linux para uma restauração e, em seguida, uma reinicialização imediata no Windows. (Mas eu usei o LiLo então com o interruptor -R IIRC.) #

Respostas:

11

Coloque algo nos scripts de inicialização para reescrever menu.lst.

Portanto, o Ubuntu deve escrever uma versão menu.lstque carrega o OpenSuSE e o OpenSuSE escreve uma versão que carrega o Ubuntu.

Uma forma relativamente segura de fazer isso seria ter 3 arquivos, menu.lst, menu.lst.ubuntue menu.lst.SuSEe têm os scripts fazer:

cp menu.lst.ubuntu menu.lst

no SuSE e:

cp menu.lst.SuSE menu.lst

no Ubuntu.

rjmunro
fonte
9

Atingi a funcionalidade que estava procurando usando a opção 'savedefault' do GRUB. Eu costumava definir o valor para o outro sistema operacional no final da entrada de cada sistema operacional no menu.lst.

Muito obrigado a todos que tentaram ajudar. :)

Usman
fonte
1
+1 estava prestes a sugerir savedefault, mas você chegou antes de mim;)
chris
3

Lilo pode fazer isso.

Mas você pode considerar um script simples em cada sistema operacional que define o outro sistema operacional como o padrão do grub. Por exemplo, o script a seguir modificaria uma default 1configuração para default 0:

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

(ed é muito parecido com Vi. Execute apenas o primeiro comando para ver o que está fazendo.)

No outro sistema operacional, você pode executar a contraparte:

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

fonte
Obrigado jhs. Eu acho que vai dar certo para mim. Mas chegarei ao LILO se não conseguir obter a funcionalidade com o GRUB.
2

Qual é a sua razão / objetivo para fazer isso?

Você já pensou em executar duas máquinas virtuais diferentes ? Se as VMs puderem ser consideradas, há várias maneiras diferentes de fazer isso a partir da própria máquina host, sem adulteração dos convidados.

sybreon
fonte