openSUSE:YaST2 和 Perl 引导加载程序 Grub2 模块实现
此Wiki页面介绍我在为 实现 YaST 和 Perl 引导加载程序模块中所做的工作。
原理
- 仅仅尝试在 yast2 和 中实现缺失的模块,以支持 grub2(对比:GRUB)。
- 不修改或补丁 grub2 包,以达到上述目标。
- 使用 grub2 脚本安装引导加载程序和更新配置。
- 不对常用或核心组件进行侵入性更改,因此不会影响我们对其他模块(grub/lilo/elilo ..)所做的工作。
- perl-Bootloader 目前仍在**使用中**。我同意它很丑陋,并且我们将来最好不要再使用它。但请考虑以下几点,我仍然使用它(否则我会遇到其他麻烦:())。
- 更容易保留其中的bug修复
- 对 yast2 引导加载程序来说,代码更少,侵入性更小。由于 perl 引导加载程序作为 yast2 的实际引导加载程序安装和配置手段,它已被 yast2 用作许多常用功能依赖于它。这意味着我无法使用这些常用功能,并且需要完成引导加载程序模块中所需的所有任务。此外,如果其他模块或常用组件需要它,则必须对常用功能进行糟糕的更改。
特性
- 建议的安装位置,并提供更改的灵活性。
- 因为这是我们需要告诉安装脚本(grub2-install)的唯一事情:)
- 在引导扇区安装时使用 --force
- 安装摘要
- 在引导扇区安装时,使用通用的 MBR 引导代码,而不是 Windows 的引导代码。
模块在系统中的位置
- YaST2 引导加载程序
- /usr/share/YaST2/modules/BootGRUB2.ycp
- Perl 引导加载程序
- /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 引导加载程序可能需要管理相关设置。