GRUB版本2.
GRUB版本2
是fedora和Ubuntu的默认引导加载程序。
GRUB 2配置文件位于/boot/grub/grub.cfg
(某些发行版将此文件放在/boot/grub2
中,以启用grub Legacy
和grub 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的计算机一起使用。