UEFI下的Grub2重装

由于加入了Windows Insider计划,win10频繁更新,在某次更新中丢失了grub2的引导,开机默认进入Windows Boot Manager,无法进入Debian。于是便开始查找各种资料修复grub2。

本机环境

系统:Windows 10(位于SSD) + Debian stretch(位于HDD)
引导方式:UEFI (SSD和HDD均为GPT分区)

使用工具

  • 使用rufus制作的Debian Live USB启动盘

修复步骤

  1. 重启并按F7(本机为神舟系列,请根据机型自行更改)进入启动菜单,选择USB进入Debian Live环境(建议选择纯英文的Debian Live,中文环境下终端会出现乱码)
  2. 打开终端,使用sudo passwd root修改root用户密码(因为不知道Debian Live中root用户默认密码)
  3. 输入su切换到root用户下(防止每次命令前都要输入sudo)
  4. 使用fdisk -l查看各磁盘分区信息,找到efi(boot)和linux 根目录对应的分区
  5. 挂载各个分区,假设efi分区为sda2,根目录为sda3

    mount /dev/sda3 /mnt              //将/mnt挂载为根目录
    mount /dev/sda2 /mnt/boot/efi
    mount -t proc /proc /mnt/proc     //使用-t指定挂载类型,挂载proc文件系统
    mount -t sysfs /sys /mnt/sys      //挂载sysfs文件系统
    mount -o bind /dev /mnt/dev          //亦可使用mount --bind,将live系统中的/dev挂载到/mnt/dev
    mount -t devpts devpts /mnt/dev/pts
    chroot /mnt     将/mnt作为系统根目录    
    
  6. 重装grub2

    grub-install /dev/sda2 --targe=x86_64-efi      //默认安装32位,需使用参数指定为64位
    update-grub2
    
  7. 重启即可