热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

uefi能重置系统吗_UEFI引导的简单恢复方法

装系统,尤其是双系统,总是无法绕过引导的坑。linux的grub是非常复杂的引导系统,学习它非常累。而windows又不能引导linux。

装系统,尤其是双系统,总是无法绕过引导的坑。

linux的grub是非常复杂的引导系统,学习它非常累。而windows又不能引导linux。你可能会想,怎么就没有一种简单的引导方式,就好像引导光盘,引导u盘那样,插上去就能用呢?

因为传统的mbr引导设计得很小气,所以多个系统都拼命争夺那个小小的引导区域,而自己却又不懂得引导对方,所以就相互伤害,相互覆盖引导。但是,uefi横空出世,比较好的解决了这个问题。

但是如果你不熟悉uefi的原理,那么你会觉得这个uefi更加坑爹。电脑的东西,一定要先熟悉其原理,而不是浑水摸鱼,随便瞎搞,这样是没结果的。

uefi引导有两个条件:

1.有个引导区,叫ESP。

2.每个分区都是gpt分区格式的。这个分区格式是指用了新的分区表。

uefi可以兼容mbr传统格式,但没必要!旧的东西就是要被淘汰的。所以现在uefi的复杂性是因为兼容mbr,如果不去兼容,才能体现uefi的便利。

首先要在bios里面关闭兼容模式,csm 关了。安全启动也关了。然后能选的都选uefi。

设好之后,才是纯粹的uefi环境。

为什么uefi 引导会比较方便呢?因为以前是所有操作系统,都争夺一块小区域,现在uefi直接给你一个引导分区,每个系统只要把引导文件按照规定放在各自的文件夹,就ok了,大家相互可以不认识,也可以不知道对方是谁,也可以不知道怎么引导对方。这岂不是很完美?

esp就是这么一个地方,它实际上是一个普通的fat16格式(或fat32)分区(win98之前的默认格式),这种格式,几乎每个操作系统都认识,都能操作,所以就很便利。但是为了避免受到破坏,进入系统之后,系统会对其进行隐藏,所以要用特定的工具来访问它。

知道原理之后,就很容易设计引导方案了。

事实上,对windows来说,引导只需要两个文件,一个是引导程序,一个是配置文件。其中引导程序,只需要复制,而配置文件叫bcd,通过一个叫easybcd的工具可以配置。

当然,第一步你的硬盘必须先格式化为gpt格式的。但是如果你已经格式化了,也没关系,可以通过diskgenius的免费软件来转换成gpt格式,操作得当不会破坏数据。

esp分区新建如下目录结构:

efi/boot/

efi/microsoft/boot/

将windows系统里面的bootmgfw.efi 复制到第二个路径下,把配置好的bcd也复制过去。然后把bootmgfw.efi 复制一份,改名bootx64.efi复制到第一条路径下。

就这么简单,甚至第二步也不是必须的。bootx64.efi这里是计算机默认启动的路径,而microsoft下面的,是微软这个品牌的系统所使用的启动路径,如果bios足够聪明,它会直接在microsoft下面找引导程序.efi。

对于linux来说,同样的,它也可以建立一个linux的文件夹,或者随便什么名字的文件夹,把引导文件放进去就可以了。

特别的,bios 内部的存储区域还可以存储相关的引导路径信息(需要相关工具来设置这块区域),方便用户选择。所以为何有些系统的引导文件布局和以上有所不同。

除了esp分区,其他任何分区,都可以独立的被引导,甚至可以跨设备引导,因为gpt用一个很长的标记标识所有设备,可以认为是无冲突,独一无二的,因此理论上,不管引导文件存在那里,从那里开始引导,只要给出正确的设备号,都能找到对应的设备,从而进行正确的引导。因此,理论上当前设备esp有没有,也不是关键,只要在某个设备上有,这个引导程序可以引导所有连接到硬件系统的设备。这也是uefi 和gpt分区系统真正强大的地方,真正做到了随意引导,与位置无关。

比如我们可以把引导放在一个u盘里面,然后插上这个u盘才能使用电脑,这也是挺有趣的实践。不过我没试过。大家可以尝试一下。



