esp分区中的EFI启动项文件有什么用

最近安装ubuntu系统遇到了头疼的问题,来回折腾引导程序和启动项。习惯了Windows的一键式安装,安装Linux时还真的玩不转。不过经过博主不懈的思考与测试,虽然最终因为硬盘问题放弃了安装ubuntu16,但是对EFI模式下的启动有了新的认知。

博主先后装了ubuntu16,deepin,ubuntu18,都顺风顺水,但是重新安装ubuntu16时,尝试多次均安装失败,解压系统文件一切正常,到了最后建立grub引导时,总是提示无法成功解压到target。开始是以为装了太多遍系统,把启动项文件搞坏了,或许是残留引导信息的问题。在网上查了许久,我决定用BIOS模式启动安装盘,但是不识别GPT格式分区,无法写入grub,穷逼博主不想掏钱买专业版diskgenius,也不想格式化全盘,于是乎放弃之,只能等待官方给出bug解决方案,或是选择ubuntu18。

为了解决问题,博主在网上查了不少资料,除了各种玄学说法,我还深入地去理解了EFI模式启动所需文件与流程。之前因为网上的资料太老,还停留在grub1或者是BIOS时代,导致博主跳了不少大坑。下面说一下我的思路。

GPT分区格式的磁盘会有保留分区esp,最基本的启动项参数是保存在主板的nvram里,ESP分区保存的是系统在EFI下启动必要的引导文件。这里面有三个文件夹,boot,EFI和system volume information。boot里只有一个文件,作用尚不确定,system volume information里保存的是卷标信息。主要说的是EFI文件夹,这里面有一个boot文件夹和以你电脑上已装系统命名的文件夹,这里面都是EFI模式启动需要的引导文件,大部分文件是efi格式的。有几个这样的文件夹,你的BIOS设置里就会有几个启动选项。

网上有一种说法是,boot里是从磁盘启动,启动项文件夹是从系统启动,这种说法是不准确的,而且我将boot下内容清空,也并不影响正常的启动,唯一要注意的一点,fbx64.efi文件跟启动时的磁盘检查有关,我删除后,磁盘检查信息行的汉字显示为空白框,但是不影响检查进程。

boot文件夹下会有一个bootx64.efi,这个是64位系统下的,当系统没有可启动项时,才会去寻找bootx64.efi引导,支持无盘启动。如果启动选项不为空,都是直接用对应系统的引导文件。安装window时会自动将该文件内容替换为windows EFI引导文件的内容,也就是Windows boot manager,网上说是bootmgfw.efi,这是win7的情况,win10下同名文件有几十个,不确定具体是哪一个。装ubuntu时会在boot文件夹下生成一个与bootx64.efi同级的grub.efi,但是经测试与bootx64一样,只作为无盘启动使用,对应的文件都能在ubuntu启动的文件夹里找到。

关于grub启动,网上有说法是,默认情况下stage1和stage1_5写在磁盘第一扇区,即MBR中,stage2写在系统对应分区,这种说法经博主分析,只适用于BIOS启动模式,而EFI模式下,启动菜单里的grub.efi就相当于stage1了,由于安装失败,博主尚未确定EFI模式下stage1_5的位置,但是在删除ubuntu系统没有删除启动项文件夹的情况下,grub命令行仍能调用,但不显示启动项菜单,所以初步猜测,stage1_5是和stage1写在一起的,stage2是写在用户指定位置的,就是安装ubuntu时,选择的安装启动引导器的位置。

网上关于EFI启动和grub引导,大部分都是几年前的资料了,因为条件有限,关于本文中的猜测不能一一验证,但是为大家提供一个比较新的思路,希望大家在摸索的过程中少走弯路。

