LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 330|回复: 0

设置fallback模式

[复制链接]
发表于 2024-1-21 23:51:46 | 显示全部楼层 |阅读模式
GRUB支持一种备用机制,如果默认的启动项失败,它可以引导一个或多个其他项。如果需要的话,您可以指定多个备用项。

假设您有三个系统,A'、B'和C'。A'是您默认希望引导的系统。B'是一个备份系统,应该可以安全引导。C'是另一个备份系统,在`B'无法正常引导时使用。

那么您可能希望GRUB引导A'、B'和`C'中可引导的第一个系统。可以按以下方式编写配置文件:

     default saved        # This is important!!!
     timeout 10
     fallback 1 2         # This is important!!!

     title A
     root (hd0,0)
     kernel /kernel
     savedefault fallback # This is important!!!

     title B
     root (hd1,0)
     kernel /kernel
     savedefault fallback # This is important!!!

     title C
     root (hd2,0)
     kernel /kernel
     savedefault

        Copied!

请注意,配置文件中使用了default saved',fallback 1 2'和`savedefault fallback'。在这个配置中,GRUB默认引导一个已保存的项,并将一个备用项保存为下一个引导项。

当GRUB尝试引导A'时,GRUB将1'保存为下一个引导项,因为fallback命令指定1'是第一个备用项。而1'对应的是B',所以GRUB将在下一次引导时尝试引导B'。

同样地,当GRUB尝试引导B'时,GRUB将2'保存为下一个引导项,因为fallback指定2'作为下一个备用项。这确保在引导B'后,GRUB将引导`C'。

值得注意的是,无论是在GRUB本身引导项失败还是在A'或B'启动您的系统失败时,GRUB都会使用备用项。因此,这个解决方案确保即使GRUB找不到您的内核或内核发生崩溃,您的系统也能够启动。

然而,当A'正确启动或您修复A'后,您需要运行grub-set-default,因为GRUB始终将下一个引导项设置为备用项。您可以在启动脚本(如rc.local)中运行这个命令来将`A'设置为默认引导项:

     # grub-set-default 0


这里的0'是系统A'的引导项号码。

如果您想查看当前的默认引导项,可以查看文件/boot/grub/default(或某些系统中的/grub/default)。由于该文件是纯文本文件,您可以直接使用cat命令查看。但强烈建议不要直接修改该文件,因为如果您以意外的方式更改该文件,GRUB可能无法保存默认引导项在该文件中。因此,当您需要更改默认引导项时,请使用grub-set-default命令。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表