专栏首页理想,技术,生活 三重凑Linux + Windows 双系统,GRUB 突然不见了?!

Linux + Windows 双系统,GRUB 突然不见了?!

电脑一次睡眠未醒死机,强制重启后,长时间的等待给了我一种不好的预感。果然,发现没了熟悉的 GRUB 界面,反而直接进 Win10,进 BIOS 一看,发现没有 GRUB 的启动项了?...

故障描述

首先贴出环境,电脑的引导是 UEFI + GPT,系统是 Kali Liunx + Windows 10。Linux 下笔记本电脑盖上后睡眠,有时候会「醒不来」,打开后电脑 CPU 风扇狂转,只有长按电源键强制断电。前些天又是这样,长按断电关机重启后,一段长时间的等待给了我一种不好的预感,然后发现 GRUB 界面没了,开机直接进 Windows 10,进 BIOS 发现 GRUB 的启动项没了?...

原因分析

一开始赶紧拿起手机打开 Google,emmm... 输入什么关键字好呢?大脑一片空白,想着 BIOS 里的 GRUB 的启动项没了,那就恢复一下呗,就和恢复 Windows 的启动项一样。但是行动后,发现常用来帮别人重装系统的 U 盘——微 PE 的 WinPE 中的工具好像没办法,它只能恢复 Windows 的启动项。

行动受挫后才突然开窍,开机后的操作系统启动管理器是 Linux 下的 GRUB,进 Windows 也是通过 GRUB,应该要在 Linux 环境下重建 GRUB,而不是通过 WinPE 下修复 Windows 的工具。于是 Google 重建 GRUB U 盘,期间阅读分析搜索的结果,多次修改关键字,最后终于搜到有用的文章,并将问题顺利解决?。

Google 到的有用文章:

  1. 重新安装 grub-efi
  2. How to Repair, Restore, or Reinstall GRUB 2 with a Ubuntu Live CD or USB

看了第一篇文章中博主的分析,分析下我的原因:强制断电导致 BIOS 损坏,于是开机后主板自动从备份 BIOS 里恢复,EFI 启动记录就丢失,然后 GRUB 就消失了。

修复故障

1)准备 U 盘

先默默去 Windows 下载 Kali Linux,通过 Win32 Disk Imager 写进另一个 U 盘,然后重启狂按 ESC 启动 U 盘,进 Kali Live 系统。

2)挂载硬盘

因为用的是 U 盘中的系统,所以要先挂载电脑的硬盘到当前系统,先 lsblk 查看硬盘,再 fdisk -l /dev/sda 查看硬盘分区,最后挂载 Linux 系统的根分区,比如我的硬盘是 sda,Linux 系统的根分区是 sda6,则:

1

mount /dev/sda6 /mnt

Now bind the directories that grub needs access to to detect other operating systems, like so.

1 2 3 4

mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys

3)安装 GRUB

先用 chroot 命令改变程序执行时所参考的根目录位置:

1

chroot /mnt

安装 GRUB:

1 2 3

grub-install /dev/sda grub-install --recheck /dev/sda update-grub

退出后重启:

1

exit && reboot

开机时按 ESC 应该就可以看到 GRUB 的启动项了,如果不是默认,自己进 BIOS 修改一下启动项顺序就行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单干净给ubuntu18安装远程登录

    莲花海
  • Kubernetes 基于容器云构建devops平台

    本文以Kubernetes为基础,为基于java语言研发团队提供一套完整的devops解决方案。在此方案中,开发人员基于eclipse集成开发环境进行代码;开发...

    莲花海
  • 在 NexT 中使用 Valine 评论系统

    本文包括 NexT 主题的 v5 和 v6 两个版本的使用方法,以及对 TopX 页面的兼容处理。

    莲花海
  • 这群工程师,业余将中文 NLP 推进了一大步

    内容一览:什么?中文 NLP 和英文 NLP 研究的是两个方向?源远流长的汉语让 NLP 的探索,变得步履维艰?我们将在本文的内容里,一起回顾最近以来,那些给中...

    HyperAI超神经
  • 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference

    发布于 2018-04-24 10:03 更新于 2018-06...

    walterlv
  • PaddlePaddle发布新版API,简化深度学习编程

    PaddlePaddle是百度于2016年9月开源的一款分布式深度学习平台,为百度内部多项产品提供深度学习算法支持。为了使PaddlePaddle更加易用,我们...

    用户1386409
  • 高性能 PHP 开发框架 Agile Swoole

    需要将config/config.php中的daemonize设置为1或者true

    猿哥
  • MLSQL数据源开发指南

    那么我们如何实现自己的数据源呢?下面我们会分两部分,第一部分是已经有第三方实现了的标准Spark数据源的集成,第二个是你自己创造的新的数据源。

    用户2936994
  • 干货 | 两百条!微信小程序开发跳坑指南

    微信小程序开发过程中,经常会遇到各种坑及疑难问题,为了让各位在开发过程中少走弯路,因此极乐大叔整合了200条跳坑指南,请大家仔细阅读,日后开发绕开这些坑~ 跳坑...

    极乐君
  • tomcat学习|tomat中的server.xml的学习

    小刀博客: https://www.lixiang.red 小刀公众号: 程序员学习大本营

    微笑的小小刀

扫码关注云+社区

领取腾讯云代金券