Charger une distribution Linux différente à chaque démarrage automatique de l'ordinateur?

15

J'ai deux distributions Linux (OpenSuSE, Ubuntu) installées sur deux partitions différentes. Chaque fois que je démarre ma machine, GRUB se charge, me permettant de sélectionner l'une des deux distributions.

Je ne veux pas que GRUB apparaisse, donc je limite le timeout à zéro dans /boot/grub/menu.lst, ce qui fera probablement charger ma machine OpenSuSE à chaque démarrage de mon PC car c'est la première option dans le menu .lst.

Est-il possible que la deuxième fois que je redémarre mon PC, Ubuntu se charge automatiquement? La troisième fois que je redémarre, OpenSuSE peut être démarré tandis que la quatrième fois que je redémarre, Ubuntu peut se charger et ainsi de suite?

En d'autres termes, comment puis-je faire en sorte que ma machine démarre le prochain système d'exploitation dans menu.lst, au prochain redémarrage?

Usman
la source
1
Pourriez-vous ajouter quelques détails: utilisez-vous Karmic (qui utilise Grub2)? De plus, partagez-vous une partition / boot entre les deux distributions? Ou la partition de démarrage d'une distribution est-elle liée au noyau / initrd des distributions, etc.?
Ce n'est pas bizarre du tout! J'avais l'habitude de le faire avec une partition Linux dédiée qui restaurerait Windows en utilisant Partimage. Tous les autres démarrages iraient à Linux pour une restauration, puis un redémarrage immédiat vers Windows. (Mais j'ai ensuite utilisé LiLo avec le commutateur -R IIRC.)

Réponses:

11

Mettez quelque chose dans les scripts de démarrage pour réécrire menu.lst.

menu.lstDemandez donc à Ubuntu d'écrire une version qui charge OpenSuSE et d'OpenSuSE d'écrire une version qui charge Ubuntu.

Une façon de le faire serait relativement sûr d'avoir 3 fichiers, menu.lst, menu.lst.ubuntuet menu.lst.SuSEet ont les scripts:

cp menu.lst.ubuntu menu.lst

sur SuSE et:

cp menu.lst.SuSE menu.lst

sur Ubuntu.

rjmunro
la source
9

J'ai atteint la fonctionnalité que je cherchais en utilisant l'option 'saveefault' de GRUB. J'avais l'habitude de définir sa valeur pour l'autre système d'exploitation à la fin de l'entrée de chaque système d'exploitation dans menu.lst.

Merci beaucoup à tous ceux qui ont essayé d'aider. :)

Usman
la source
1
+1 Était sur le point de suggérer une erreur de sauvegarde, mais vous m'avez battu;)
chris
3

Lilo peut le faire.

Mais vous pouvez envisager un script simple dans chaque système d'exploitation qui définit l' autre système d' exploitation par défaut de grub. Par exemple, le script suivant modifierait un default 1paramètre pour default 0:

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

(ed ressemble beaucoup à Vi. Exécutez juste la première commande pour voir ce qu'il fait.)

Sur l'autre OS, vous pouvez exécuter l'homologue:

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

la source
Merci jhs. Je pense que cela fonctionnera pour moi. Mais j'arriverai à LILO si je n'atteins pas la fonctionnalité avec GRUB.
2

Quelle est votre raison / objectif de faire cela?

Avez-vous envisagé de simplement exécuter deux machines virtuelles différentes ? Si les machines virtuelles peuvent être prises en compte, il existe un certain nombre de manières différentes d'accomplir cela à partir de la machine hôte elle-même, sans altérer les invités.

sybreon
la source