openSUSE:YaST2 和 Perl 引导加载程序 Grub2 模块实现

跳转到:导航搜索

此Wiki页面介绍我在为 实现 YaST 和 Perl 引导加载程序模块中所做的工作。

原理

  1. 仅仅尝试在 yast2 和 中实现缺失的模块,以支持 grub2(对比:GRUB)。
  2. 不修改或补丁 grub2 包,以达到上述目标。
  3. 使用 grub2 脚本安装引导加载程序和更新配置。
  4. 不对常用或核心组件进行侵入性更改,因此不会影响我们对其他模块(grub/lilo/elilo ..)所做的工作。
  5. perl-Bootloader 目前仍在**使用中**。我同意它很丑陋,并且我们将来最好不要再使用它。但请考虑以下几点,我仍然使用它(否则我会遇到其他麻烦:())。
    1. 更容易保留其中的bug修复
    2. 对 yast2 引导加载程序来说,代码更少,侵入性更小。由于 perl 引导加载程序作为 yast2 的实际引导加载程序安装和配置手段,它已被 yast2 用作许多常用功能依赖于它。这意味着我无法使用这些常用功能,并且需要完成引导加载程序模块中所需的所有任务。此外,如果其他模块或常用组件需要它,则必须对常用功能进行糟糕的更改。

特性

  1. 建议的安装位置,并提供更改的灵活性。
    1. 因为这是我们需要告诉安装脚本(grub2-install)的唯一事情:)
    2. 在引导扇区安装时使用 --force
  2. 安装摘要
  3. 在引导扇区安装时,使用通用的 MBR 引导代码,而不是 Windows 的引导代码。

模块在系统中的位置

  1. YaST2 引导加载程序
    1. /usr/share/YaST2/modules/BootGRUB2.ycp
  1. Perl 引导加载程序
    1. /usr/lib/perl-5/vendor_perl/5.14.2/Bootloader/Core/GRUB2.pm

待办事项

grub2-efi

支持 grub2-efi 安装的模块的工作正在进行中。

用于操作选项的小部件

如果 yast2 引导加载程序可以提供用于编辑选项的小部件,那就太好了。现在您必须手动编辑 grub2 选项并为其生成新的配置。

vi /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

它还必须考虑将 sysconfig 设置(例如 /etc/sysconfig/bootloader)采用到 grub2 选项中。

图形启动菜单

目前这不应该成为 yast2/perl 引导加载程序的工作。大部分工作应该在 grub2 包(或另一个新包)中完成,以支持它。但如果需要,yast2/perl 引导加载程序可能需要管理相关设置。

开放的Bug列表

Bug 750897 grub2-install 无法安装到扩展分区