电脑启动需要经历哪些过程?
传统BIOS启动流程
1. BIOS
BIOS 启动,BIOS程序是烧进主板自带的ROM里的,所以无硬盘也可以启动。BIOS先进行自检,检查内存、显卡、磁盘等关键设备是否存在功能异常,会有蜂鸣器汇报错误,无错误自检飞快结束。
硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做启动顺序。可以在BIOS中设置。
2. 主引导
BIOS按照"启动顺序"读取第一位的储存设备。判断有没有MBR,如果有就读取。MBR:存储设备中的第一个扇区,磁盘最前面的512Byte,称为“主引导扇区”(Master boot record,缩写为MBR)
MBR很小,只有512字节,存放程序很小,其主要作用是:告诉计算机在哪一个位置去找操作系统。
MBR由三个部分组成:调用操作系统的机器码、硬盘分区表(Partition table)、主引导记录签名(0x55和0xAA)(用于判断这段程序是不是主引导,不是的话就按启动顺序往下继续找)
3. 硬盘启动
这时,计算机的控制权就要转交给硬盘的某个分区了。分成三种情况:情况A:卷引导记录、情况B:扩展分区和逻辑分区、情况C:启动管理器。
Linux环境中,目前最流行的启动管理器是Grub。Windows是Windows Boot Manager。
4. 操作系统
控制权转交给操作系统后,操作系统的内核首先被载入内存。最后完成所有启动流程。
UEFI启动
UEFI:UEFI 是 BIOS 的升级版本,是一种更现代的固件接口,逐渐取代传统 BIOS。现在的华硕主板的BIOS界面都很好看,还能支持鼠标操作,这就是UEFI了。
UEFI 使用 GPT 分区标准,取代了旧的 MBR 标准。这让 UEFI 可以从超过 2TB 的大容量硬盘启动,而且理论上也没有磁盘大小限制。它支持 32 位和 64 位系统启动,并提供了安全启动 (Secure Boot) 等功能,不仅启动速度更快,还能检测恶意软件,确保启动过程未被篡改。
UEFI与BIOS的主要区别:
区别 | BIOS | UEFI |
---|---|---|
分区表 | 使用主引导记录 (MBR) | 使用全局唯一标识分区表 (GPT) |
数据存储 | 存储在主板的 BIOS 芯片上 | 存储在存储设备的 EFI 文件中 |
运行模式 | 只能在 16 位模式下工作 | 可以在 64 位模式下运行,可寻址内存更大 |
用户界面 | 仅支持键盘导航的文本界面 | 提供更直观的图形界面,支持鼠标操作 |
网络支持 | 无网络功能 | 有些具备网络功能,可在线更新固件,远程排除故障 |
UEFI 最终也是需要启动一个引导程序(如 GRUB 或 Windows Boot Manager)来完成操作系统的启动过程。
在启动了GRUB之后,是可以编辑启动配置项的。比如可以禁用一些驱动(例如nouvea)来解决bug。
UEFI是怎么处理双系统的
在UEFI系统的硬盘上,有一个专门的分区叫做 EFI 系统分区(ESP),这里存放着每个操作系统的引导程序,比如 Windows 的 bootmgfw.efi
和 Linux 的 grubx64.efi
。
如果你的电脑装了双系统,比如 Windows 和 Linux,当你安装操作系统时,它们都会在 ESP 中添加自己的引导程序,同时告诉 UEFI 固件这个启动文件的位置。Windows 会创建自己的引导程序 bootmgfw.efi
,默认直接启动 Windows。而 Linux 安装时,通常会使用 GRUB 作为引导程序,并把 GRUB 设置为默认的启动项。GRUB 很强大,它不仅能加载 Linux 系统,还能自动检测到 Windows 的存在,并在启动时提供一个菜单,让你选择启动 Windows 或 Linux。
如果安装顺序是先装 Windows 再装 Linux,Linux 的 GRUB 通常会接管启动流程。这意味着当你开机时,电脑会优先加载 GRUB,然后你可以从菜单里选择想进入的操作系统。但如果 Windows 后来更新系统,它可能会覆盖 GRUB,把自己设为默认启动项。这时你会发现电脑直接进入 Windows,而看不到 GRUB 的菜单。这种情况下,可以通过调整 UEFI 的启动顺序,或者用 Linux 的工具(比如 sudo update-grub
)重新修复启动菜单。
如果先装 Linux 再装 Windows,大概率会把 Linux 的引导程序(通常是 GRUB)覆盖掉,导致开机时直接进入 Windows 系统,而无法看到 Linux 的启动菜单。这是因为 Windows 安装程序在处理引导设置时,不会主动识别或保留其他操作系统的引导程序。Windows 安装完成后,会覆盖原来的引导加载程序(GRUB),导致无法直接启动 Ubuntu。这时需要修复 GRUB 来恢复双系统启动选项。可以使用 Ubuntu 安装介质(U盘)启动计算机,进入 Ubuntu 的 “试用” 模式(在安装界面选择 “试用 Ubuntu” 而不是 “安装 Ubuntu”)。然后打开终端,使用命令来重新安装和修复 GRUB。例如,在终端中输入 “sudo mount /dev/sdaX/mnt”(其中 sdaX 是 Ubuntu 系统分区的设备名称,需要根据实际情况替换),将 Ubuntu 分区挂载到 /mnt 目录下,接着输入 “sudo grub - install – root - directory=/mnt/dev/sda”(假设硬盘设备名称是 sda)来重新安装 GRUB,这样就可以恢复双系统启动选项,在启动时可以选择进入 Ubuntu 或者 Windows。
相关文章:

