Загрузка разных дистрибутивов Linux каждый раз, когда компьютер запускается автоматически?

15

У меня есть два дистрибутива Linux (OpenSuSE, Ubuntu), установленных на двух разных разделах. Каждый раз, когда я запускаю свой компьютер, GRUB загружается, позволяя мне выбрать один из двух дистрибутивов.

Я не хочу, чтобы GRUB появлялся, поэтому я ограничиваю тайм-аут до нуля в /boot/grub/menu.lst, что, скорее всего, заставит мою машину загружать OpenSuSE каждый раз, когда я запускаю свой ПК, потому что это первая опция в меню. .lst.

Возможно ли, что при второй перезагрузке компьютера Ubuntu загружается автоматически? В третий раз, когда я перезагружаюсь снова, OpenSuSE может загружаться, а в четвертый раз, когда я перезагружаюсь, Ubuntu может загружаться и так далее?

Другими словами, как я могу заставить мою машину загружать следующую ОС в menu.lst при следующем перезапуске?

Усман
источник
1
Не могли бы вы добавить некоторые детали: используете ли вы Karmic (который использует Grub2)? Кроме того, вы разделяете раздел / boot между обоими дистрибутивами? Или загрузочный раздел одного дистрибутива связан с ядром дистрибутива / initrd и т. Д.?
Это совсем не странно! Раньше я делал это с выделенным разделом Linux, который восстанавливал бы Windows с помощью Partimage. Любая другая загрузка идет в Linux для восстановления, а затем немедленной перезагрузки обратно в Windows. (Но тогда я использовал LiLo с ключом -R IIRC.)

Ответы:

11

Поместите что-нибудь в сценарии запуска, чтобы переписать menu.lst.

Итак, menu.lstпусть Ubuntu напишет версию, которая загружает OpenSuSE, и пусть OpenSuSE напишет версию, которая загружает Ubuntu.

Относительно безопасный способ сделать это будет иметь 3 файлов menu.lst, menu.lst.ubuntuа menu.lst.SuSEи есть скрипты сделать:

cp menu.lst.ubuntu menu.lst

на SuSE и:

cp menu.lst.SuSE menu.lst

на Ubuntu.

rjmunro
источник
9

Я достиг функциональности, которую искал, используя опцию «savedefault» GRUB. Я использовал для установки его значения для другой операционной системы в конце ввода каждой ОС в menu.lst.

Большое спасибо всем, кто пытался помочь. :)

Усман
источник
1
+1 Собирался предложить savedefault, но вы меня опередили;)
Крис
3

Лило может сделать это.

Но вы можете рассмотреть простой сценарий в каждой ОС, который устанавливает другую ОС в качестве grub по умолчанию. Например, следующий скрипт изменил бы default 1настройку на default 0:

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

(ed очень похож на Vi. Запустите только первую команду, чтобы увидеть, что он делает.)

На другой ОС вы можете запустить аналог:

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

источник
Спасибо Я думаю, что это сработает для меня. Но я доберусь до LILO, если мне не удастся достичь функциональности с GRUB.
2

Какова ваша причина / цель сделать это?

Рассматривали ли вы просто запуск двух разных виртуальных машин ? Если виртуальные машины могут быть рассмотрены, есть ряд различных способов сделать это изнутри самого хост-компьютера, не вмешиваясь в гостей.

sybreon
источник