Fedora 25 关于Grub2的操作

Fedora25现在已经用上了Grub2,虽在名称上是Grub的升级版,但其代码实际上被完全重写了。对于最终用户来讲,Grub2带来了若干改进,如:

  • 自动搜索可用的内核和硬盘中的可用系统。
  • 可支持NTFS等更多分区格式。
  • 可启动Windows、Mac OS X等多种系统。
  • 更人性化的设计,如键入命令时TAB补全很强大,输出很长时会分页显示等。

从配置的角度,Grub2主要有以下几点不同

  • /boot/grub/menu.lst被/boot/grub/grub.cfg所取代
  • 主配置文件grub.cfg不能直接被用户修改,而是由系统自动生成
  • 每当安装内核、更新Grub2或用户主动运行grub-mkconfig -o /boot/grub/grub.cfg(曾经是update-grub)后,Grub2会根据用户配置文件重新生成grub.cfg。
  • 可编辑的Grub2配置文件主要包括/etc/default/grub、和/etc/grub.d/下的各文件。
  • 分区命名方式有变,第一个分区现在是1而不是0,但第一个设备仍然以0开始计数,如(hd0, 1)表示第一块硬盘上的第一个分区。

Warning!使用Grub2时,不要手动编辑/boot/grub/grub.cfg!否则所做的修改在Grub更新或安装内核等情况下消失。修改了配置文件后,一定要运行update-grub才能使新的配置生效。

如果Grub2启动失败,会进入恢复模式,此时,屏幕上会显示 grub rescue> 字样。只要Grub2还在硬盘上,就可使用该控制台将其启动。博主把fedora装在了移动硬盘上,结果这个Grub2装在了windows这个盘里,当启动的时候没有插移动硬盘就会出现这个模式。

1
2
3
4
# 在 grub rescue> 环境下输入如下命令, (hdX,Y)为包含Grub2的分区
set prefix=(hdX,Y)/boot/grub
insmod (hdX,Y)/boot/grub/normal.mod
normal

把(hdX,Y)换成Grub2所在的分区,执行后应该就能看到启动菜单了。

常用命令如

1
2
3
4
5
# 重新生成配置文件
grub-mkconfig -o /boot/grub/grub.cfg

# 将Grub2安装到硬盘引导扇区
grub-install --root-directory=/ /dev/sda

当初想给grub加密的时候查了半天资料才找到的,源自各大维基以及GNU GRUB整理