电脑启动需要经历哪些过程?
传统BIOS启动流程 1. BIOS BIOS 启动,BIOS程序是烧进主板自带的ROM里的,所以无硬盘也可以启动。BIOS先进行自检,检查内存、显卡、磁盘等关键设备是否存在功能异常,会有蜂鸣器汇报错误,无错误自检飞快结束。 硬件自检…...

纯Go语言开发人脸检测、瞳孔/眼睛定位与面部特征检测插件-助力GoFly快速开发框架
前言 开发纯go插件的原因是因为目前 Go 生态系统中几乎所有现有的人脸检测解决方案都是纯粹绑定到一些 C/C 库,如 OpenCV 或 dlib,但通过 cgo 调用 C 程序会引入巨大的延迟,并在性能方面产生显著的权衡。…...

postman使用正则表达式提取数据实战篇!
之前篇章中postman多接口关联使用的是通过JSON提取器的方式进行提取。 除了JSON提取器提取数据外还可通过另一种方式——正则表达式来提取数据。 1、使用正则表达式提取器实现接口关联,match匹配 正则匹配表达式将需要提取的字段key:value都放入表达式中ÿ…...
ipmitool使用详解(三)-解决各种dell、hp服务器无法ipmitool连接问题
报错 [root@localhost ~]# ipmitool -H 10.1.2.41 -I lan -U admin -P "password123" lan print 1 Get Session Challenge command failed Error: Unable to establish LAN session Error: Unable to establish IPMI v1.5 / RMCP session [root@localhost ~]# ipmit…...
AWS EC2设置用户名密码登录
使用AWS EC2 设置用户名密码登录 步骤 1: 访问控制台 登录到AWS管理控制台。导航至 EC2 Dashboard。在左侧导航栏中选择 Instances。选择需要配置的实例。使用 EC2 Instance Connect 访问实例控制台。 步骤 2: 切换到 root 用户 打开终端或命令行工具,通过SSH连…...

BurpSuite安装教程(详细!!附带下载链接)
声明 学习内容来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…...

MIPS寄存器文件设计实验
今天写MIPS寄存器文件设计实验,同时复习一下MIPS这块地方 实验要求: 一、寄存器的作用 想象一下,你正在厨房准备做一顿大餐。你需要用到各种食材和工具,比如刀、锅、砧板,还有食材本身,比如肉、菜、调料等…...

uniapp使用扩展组件uni-data-select出现的问题汇总
前言 不知道大家有没有学习过我的这门课程那,《uniCloud云开发Vue3版本官方推荐用法》,这么课程已经得到了官方推荐,想要快速上手unicloud的小伙伴们,可以学习一下这么课程哦,不要忘了给一键三连呀。 在录制这门课程…...

