挂载ESP分区
sudo mount /dev/sda1 /mnt/boot/efi
重新安装 bootloader
apt-get install --reinstall grub-efi-amd64复制代码
2.2.3 刷新Grub2菜单,一般自动搜索已安装的系统形成启动菜单
sudo apt-get update复制代码
三、Grub2菜单更多内容
来自与:让Grub 2来拯救你的 bootloader:http://www.cnblogs.com/probemark/p/5857963.html
Grub 2 是一款功能强大的软件,它不是 bootloader 界的唯一,但却最受欢迎,几乎所有主流的桌面发行版都在使用它。
Grub 的工作有两个:首先,它用一个菜单展示计算机上所有已经安装的操作系统供你选择;其次,当你从启动菜单中选择了一个 Linux 操作系统后, Grub 便加载对应版本Linux 的内核,众所周知,使用 Linux 就离不开 bootloader ,然而它却是 Linux 发行版内部很少有人充分了解的部分。
1、Grub 2 最重要的部分是一堆文本文件和两个脚本文件,首先需要了解的是/etc/default/grub
,这是一个文本文件,你可以在里面设置通用配置变量和 Grub 2 菜单(见下方 “常见用户设置” )的其它特性。
2、Grub 2 另一个重要的部分是/etc/grub.d
文件夹,定义每个菜单项的所有脚本都放置在这里,这些脚本的名称必须有两位的数字前缀,其目的是:在构建 Grub 2 菜单时定义脚本的执行顺序以及相应菜单项的顺序。举个栗子:文件00_header
首先被读取,负责解析/etc/default/grub
配置文件,然后是 Linux 内核的菜单项,位于10_linux
文件中,这个脚本在默认的/boot分区为每个内核创建一个正规菜单项和一个恢复菜单项。
3、紧接着的是被第三方应用所调用的脚本,如30_os-prober
和40_custom
, os-prober 脚本为内核和其它分区里的操作系统创建菜单项,它能识别安装的Linux、 Windows、 BSD以及Mac OS X,当然如果你的硬盘布局比较独特,使得 os-prober 无法找到已经安装的发行版,你可以在40_custom
文件(见下方 “添加自定义菜单项”)中添加菜单项。
4、Grub 2 不需要你手动维护你的启动选项的配置文件:取而代之的是使用 grub2-mkconfig 命令产生/boot/grub/grub.cfg文件。这个功能会解析/etc/grub.d
目录中的脚本以及/etc/default/grub
设置文件来定义你的设置情况。
添加自定义菜单项
如果希望往 bootloader 菜单里添加菜单项,你需要在40_custom
文件里添加一个启动段boot stanza,例如,你可以使用它展示一个菜单项来启动安装在可移动 USB 驱动里的 Linux 发行版,假设你的 USB 驱动器是 sdb1 ,并且 vmlinuz 内核镜像和虚拟文件系统initrd都位于根 (/)目录下,在40_custom
文件中添加以下内容:
menuentry “Linux on USB” { set root=(hd1,1) linux /vmlinuz root=/dev/sdb1 ro quiet splash initrd /initrd.img }复制代码
相比使用设备和分区名,使用它们的 UUID 可以获得更精确结果,比如
set root=UUID=54f22dd7-eabe复制代码
使用如下命令来获得所有已连接的驱动器和分区的 UUID :
sudo blkid复制代码
你还可以为你磁盘上没被 os-prober 脚本找到的发行版添加菜单项,只要你知道该发行版的安装位置以及其内核和虚拟文件系统initrd的位置即可。