电脑启动需要经历哪些过程?
传统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 执行效率 (一)避免不必…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
