记一次修复Linux引导

1. 发生了什么

昨天 windows10 突然弹出了更新的窗口,就怎么细想直接点了同意。今天一大早起床后打开电脑,
发现 rEFInd 不工作了,直接引导进入 windows10,立刻联想到肯定是昨天 windows10 更新搞得
鬼,垃圾MS,没辙了,只能手动修复吧。

2. 开始修复引导

首先想到的就是重新安装 rEFInd。进到 rEFInd 官网下载 rEFInd
然后遵循官网上的安装教程进行安装,步骤如下:

    1. win + x 打开一个管理员权限的 命令行窗口
    1. 执行命令 mountvol S: /S 挂载EFI分区到 S:
    1. 把下载的 refind.zip 解压后放到桌面
    1. 执行命令 xcopy /E %HOMEDRIVER%%HOMEPATH%\Desktop\refind\refind S:\EFI\refind
    1. 执行 S: 切换到EFI分区,然后 cd EFI\refind 切换到 refind 目录
    1. 删除不必要的驱动文件,仅留下与自己架构想符合的驱动文件。如 x64 系统就删掉 drivers_ia32drivers_aa64。我的是x64, 所以仅留下了drivers_x64,不删掉的花会拖慢 rEFInd 的启动速度,甚至可能会导致系统crash。详细文档在此。
    1. 关于rEFInd的配置文件,直接使用默认的就行了 copy refind.conf-sample refind.conf
    1. rEFInd设置为默认启动项 bcdedit /set "{bootmgr}" path \EFI\refind\refind_x64.efi
    1. 设置启动项的名字: bcdedit /set "{bootmgr}" description "*Boot rEFInd*"。 注意**不能丢, Boot rEFInd 可以替换成任意字符串,中文倒是没有尝试过,不知能不能支持。
    1. 重新启动

3. 遇到的问题和解决的过程

本以为按照上述的步骤重新安装rEFInd就可以了,还是图样啊。重以后 100% 不工作。再去翻文档,文档上给出了如下几个方案:

  • 方案1: 重命名 ESP 目录下的文件,文档在此。

  • 方案2: 通过 Linux live CD 启动到linux,然后通过 sudo apt-get install refind 安装 rEFInd,接着使用efibootmgrrEFInd 设置为默认启动项。

  • 方案3: 通过安装有 rEFInd 的CD引导到一个可用的系统,然后用efibootmgrbless或其他引导设置工具rEFInd 设置为默认引导。

我选择了方案2:

    1. 找来一个空U盘用 Deepin Boot Maker 制作了一个启动盘(我用的是DeepinLinux)
    1. U盘插上电脑后,开机选择U盘启动,选择 failsafe mode进入 Live 模式。
    1. 启动后通过 Ctrl + Alt + T 切出一个终端窗口,准备切换到主机系统:
1. mkdir -p root/usr root/etc
2. sudo mount /dev/sda8 root
3. sudo mount /dev/sda9 root/usr
4. sudo mount /dev/sda10 root/etc
5. sudo mount -t proc proc root/proc
6. sudo mount -t sysfs proc root/sys
7. sudo chroot root

这样就切换到主机系统了。

    1. 安装rEFInd 然后重启:sudo apt-get install refind && reboot (忘记将 refind 设置为默认启动项了,这也是为什么重启后仍然失败)

结局

然而重启以后还是没用,仍然引导到 windows 10。没办法,还是去翻文档。看到上面提到个叫easyUEFI的工具,去官网看看有个免费试用版,下载下来试试吧。

    1. 安装easyUEFI
    1. 选择管理启动序列,点进去后列出了几个启动项,包括之前安装的那个Boot rEFInd
    1. 选中看了一下,发现启动的位置竟然是 S:\EFI\refind\refind_x64.efi,难怪启动不了rEFInd。
    1. 点击编辑, 把启动位置改为 \EFI\refind\refind_x64.efi 并保存。
    1. 重新启动

这下终于引导到 rEFInd 了。。。。。

你可能感兴趣的:(记一次修复Linux引导)