操作系统学习

问题:

因为想用傲梅来给系统盘扩容,导致无法进入操作系统,报错如下:

无法加载应用程序或操作系统,原因是所需文件丢失或包含错误.

文件:Windowslsystem32lwinload.efi错误代码: 0xc000007b

你需要使用恢复工具。如果没有任何安装介质(0如光盘或 USB设备),请联系你的电脑管理员或电脑/设备制造商。

为了解决这个问题,网上有傲梅给到的解决方案:

傲梅解决方案:Winload.efi丢失或损坏怎么办?[5种方法]

但是我有一个神仙操作,导致后续有很多奇怪不一样的点,很多操作都是拒绝访问 的:

里面涉及了很多关键的概念:

EFI

EFI(Extensible Firmware Interface)

概念

  • EFI(尤其是 UEFI,统一可扩展固件接口)是替代传统 BIOS 的新一代启动标准。

  • 在 EFI 模式下,操作系统的引导依赖于 EFI 系统分区(ESP),而不是传统的 MBR。

工作流程

  1. 加载 UEFI 固件:计算机开机后,UEFI 固件会读取 EFI 系统分区。

  2. 加载引导程序 :EFI 系统分区中存储着操作系统的引导文件(如 Windows 的 bootmgfw.efi 或 Linux 的 grubx64.efi)。

  3. 启动操作系统:UEFI 固件将控制权交给 EFI 引导程序,引导程序加载操作系统内核并启动系统。

MBR

MBR 位于磁盘的第一个扇区(0扇区),它的作用是启动计算机并引导操作系统的加载。MBR 中的引导代码负责执行以下操作:

  • 定位系统分区:通过读取 MBR 中的分区表来确定操作系统所在的分区。分区表中存储了各个分区的起始位置、大小等信息。

  • 加载引导程序 :MBR 中的引导程序会根据分区表的信息,加载 活动分区(通常是存放操作系统的分区)上的引导程序。

  • MBR 中的引导程序并不直接包含完整的操作系统,而是指向 系统分区,并将控制权交给系统分区中的引导程序。

  • 在这个分区中,操作系统的引导程序(如 Windows 的 bootmgr 或 Linux 的 grub)会接管控制,并继续加载操作系统的核心文件,最终启动操作系统。

BCD

EFI 系统分区(ESP,EFI System Partition)

EFI 系统分区(ESP,EFI System Partition) 是一种用于支持 UEFI(统一可扩展固件接口) 启动标准的分区类型,通常位于硬盘或固态硬盘的 GPT(GUID 分区表) 磁盘结构中。ESP 是现代计算机系统(特别是使用 UEFI 固件的系统)引导操作系统的关键组件。

可能的解决方案:

看B站视频:一起来认识EFI与UEFI~ESP/EFI系统引导如何修复[折腾之王]_哔哩哔哩_bilibili

EFI引导的结构图

HP不是,只有Microsoft才是重要的

BCD(Boot Configuration Data)

BCD 是一个存储在硬盘上的文件或数据结构,主要用于 Windows 操作系统 ,用来描述和管理系统的启动配置。它在基于 UEFI传统BIOS 的启动环境中都有作用。

  • UEFI模式下:BCD 文件通常存储在 EFI 系统分区(ESP)中,用于描述启动项、操作系统、引导程序等的配置信息。
  • 传统BIOS模式下 :BCD 文件会被存储在系统分区上(如 \boot 目录),它存储了操作系统的引导配置,包括引导加载程序的位置、启动参数、引导项的顺序等。

尝试解决方案一:

重新建立UEFI

原来的是这样,做一个备份

截图如下

使用了之后,会报错BCD相关的错误。

然后使用windows自带的修复工具,又报错回原来的

是不是引导分区没有做好?

尝试解决方案二:

研究一下傲梅的解决方案,然后看看怎么解决,没有权限,就用带有管理员权限的命令提示符去解决问题。

按照文章下面的思路,

重新对分区进行了操作,执行到了最后一条指令

尝试解决方案三:

需要注意的是,在

使用该命令之后,会发现H:盘变得可读取了,之前不可读取,不可查看容量。

尝试解决方案四:

挂载新分区?

相关推荐
守护者1705 分钟前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
学会沉淀。14 分钟前
Docker学习
java·开发语言·学习
Rinai_R29 分钟前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
吃着火锅x唱着歌29 分钟前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
ragnwang31 分钟前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
Web阿成2 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript
雷神乐乐2 小时前
Spring学习(一)——Sping-XML
java·学习·spring
李雨非-19期-河北工职大3 小时前
思考: 与人交际
学习
哦哦~9213 小时前
深度学习驱动的油气开发技术与应用
大数据·人工智能·深度学习·学习