GRUB
GNU GRUB (Grand Unified Bootloader) 是一个多重引导
供应商: 自由软件基金会,公司。
开发者: 自由软件基金会,公司。
许可: GNU 通用公共许可证
网站: https://gnu.ac.cn/software/grub/
GRUB2 和 GRUB Legacy
GRUB2 现在是 openSUSE 中的默认引导加载程序,取代了 GRUB Legacy(GRUB 版本 0.9x)。GRUB2 比 GRUB Legacy 具有更高级的功能。GRUB Legacy 仍然可用,但不再积极开发。
有关 GRUB2 的更多信息可以在 此处找到。
GRUB2
GRUB2 在 btrfs /boot 上
由于 GRUB2 无法写入 btrfs,请参阅 [1],因此在 GRUB2 内部写入 /boot/grub2/grubenv 存在问题,例如在使用 /etc/default/grub 中的 GRUB_SAVEDEFAULT 时。
作为解决方案,openSUSE 修复了 GRUB2,以允许将易失的 grubenv 数据存储在 btrfs /boot 分区的一个保留块中。它将该块的位置和大小存储在“原始”/boot/grub2/grubenv 中,格式为“env_block=512+1”,其中 512 表示分区内的偏移量,“1”表示大小。两个值都以通常为 512 字节的文件系统扇区为单位。因此,要检查存储在那里的数据,您可以使用
dd if=/dev/yourbootpartition bs=512 skip=512 count=1
但是,使用 grub2-editenv 命令正确读取和调整这些值。
从损坏的 grubenv 中恢复
如果 GRUB2 抱怨
Error: invalid environment block. Press any key to continue...
以下步骤允许重新创建它
rm /boot/grub2/grubenv grub2-editenv - unset dummy
“unset”步骤是必要的,以便实际设置保留的 btrfs 扇区中的存储,并将位置存储在 /boot/grub2/grubenv 中,该文件应包含
# GRUB Environment Block # WARNING: Do not edit this file by tools other than grub2-editenv!!! env_block=512+1 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
如果您省略了此步骤,“env_block”值仍然会丢失,并且 GRUB2 仍然无法存储变量。
支持指南
外部链接
- 引导 - Wikipedia 对计算机引导的解释。
- GNU GRUB 在 Wikipedia 上的描述。
- 命令列表 适用于 GRUB 和 GRUB Legacy,在 GRUB wiki 上。
- GRUB2 的家园
- GRUB2 文档
- 故障排除 Grub2 (Ubuntu)
在内核中启用 32 位 x86 支持
从 openSUSE Leap 16.0 开始,内核默认禁用 32 位 x86 支持。
要启用它,用户可以安装 `grub2-compat-ia32` 包,该包可确保内核使用 `ia32_emulation=1` 参数启动。
sudo zypper install grub2-compat-ia32
安装该软件包后,需要系统重启才能使更改生效。
这使得在 Steam 或通过 wine 运行 32 位应用程序(例如游戏)成为可能。
有关缺少 32 位库的相关故障排除,请参阅 Steam 故障排除 wiki 页面。
