看介绍
GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.
==Briefly, a boot loader is the first software program that runs when a computer starts==. It is responsible for loading and transferring control to the operating system kernel software (such as the Hurd or Linux). The kernel, in turn, initializes the rest of the operating system (e.g. GNU).
可以看到grub是在计算机启动之后引导程序的,这里指的是操作系统。并且可以加载操作系统内核传递控制信息到内核中。
值得注意的是是grub是独立于操作系统而存在的,但是也可以通过操作系统修改grub的配置文件来修改启动引导项
随着grub项目的开发,由于许多新特性的加入,grub更名为了grub2。
如今我们在各个linux发行版的包管理器中下载的grub默认是grub2
许多linux操作系统在安装时会自动的为grub开辟一个分区并在操作系统中默认安装grub用来修改 boot loader.
首先为grub开辟一个分区大小为500W的boot分区就行,
使用==grub-installer==工具初始化boot分区
1 | grub-installer /dev/sda |
一些操作系统比如arch在安装操作系统时会将vmlinuz 安装在/boot分区下,因此我们在安装时需要首先挂载boot loader分区到/boot下面,然后安装grub到boot loader下面。
grub默认会将配置引导相关的文件放在/boot目录下面同样EFI文件也会安装在此目录下。
因此我们需要分别指定他们的位置
1 | grub-installer --boot-directory=/boot --efi-directory=/boot/EFI /dev/sda |
首先要编写 /etc/default/grub 文件然后使用==grub-mkconfig==命令生成grub.cfg
1 | e.g. |