每次计算机自动启动时加载不同的Linux发行版吗?


15

我在两个不同的分区上安装了两个Linux发行版(OpenSuSE,Ubuntu)。每次启动机器时,GRUB都会加载,使我可以选择两个发行版之一。

我不希望GRUB出现,因此我将/boot/grub/menu.lst中的超时限制为零,这很可能使我的计算机在每次启动PC时都加载OpenSuSE,因为它是菜单中的第一个选项.lst。

第二次重新启动PC时,Ubuntu是否会自动加载?第三次重新启动时,OpenSuSE可能会启动,而第四次重新启动时,Ubuntu可能会加载等等?

换句话说,如何使我的机器在下次重启时引导menu.lst中的下一个操作系统?


1
您介意添加一些细节:您是否正在使用Karmic(使用Grub2)?另外,您是否在两个发行版之间共享一个/ boot分区?还是一个发行版的引导分区同时链接到发行版的内核/ initrd等?

一点也不奇怪!我曾经使用专用的Linux分区来执行此操作,该分区将使用Partimage恢复Windows。其他每一次引导都将进入Linux进行还原,然后立即重新引导回到Windows。(但后来我将LiLo与-R开关IIRC一起使用。)

Answers:


11

在启动脚本中放置一些内容以进行重写menu.lst

因此,让Ubuntu编写menu.lst加载OpenSuSE 的版本,并让OpenSuSE编写加载Ubuntu的版本。

一个相对安全的方式来做到这将有3个文件,menu.lstmenu.lst.ubuntu并且menu.lst.SuSE和有脚本这样做:

cp menu.lst.ubuntu menu.lst

在SuSE上:

cp menu.lst.SuSE menu.lst

在Ubuntu上。


9

通过使用GRUB的'savedefault'选项,我获得了所需的功能。我曾经在menu.lst中每个操作系统的输入结束时将其值设置为其他操作系统。

非常感谢所有尝试提供帮助的人。:)


1
+1即将建议使用savedefault,但您击败了我;)
chris

3

Lilo可以做到这一点。

但是您可能会考虑在每个操作系统中使用一个简单的脚本,将另一个操作系统设置为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

谢谢jhs。我认为这对我有用。但是,如果我无法使用GRUB实现功能,我将选择LILO。

2

您这样做的目的/目的是什么?

您是否考虑过只运行两个不同的虚拟机?如果可以考虑使用VM,则有多种不同的方法可以在主机内部进行操作,而不会影响来宾。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.