推荐阅读
  • Linux环境下Redmine快速搭建指南
    本文将详细介绍如何在Linux操作系统中使用Bitnami Redmine安装包快速搭建Redmine项目管理平台,帮助读者轻松完成环境配置。 ... [详细]
  • ECharts 基础使用指南
    本文档提供了一个简单的 ECharts 使用示例,帮助初学者快速了解如何在网页中集成和使用 ECharts 创建图表。更多详细信息请参阅官方文档:https://www.echartsjs.com/zh/tutorial.html#5%20分钟上手%20ECharts ... [详细]
  • 深入理解Kafka架构
    本文将详细介绍Kafka的内部工作机制,包括其工作流程、文件存储机制、生产者与消费者的具体实现,以及如何通过高效读写技术和Zookeeper支持来确保系统的高性能和稳定性。 ... [详细]
  • 本文介绍了ThinkPHP框架的基本概念及其主要特性。作为一款遵循Apache许可证的开源框架,ThinkPHP不仅支持多种平台和Web服务器,还提供了丰富的功能以适应不同的开发需求。 ... [详细]
  • 本报告详细记录了在2018-2019学年网络安全技术课程中的实验过程,重点探讨了PC平台上逆向工程的基本方法和利用缓冲区溢出(BOF)漏洞的技术。通过一系列实验,加深了对计算机系统安全性的理解。 ... [详细]
  • Mac系统下解决sh: ./configure: Permission denied错误的方法
    在Mac操作系统中,当尝试运行配置脚本时,可能会遇到权限被拒绝的错误提示。本文将详细解释这一问题的原因,并提供两种有效的解决方法。 ... [详细]
  • 本文介绍了数字音视频编解码技术标准,特别是中国自主研发的AVS标准,及其在短视频软件开发中的应用。文章探讨了AVS标准的发展历程、技术特点以及与国际标准的对比。 ... [详细]
  • Python基础入门:理解字符集与编码
    本文首先探讨了计算机的基本工作原理——二进制系统,进而深入介绍了字符集的概念及其在不同编码标准(如ASCII、GB2312、GBK、Unicode及UTF-8)中的应用。此外,文章还简要介绍了Python的安装、基本运行环境配置、变量定义、字符串处理、用户输入输出、条件判断及循环控制结构。 ... [详细]
  • 在尝试将SpringBoot与MyBatis框架进行集成时,遇到了一个常见的问题:org.apache.ibatis.builder.BuilderException。此错误通常指示XML配置文件中存在语法或结构上的问题。本文将探讨具体原因及解决方案。 ... [详细]
  • 精选Unity开源项目:UniRx实现响应式编程
    本文介绍了Unity中的响应式编程框架——UniRx,探讨了其在解决异步编程难题中的应用及优势。 ... [详细]
  • 本文介绍了如何在Linode服务器上以root用户身份安装Xubuntu,并解决尝试启动图形界面时遇到的'无屏幕找到'错误。 ... [详细]
  • 本文详细解析了muduo库中的Socket封装及字节序转换功能。主要涉及`Endian.h`和`SocketsOps.h`两个头文件,以及`Socket.h`和`InetAddress.h`类的实现。 ... [详细]
  • 使用Solr从MySQL导入数据构建全量索引
    为了更好地掌握Solr的各项功能,本文档将在本地Windows环境中演示如何从MySQL数据库中导入数据至Solr,并构建全量索引。这将有助于开发者熟悉Solr的数据处理流程,尤其是在无法直接在生产服务器上进行实践的情况下。 ... [详细]
  • C#反射reflection
    C#shanzm目录简介引入1.新建类库2.类库的使用3.反射反射实例1反射实例2反射实例3简介反射(reflection)是什么?在《精通C#》中是这么说的“反射就是一个运行库发 ... [详细]
  • Windows 7 64位系统下MySQL最新版安装指南
    本文详细介绍了在Windows 7 64位操作系统中安装最新版本MySQL服务器的过程,包括安装前的准备、具体步骤及注意事项,旨在帮助读者顺利安装并配置MySQL。 ... [详细]
author-avatar
淡淡木香coolgirl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有