GRUB版本2.

时间:2020-02-23 14:38:13  来源:igfitidea点击:

GRUB版本2是fedora和Ubuntu的默认引导加载程序。
GRUB 2配置文件位于/boot/grub/grub.cfg(某些发行版将此文件放在/boot/grub2中,以启用grub Legacygrub 2)。

grub.cfg是从/etc/default/grub文件和/etc/grub.d目录的内容生成的。
我们应该修改或者添加到这些文件以配置GRUB 2.进行更改后,必须通过执行更新-grub命令显式重建grub.cfg文件。

这是一个例子/etc/default/grub文件:

GRUB DEFAUL T=0
GRUB_ HIDDEN_ T IMEOUT=O
GRUB HIDDEN_ T IMEOUT_ QUIET=true 
GRUB T IMEOUT=10 
GRUB_ DISTRIBUTOR=、Lsb_ release -i -S 2> /dev/null | | echo Debian
GRUB_ CMDLINE_ LINUX_ DEFAULT="quiet splash"
GRUB_ CMDLINE_ L INUX=
””

我们可以从上面的示例中看到,此文件包含GRUB 2菜单设置。
我们可以选择默认设置的操作系统,背景图像,超时等。

主GRUB 2脚本位于/etc/grub.d目录内。
以下是Ubuntu中此目录的内容:

以下是每个脚本的简要说明:

  • 00_HEADER/etc/default/grub文件中加载grub设置的脚本。
  • 05_debian_theme定义了背景,颜色和主题。
  • 10_Linux加载已安装的分发的菜单条目。
  • 20_linux_xen- 加载Xen虚拟机管理程序
  • 20_memtest86 +加载Memtest实用程序。
  • 30_OS-prober扫描其他操作系统的硬盘,并将其添加到启动菜单中。
  • 40_custom我们可以使用的模板来创建要添加到引导菜单的其他条目。

在Grub 2中,分区以1而不是来自0开始编号。
这些设备仍然是从0编号的。
这意味着"SDA1"是"HD0,1",而不是"HD0,0",与GRUB遗产一样。

添加一个新的grub脚本

要添加新引导选项,我们需要创建一个名称中的"xx_前缀"(其中"XX"是一系列数字)的新文件。
如果希望将新条目放在其他方面,请使用较低的数字,如果我们希望将其放置在其他方面,请使用更高的数字。

例如,在操作系统的默认条目后,将放置12_name,而"07_name"将在"10_linux"条目之前放置。

这是一个示例脚本:

/etc/grub.d$ cat 45_example
#! /bin/sh -e
echo "String"
cat << EOF
menuentry "OS Name" {
set root=(hdX,Y)
Linux /boot/vmlinuz
initrd /boot/initrd.img
EOF

以下是脚本中每行的简要说明:

#!//bin/sh -e使用bash shell执行脚本。

echo"string"- 设置运行更新机时将看到的字符串。
Cat << Eof 定义了实际引导条目的开始。
menuentry "OS Name" 设置菜单条目的名称。

set root =(hdx,y)- 设置根设备。

linux/boot/vmlinuz- 指定包含Linux内核的文件。

initrd/boot/initrd.img指定初始内存磁盘。

eof- 结束grub。

与GRUB Legacy不同,GRUB 2旨在与BIOS和基于EFI的计算机一起使用。