反向代理模块开发
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…...

海康面阵、线阵、读码器及3D相机接线说明
为帮助用户快速了解和配置海康系列设备的接线方式,本文将针对海康面阵相机、线阵相机、读码器和3D相机的主要接口及接线方法进行全面整理和说明。 一、海康面阵相机接线说明 海康面阵相机使用6-pin P7接口,其功能设计包括电源输入、光耦隔离信号输入输出…...

AI与ArcGIS Pro的地理空间分析和可视化
AI思维已经成为一种必备的能力,ArcGIS Pro3的卓越性能与ChatGPT的智能交互相结合,将会为您打造了一个全新的工作流程! 那么如何将火热的ChatGPT与ArcGIS Pro3相结合,使我们无需自己进行复杂的编程,通过强大的ChatGPT辅助我们完成地…...

详解HTML5语言
文章目录 前言任务一 认识HTML5任务描述:知识一 HTML5基础知识 任务二 HTML 5语义元素任务描述:知识一 HTML5新增结构元素知识二 HTML5文本语义元素 总结 前言 HTML5是一个新的网络标准,现在仍处于发展阶段。目标是取代现有的HTML 4.01和XHT…...
docker compose一键启动ES集群和kibana
集群启用了XPACK后,只有第一次可以启动成功。要是宕机了。就启动不了了。(除非删除data目录所有数据)生产环境 启用了后 建议配置 自定义证书。 services:es01:image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.25"co…...

遗传算法与深度学习实战(25)——使用Keras构建卷积神经网络
遗传算法与深度学习实战(25)——使用Keras构建卷积神经网络 0. 前言1. 卷积神经网络基本概念1.1 卷积1.2 步幅1.3 填充1.4 激活函数1.5 池化 2. 使用 Keras 构建卷积神经网络3. CNN 层的问题4. 模型泛化小结系列链接 0. 前言 卷积神经网络 (Convolution…...

pytest+allure生成报告显示loading和404
pytestallure执行测试脚本后,通常会在电脑的磁盘上建立一个临时文件夹,里面存放allure测试报告,但是这个测试报告index.html文件单独去打开,却显示loading和404, 这个时候就要用一些办法来解决这个报告显示的问题了。 用命令产生…...
为何划分 Vue 项目结构组件?划分结构和组件解决了什么问题?为什么要这么做?
在一个大型 Vue 项目中,合理的目录结构和组件划分至关重要。良好的结构可以提高开发效率,减少维护成本,并使得团队合作更加顺畅。下面我将详细讲解如何在 Vue 项目中进行目录结构和组件划分,并结合实际项目代码示例进行说明。 1. 为什么要划分结构和组件? 1.1 提高可维护…...

springboot中使用mongodb完成评论功能
pom文件中引入 <!-- mongodb --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> yml中配置连接 data:mongodb:uri: mongodb://admin:1234561…...
Dubbo的RPC泛化调用
目录 一、RPC泛化调用的应用场景 二、Dubbo RPC泛化调用的实现原理 三、Dubbo RPC泛化调用的实现步骤 四、示例代码 五、泛化调用怎么发现提供该接口的服务及服务的IP和端口? Dubbo的RPC泛化调用是一种在调用方没有服务方提供的API的情况下,对服务方…...
【k8s深入理解之 Scheme】全面理解 Scheme 的注册机制、内外部版本、自动转换函数、默认填充函数、Options等机制
参考 【k8s基础篇】k8s scheme3 之序列化_基于schema进行序列化-CSDN博客【k8s基础篇】k8s scheme4 之资源数据结构与资源注册_kubernetes 的scheam-CSDN博客常见问题答疑 【k8s深入理解之 Scheme 补充-1】理解 Scheme 中资源的注册以及 GVK 和 go 结构体的映射-CSDN博客【k8s深…...

接口性能优化宝典:解决性能瓶颈的策略与实践
目录 一、直面索引 (一)索引优化的常见场景 (二)如何检查索引的使用情况 (三)如何避免索引失效 (四)强制选择索引 二、提升 SQL 执行效率 (一)避免不必…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...