windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;
之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中;我首先通过磁盘精灵,把efi中启动文件拷贝到现有的windows安装盘中,重新启动后成功从新的efi分区进入windows; 然后开始进行恢复fedora系统;这时候,有两种办法,一种是重新安装 linux; 另外一种方法就是重新修复grub引导;因为对linux比较了解,我选择了后者;首先参考了几篇已经实践的博客;
Fedora 29 引导修复:
- 创建修复环境:
- 制作live cd 或者 启动盘;
- 启动进入live os
- sudo -i
- 创建系统chroot环境:
- mkdir -p /mnt/fedora
- mount /dev/fedora/root /mnt/fedora
- mount /dev/sda2 /mnt/fedora/boot (挂载boot, 如果boot 分区单独分区的话)
- mount -t proc proc /mnt/fedora/proc
- mount -o bind /dev /mnt/fedora/dev
- mount -o bind /sys /mnt/fedora/sys
- mount -t devpts devpts /mnt/fedora/dev/pts
- mount -t efivarfs efivarfs /mnt/fedora/sys/firmware/efi/efivars
- chroot /mnt/fedora
- 更新修复的环境并安装grub2:
- yum makecache
- dnf install grub2-efi grub2-efi-x64-modules shim (安装系统为 64位)
- grub2-install --recheck /dev/sda1 (sda1 为efi 分区)
- exit (退出chroot, 好像我在里面使用 grub2-mkconfig 一直阻塞)
- 自动生成grub.cfg,用于启动,默认生成的文件肯能启动不成功,建议手动装载linux内核:
- mount /dev/sda2 /boot (启动分区 sda2)
- mkdir /mnt/efi
- mount /dev/sda1 /mnt/efi (efi分区 sda1)
grub2-mkconfig -o /mnt/efi/EFI/fedora/grub.cfg(efi启动时,可以索引到其他磁盘上的系统,比如windows10 系统等)
grub2-mkconfig -o /boot/grub2/grub.cfg
- grub2 手动引导加载linux内核:参考 Using the GRUB2 boot prompt
- insmod part_gpt
- insmod ext2
- insmod lvm
- insmod xfs
- ls
- set root=(hd0,gpt2)
- linux (hd0,gpt1)/vmlinuz-5.0.0-1.fc16.i686 root=/dev/dm-2 rhgb quiet selinux=0 (此处参数可以参考)
- initrd (hd0,gpt1)/initramfs-5.0.0-1.fc16.i686.img (此处参考书可以参考)
- boot(重新启动)
- grub2-mkconfig -o /boot/grub2/grub.cfg 进入系统后,重新修复引导;
- 当然也可以在之前自动生成的启动项的基础上修改;在grub2 启动时使用 e 快捷键进入修改界面,并使用ctrl+x执行修改结果;
- 清理现场:
- reboot;至此,重启并拔掉live usb,使用efi模式引导修复的系统,完成启动;
- 注意:此时windows efi的引导还在,只是被grub2覆盖了, 先启动grub2;当然我们可以使用磁盘精灵;将windows efi 拷贝到另外一个单独的分区;
- 启动后需要重新创建 grub2 cfg;使用上述 grub2-mkconfig 命令,在 /boot/efi/EFI/fedora/grub.cfg 和 /boot/grub2/grub.cfg 两个位置覆盖更新;
- 最后,祝您使用愉快!此教程总结自实际修复过程中,如果您有问题,欢迎留言咨询;我最后是在自动生成的项目的基础上,结合手动修改引导成功的;
如果你对linux的启动机制,以及mbr,efi 等不是很了解;建议还是重新安装系统为好,防止把现有的windows系统搞坏;当前很多的pc机,都是基于冯诺依曼结构设计,计算机的中心是存储;所以要保护好磁盘上的分区数据不被破坏;重新划分磁盘的时候,也要多加小心;
保持更新,转载请注明出处:https://www.cnblogs.com/xuyaowen/p/grub-rebuild-after-installed-windows.html ;更多内容请关注cnblogs.com/xuyaowen;
参考链接:
- https://www.cnblogs.com/younc/p/5033995.html (可以参考)
- https://my.oschina.net/NorthOcean/blog/192131?fromerr=05yQWmOZ (可以参考,但不完全适合)
- https://blog.51cto.com/shenghao/1212813?source=drt (可以参考,但是有错误)
- https://docs.pagure.org/docs-fedora/the-grub2-bootloader.html (我使用的fedora29, 使用此文档最好, 但是此文章比较复杂,修复引导请看我自己的操作记录)
- https://blog.51cto.com/shenghao/1212813?source=drt (可以参考,提供一种思路)
windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;的更多相关文章
- win10 ubuntu双系统安装后无法引导进入ubuntu
之前按照先装windows后装ubuntu的方式装的系统,都可以引导到ubuntu,无论是将ubuntu挂在到/boot在windows用easy BCD建立ubuntu引导,还是将ubuntu挂在到 ...
- 物理机安装Kali Linux + Windows10双系统安装教程
转自 https://www.linuxidc.com/Linux/2018-08/153429.htm 一.镜像下载: 根据需求下载自己需要的版本 从官网下载kali 2018.2 的安装包:htt ...
- Ubuntu18.04 + Windows10 双系统安装
此处忽略Windows10安装!!! 准备 安装环境 OS:Windows10 CPU:Intel(R) Core(TM) i5-10600KF CPU @ 4.10GHz 4.10 GHz GPU: ...
- windows和ubuntu下git commit提交后如何保存和退出,回到命令行
问题一: windows下git commit后会进入vim界面,不知道怎么操作 解决办法: 1.输入小写字母i,此时进入编辑模式,可以输入你想输入的内容 2.按下esc键,此时退出编辑模式,输入英文 ...
- ajax局部刷新后,如何让局部中的百度分享重新加载
我这个人不怎么喜欢说太多话,看几个图你们就懂了 Ajax前 Ajax之后 原因分析 解决方法 收工 百度分享是集成了众多主流第三方网站分享和收藏按钮的工具. 通过百度分享轻松将主流第三方网站的分享按钮 ...
- windows10 命令行修复系统引导
文章介绍的方法适用于拥有一个刻录有原版win10安装镜像的用户 下载地址:https://www.microsoft.com/zh-cn/software-download/windows10 首先进 ...
- Day003_linux基础_系统启动过程及系统安装后优化
Linux系统启动过程: 打开电源开关开机 BIOS自检 MBR引导 grub内核菜单选择 加载内核kernel 运行init进程,系统初始化 然后读取/etc/inittab 配置文件,当前系统所在 ...
- 引导加载程序之争: LILO 和 GRUB
在不考虑他们的工作或专业情况下,所有 Linux 用户都会使用的是哪个工具?引导加载程序.通过本文了解引导加载程序的工作原理,认识两个流行的引导加载程序 LILO(LInux LOader)和 GNU ...
- (3)打造简单OS-MBR引导区转移加载简单程序(突破512限制)
在第一节<(1)汇编写入引导区,虚拟机启动步骤>中讲解到一个简单屏幕显示一川字符串,第二节讲到BIOS启动过程! 第一节中基本原理就是将那个汇编代码用nasm汇编器进行汇编成二进制,然后把 ...
随机推荐
- Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案
项目是集成了Spring Boot和Spring Data,然后昨天简单Jpa和Spring Boot配置完成,开始进行公司项目的重构,然后出现了这个问题.当时是在网上找了好久.后来发现时java ...
- SpringBoot打成war包,部署Tomcat服务器
1: 创建spring boot项目 使用 Spring initializr 可以直接选择创建包的方式 也可以选择在Pom中更改 <groupId>com.dgw</grou ...
- 【Python还能干嘛】爬取微信好友头像完成马赛克拼图(千图成像)~
马赛克拼图 何谓马赛克拼图(千图成像),简单来说就是将若干小图片平凑成为一张大图,如下图路飞一样,如果放大看你会发现里面都是一些海贼王里面的图片. Our Tragets 爬取所有微信好友的头像
- 谁说微服务是Spring Cloud的独角戏?Service Mesh了解一下?
Service Mesh 的概念自 2017 年初提出之后,受到了业界的广泛关注,作为微服务的下一代发展架构在社区迅速发酵,并且孵化出了诸如 Istio 等广受业界关注的面向于云原生 (Cloud N ...
- 区块链学习笔记:D04 区块链在各行业领域的应用(二)
这节课主要是政务领域.版权存证领域.能源领域的应用案例介绍 1.房屋租赁联盟链 特点:真实可信.透明补贴.便于追溯.公共监督 节点:房屋运营节点.房管局节点.社保局节点.财政局节点.教育部门节点(多节 ...
- 源码分析 RocketMQ DLedger 多副本存储实现
目录 1.DLedger 存储相关类图 1.1 DLedgerStore 1.2 DLedgerMemoryStore 1.3 DLedgerMmapFileStore 2.DLedger 存储 对标 ...
- 15.Django基础十一之认证系统
一 auth模块 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个 ...
- 使用 NTP/Chrony 同时 Centos7 网络时间
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,提供高精准度的时间校正服务. 在 Centos ...
- Golang中的布隆过滤器
目录 1. 布隆过滤器的概念 2. 布隆过滤器应用场景 3. 布隆过滤器工作原理 4. 布隆过滤器的优缺点 5. 布隆过滤器注意事项 6. Go实现布隆过滤器 1. 布隆过滤器的概念 布隆过滤器(Bl ...
- .NETCore 访问国产达梦数据库
前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发.销售与服务,同时可为用户提供大数据平台架构咨询.数据技术方案规划.产品部署 ...