esp分区中的EFI启动项文件有什么用相关推荐

  1. linux efi启动,在linux环境中利用efibootmgr管理efi启动项

    UEFI用来替代传统BIOS引导操作系统,学会修改UEFI启动项也变得十分重要,UEFI全称为:"统一的可扩展固件接口"(Unified Extensible Firmware I ...

  2. 在windows10基础上安装ubuntu16.04——解决分区时找不到用于efi启动项的问题

    首先非常感谢一位博主的文章,绝对是装双系统的说明书,非常详细.建议需要安装双系统的伙伴先大致阅读一下这篇博客:https://www.cnblogs.com/masbay/p/10745170.htm ...

  3. 在linux环境中利用efibootmgr管理efi启动项[添加、删除、改变顺序]

    在linux环境中利用efibootmgr管理efi启动项[添加.删除.改变顺序] 本例可以解决uefi双系统中启动顺序的问题,首先确保自己的机器为uefi固件 在Terminel中输入efiboot ...

  4. 删除UEFI启动中的多余启动项

      最近电脑又抽风了,安装系统总是安装不上,一直提示重新启动,这里多说一句,我的UEFI启动项中多了几个无用启动项,就算是将系统盘全全盘格式化也删除不了,因为它们在BIOS中,并不在我们的磁盘上,我怀 ...

  5. 双系统如何在Centos7中添加GRUB2启动项

    GRUB2是Centos7的默认引导加载程序.它可以轻松地加载所有的Linux发行版和其他操作系统.它提供一个菜单显示所有的操作系统.GRUB2具有高级特性以及一些基本特性,使其在所有Linux上都有 ...

  6. 服务器开机显示 efi,win10误删efi启动项无法开机怎么办?_网站服务器运行维护,windows,efi...

    win10虚拟网卡安装失败怎么办?_网站服务器运行维护 win10虚拟网卡安装失败的解决办法:首先依次点击[计算机的属性-设备管理器-网络适配器],查看是否有[虚拟网卡]:然后依次点击[操作-添加过时 ...

  7. 如何在Windows 7中添加快速启动项

    据国外媒体报道,毫无疑问的,在微软的最新一代客户端操作系统Windows 7中,Windows的图形用户界面是微软为用户带来的巨大创新. 而在Windows 7图形用户界面的变革中,变化最大的就是任务 ...

  8. 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项

    电脑中怎么查看启动项 腾讯视频/爱奇艺/优酷/外卖 充值4折起 现如今,电脑已经和人们的日常生活与工作息息相关了,当我们在使用电脑处理工作或其他事情的时候,如何查看其中的启动项呢?接下来就由小编来告诉 ...

  9. EasyUEFI 管理配置 Windows EFI 启动项

    EasyUEFI 管理配置 Windows EFI 启动项 1. EasyUEFI 软件下载 2. EasyUEFI 软件使用 1. EasyUEFI 软件下载 官方下载地址 CSDN下载地址 2. ...

最新文章

  1. 05-04-查看补丁更新报告
  2. 亲身体验后,为你安利 3 个远程桌面控制软件~
  3. LeetCode 42. Trapping Rain Water 【两种解法】(python排序遍历,C++ STL map存索引,时间复杂度O(nlogn))
  4. 在线做计算机考研题,2018年计算机考研真题及参考答案
  5. c语言聊天程序socket,今天打的代码。基于TCP的聊天程序。
  6. 基于Java+jsp+servlet的养老院管理系统设计和实现《收藏版》
  7. C语言-字符串处理函数strcat
  8. (81)FPGA复位激励(task)
  9. centos设置启动mysql,Centos设置开机启动Apache和Mysql
  10. SQLite3中核心C API
  11. Android -- 自动挂断电话
  12. 金融分析师 python_金融分析中的Python环境搭建
  13. 华为S2600T------v1版本
  14. Java基于SSH技术的毕业设计管理系统
  15. 发票系统KF网络报税服务器信息,增值税发票综合服务平台操作指南及注意事项...
  16. C# 下繁体字与简体字的转化
  17. 电脑hosts文件位置
  18. 光交删zone注意事项
  19. UE4Material_RainEffect(雨的效果)
  20. 511遇见易语言大漠脚本辅助从入门到提高

热门文章

  1. 支付宝人脸认证(安卓)
  2. Zigbee OSAL睡眠管理
  3. VRchat上传角色error无法保存蓝图解决
  4. 易企秀 背景音乐 下载
  5. 快给你的对象做一个微信公众号播报吧-java版
  6. word排版案例报告_导师:论文排版都搞不好,你拿什么去投稿?!
  7. 计算CDS中密码子的数量
  8. 《爱乐之城》月亮与六便士,你选哪个?
  9. HDU - 1425 sort
  10. 一文读懂 快速掌握示波器使用及原理