码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 拯救“消失的她”——双系统grub完美恢复方案


    双系统grub意外消失怎么办?
    不用重装系统、不用去维修店、不会丢数据,教你一招,完美恢复grub!

    背景

    我的电脑是windows和linux双系统,启动项使用的grub。某天准备切换linux时突然发现grub不见了。近期可疑操作有:更新BIOS、多次切换UEFI、添加第三方风扇管理软件。总之,目前开机直接转圈圈进windows,带有双系统选择界面的grub消失,linux系统自然也进不去了。重装linux系统当然可以恢复,但是成本太高了。多番查阅资料,最终定下通过linux live USB的方式来恢复grub。该方案通过live linux系统,挂载原有系统分区,然后借助chroot,在类似原系统开机环境下,直接重新安装grub。

    制作live usb

    去kali官网下载live镜像,插入U盘,在windows系统中使用 Etcher制作USB镜像。选择Live Boot
    使用 Etcher制作USB镜像

    修改bios启动顺序为USB优先启动

    进入live USB,选择forensic模式,这种审计模式下,不会干扰原有系统数据。

    恢复命令

    进入live linux系统后,需要根据原有linux系统的分区情况逐一挂载。(注意:每个人分区不一样,不要照抄命令)
    blkid命令可以查看硬盘分区详情,
    优先挂载根分区,以便其他分区挂载。
    我的命令如下:

          blkid
          mount /dev/nvme0n1p4 /mnt
          mount /dev/nvme0n1p5 /mnt/usr
          mount /dev/nvme0n1p1 /mnt/boot/efi/
          mount  --bind /dev /mnt/dev
          mount --bind /dev/pts /mnt/dev/pts
          mount --bind /proc /mnt/proc
          mount --rbind /sys /mnt/sys
          chroot /mnt
    

    注意sys分区挂载要用rbind,否则会报以下错误:

    然后安装grub,

    grub-install  /dev/nvme0n1
    update-grub
    

    成果验证及bug处理

    重新启动,拔出USB,可以看到grub回来了。

    但是……windows选项哪去了?去bios检查,两个系统都在,但grub里面没有!

    问题不大,grub更新后,默认关闭了其他系统的检测功能,修改grub参数即可。
    vi /etc/default/grub,去掉GRUB_DISABLE_OS_PROBER=FALSE前面的注释#使其生效,

    然后update-grub,

    再次重启验证,

    回来了,都回来了!
    最后,记得把bios里面的USB优先启动顺序改回去。

  • 相关阅读:
    【VMware vSphere】搭建属于自己的 vSphere 实验环境(1)——拓扑设计
    MySQL-基础
    golang常用库包:Go依赖注入(DI)工具-wire使用
    JavaScript系列从入门到精通系列第十篇:JavaScript中的相等运算符与条件运算符
    机器人学DH参数及利用matlab符号运算推导
    竟然可以在一个项目中混用 Vue 和 React?
    【算法练习Day22】 组合总和 III&&电话号码的字母组合
    COOKIE和SESSION及案例
    关于torch.load加载预训练模型时 造成的 临时分配的显存 不释放
    面试经典150题——路径总和
  • 原文地址:https://www.cnblogs.com/M4K0/p/17683642.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号