做系统一大头疼事情就是UEFI/BIOS/MBR/GPT等等的选择。系统平台和硬件日新月异,基本上中文站的解释正确性参差不齐,出了问题也查不到正确解决方案,我也遇到过很多次系统启动的问题(这就是为什么我喜欢用英文系统,不用自己翻译直接就能谷歌一下到正确答案)。因此写一篇详解,正确解决一下在系统启动上的疑问。

顺便:b站的专栏编辑器真的是弱智。

目录MBR/GPT和BIOS/UEFI区别与选择四者的区别与关系

如何查看自己的配置

UEFI/BIOS和GPT/MBR的选择

BIOS启动详解

UEFI启动详解EFI分区与文件

UEFI boot manager与多系统

BIOS设置与CSM兼容模式

启动常见问题

MBR/GPT和BIOS/UEFI区别与选择

MBR/GPT是每个硬盘的分区格式。MBR是旧的格式,最多4个主分区,不支持2TB的分区。GPT是新的格式,没有上述限制(不过老的分区工具会有2TB分区的限制)。

在引导系统上,BIOS/UEFI是如何从主板固件载入系统的两种方式。传统BIOS是老式的启动方式,启动上没有任何功能。UEFI是新式启动方式,支持许多功能,更加灵活,也可以兼容BIOS启动方式。新的主板都支持UEFI,但是每家主板厂商每代主板支持的程度很可能不同。多系统的话用UEFI会方便很多。

UEFI/BIOS与MBR/GPT之间没有任何关系。UEFI可以支持MBR,BIOS也可以支持GPT。和HDD/SSD与SATA/M2关系差不多,SSD有SATA和M2两种接口,HDD有SATA接口,当然也可以做成M2的,不过这搭配实在蠢得没人做这种东西而已。但是主板不一定支持UEFI启动MBR分区的硬盘。如果存在MBR的硬盘,主板固件实现有可能会降到BIOS兼容模式启动,导致UEFI系统无法启动。

如何查看自己的配置

中文网上一个常说的说法是UEFI的主板有华丽的图形界面。这个说法是有问题的。现在主板复杂的图形界面的确是UEFI的主板才能支持,但是部分OEM的主板设置界面也很原始,但其实是UEFI的。UEFI的一个特性是启动时可以只有部分屏幕动画(?我没去查这个功能叫啥)。例如下图,主板logo还在,Windows启动的转圈圈可以显示。如果是传统BIOS启动的话则只有黑屏上一个转圈圈,因为显示主板logo的屏幕已经被刷掉了。

因此Windows一个简便的方法区分UEFI还是传统BIOS启动的方法就是看主板logo还在不在。

当然非Windows的系统启动时不一定还会显示主板logo。并且UEFI启动的系统的启动画面并不一定华丽。例如Arch的安装盘,BIOS启动画面比UEFI华丽的多:这是传统BIOS启动(网图,没找到更好的)

这才是UEFI启动

区分MBR/GPT,查看硬盘分区格式,可以Win+X,磁盘管理,右键自己的系统所在硬盘,然后如图查看

要查看自己的系统启动方式是什么,可以Win+R,输入msinfo32回车,如图。传统就是传统BIOS启动。

UEFI/BIOS和GPT/MBR的选择

在选择上,若是老系统没有需要,不需要在意,区别不大。如果Win 10想从MBR+BIOS迁移至GPT+UEFI,设置——更新和安全——恢复——高级启动——立即重启。重启后疑难解答——高级选项——命令行模式进入Windows PE。命令行执行mbr2gpt /validate,如果没有报错,执行mbr2gpt /convert,然后重启即可。

装新系统若自己不是很懂也不想折腾也没有功能上的需求,装Win 10就不需要在意。如果要装单个非Windows系统可以选择BIOS+MBR,因为主板厂商和其他操作系统的实现参差不齐,目前UEFI坑还是太多了。有能力的话尽量还是用新的UEFI。要装多系统需要选择UEFI,否则更麻烦。

要新装UEFI启动的Win的话,推荐在主板把CSM兼容模式关闭,不然可能会装成传统BIOS模式。下载原版系统镜像,推荐使用Rufus(https://rufus.ie/)烧写。选择镜像和u盘后,分区模式选择GPT,启动模式选择UEFI,然后烧写启动u盘。然后按流程安装。新硬盘的话直接点击空硬盘即可,不需要手动分区。

BIOS启动详解

BIOS的启动会按照你所设置的顺序依次尝试读取每个硬盘开始部分的一个特定区域。如果读取到boot loader就把相关代码载入内存,接下来就交给CPU开始处理和启动系统。如果没读到boot loader则按顺序读取下一个硬盘,若都没读到就是常见的:

因此BIOS的设计是过时的:boot loader空间有限无法实现更多功能;boot loader空间位置固定灵活性差;BIOS中无法读取启动系统信息,只能按硬盘启动,硬盘中多系统无法直接选择。

UEFI启动详解

EFI分区

相比BIOS固定的位置,UEFI启动会查找硬盘中的EFI分区。EFI分区一般为FAT32格式,被标记为ESP。不需要为第一个分区。例如下图中两块硬盘,第一块第一个分区为EFI分区,第二块硬盘第三个分区为EFI分区。

Windows默认设置的EFI分区为100M,单系统是足够的,但要多系统的话可能会出问题,见下面常见问题。多系统的话建议EFI分区设200-500M。(顺便一提,分区表和raid格式数据记得备份保存,最近刚因为分区表损坏丢了数据)

EFI分区中除了资源文件,最主要用于启动的是一些*.efi文件。如图。这些efi文件会由UEFI boot manager读取启动。

UEFI boot manager

UEFI启动会使用UEFI boot manager,是主板固件中的程序。可以通过EFI shell修改;如果系统是通过UEFI启动的,则也可以通过程序修改。UEFI boot manager会默认读取\EFI\Bottt\boot{架构}.efi,在64位系统上就是bootx64.efi,以下默认说bootx64.efi。

本来写完了4k字,不小心关了。垃圾b站写着已保存但没有自动保存就只剩到这了,前面的修订也没了。反正没人看剩下懒得仔细重写了,就随便写写了。

单Windows系统若未设置主板启动项,会引导bootx64然后引导\EFI\Microsoft\Boot\bootmgfw.efi,即Windows boot manager启动。

多Windows也只有一个bootmgfw.efi,然后由Windows boot manager统一管理,在windows里可由msconfig设置。

除了默认读取的bootx64.efi,如果安装盘的系统是UEFI启动的话,可以设置主板UEFI启动项,即将多个系统的.efi文件路径设置进主板boot manager中,如下图。

多其他系统就如上图,每个系统一个efi,这个是系统安装时加入主板设置的,如果安装过程正确会加入到UEFI启动项中,就可以在启动项中直接看到每个系统,而不是BIOS一样只能看到硬盘。

不过如果安装盘的系统是传统BIOS启动的话,则无法修改主板EFI启动项。

另外进入主板的EFI shell也是可以手动加启动项的。

这个启动项也不是很智能,像图上的Ubuntu已经不存在了,但因为这个启动项还在主板设置中,所以还是能看到这个启动项,但当然是没法正常启动的。

BIOS设置与CSM兼容模式

主板设置中的CSM兼容模式是UEFI用于兼容传统BIOS启动等功能用的。

CSM关闭时仅能看到存在EFI分区的硬盘和设置的EFI启动项。如果(硬盘不存在EFI分区)或者(不存在bootx64.efi 且 未设置启动项)就不显示。

CSM开启时显示所有硬盘和EFI启动项,但由于各家主板厂商实现问题可能会有很多坑(尤其是老主板),如果仅用EFI启动的话最好关闭。见常见问题。

常见问题

Windows更新提示无法更新系统保留的分区

EFI分区不够大,中文解决方法教程写的都是垃圾。见https://www.thewindowsclub.com/we-couldnt-update-system-reserved-partition,懒得重写翻译了。

无法启动UEFI系统

有的主板在存在BIOS启动的硬盘时,可能会降级到传统BIOS启动。拔掉MBR的硬盘,关闭CSM再测试。

有的系统安装方式是只添加自己路径下的.efi文件,然后添加主板启动项来启动,而不会添加bootx64.efi。这样的话将硬盘放到其他电脑上则会因为既没有默认efi文件也没有启动项而导致看不到启动项,无法启动。

如果手动启动了启动项又回到主板设置界面,可能efi文件不存在或该efi引导的系统不存在。检查默认路径bootx64.efi和\EFI\Microsoft\Boot\bootmgfw.efi(如果是Win,不是的话自行检查路径)是否正确存在。

部分主板可能只默认载入windows的boot manager路径而不是bootx64,非Windows系统可能需要手动添加。见https://wiki.archlinux.org/index.php/GRUB/EFI_examples

其他问题

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Troubleshooting自己参考吧。b站编辑器太垃圾懒得重写了。还是该先用VSC写的。

rufus中gpt和mrb磁盘_UEFI/BIOS/MBR/GPT启动过程详解与常见系统启动问题相关推荐

  1. UEFI与 Legacy BIOS两种启动模式详解

    参考链接1 参考链接2 (1). UEFI启动模式 与 legacy启动模式 legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的B ...

  2. 【OS基础】UEFI与 Legacy BIOS两种启动模式详解

    uefi和legacy是两种不同的引导方式,uefi是新式的BIOS,legacy是传统BIOS.你在UEFI模式下安装的系统,只能用UEFI模式引导:同理,如果你是在Legacy模式下安装的系统,也 ...

  3. CNN卷积中卷积层,卷积核,通道概念及卷积过程详解

    1.卷积层,卷积核,通道概念及作用 卷积层:又称滤波器(filter)或者内核(kernel),TensorFlow文档中称之为滤波器(filter).用于对输入的图像结构进行特征提取. 卷积核:同上 ...

  4. 【BIOS】MBR引导程序类型及详解

    一.前言 在了解MBR引导之前,先需要了解读取MBR之前,机器都干什么了. 直接总结其他博主的文章罗列在此,以便查阅: 首先我们要了解整个启动过程的轮廓,可以读下边这篇文章 计算机的启动过程(详细) ...

  5. 磁盘的顺序读写与随机读写详解

    磁盘的顺序读写与随机读写详解 1.磁盘的基本概念 2.磁盘的读写方式 3.磁盘读取时间 4.顺序读写与随机读写 5 参考链接 1.磁盘的基本概念  盘片与盘面 : 一块硬盘一般有多块盘片,盘片分为上下 ...

  6. Linux系统与网络、磁盘参数和日志监控等命令详解二

    创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...

  7. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

  8. php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解

    本篇文章给大家分享的内容是关于PHP 中 self.static.$this 的区别和后期静态绑定详解,有着一定的参考价值,有需要的朋友可以参考一下 self.static 和 $this 的区别 为 ...

  9. java构造块_java中的静态代码块、构造代码块、构造方法详解

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

最新文章

  1. android 删除文件
  2. 蚂蚁从飞机上掉下来的数学建模分析
  3. MySQL倒序如何避免filesort_MySQL Using filesort 疑问?
  4. Linux C一站式学习 第八章第三小节习题一答案
  5. 用python做一个简单的投票程序_以一个投票程序的实例来讲解Python的Django框架使...
  6. Django---启动admin的报no such table: auth_user错误
  7. cnn神经网络_神经网络之CNN和RNN
  8. 为参加脱欧协议表决 英国工党女议员将延后剖腹产
  9. IDEA ---- 插件
  10. 程序员面试金典——17.3阶乘尾零
  11. jquery ztree 设置勾选_JQuery Ztree 树插件配置与应用小结
  12. 【MSRA文档智能综述论文】Document AI: Benchmarks, Models and Applications
  13. 伊利诺伊大学香槟分校计算机工程,伊利诺伊大学香槟分校计算机工程排名第8(2020年TFE美国排名)...
  14. PIPI OJ 1203: PIPI发工资(拓扑排序)
  15. 如何查找SCI期刊的缩写
  16. mapbox-gl添加threejs飞线
  17. 易语言大漠一键登录实现启动后台绑定游戏
  18. Android系统工作资料被锁定,您需要知道的有关安卓屏幕锁定设置的所有内容
  19. 《当程序员的那些狗日日子》(五十五)另一种生存之道
  20. 最近做项目所积累的一些小知识(一)

热门文章

  1. 微软Windows SharePoint Services 3.0 应用程序模板( Templates)中文版推出了
  2. python的6种基本数据类型--字典
  3. 2021第一季度云智能生态技术服务能力盘点
  4. 国内首篇云厂商 Serverless 论文入选全球顶会:突发流量下,如何加速容器启动?
  5. 数据仓库如何实现湖仓一体数据分析?
  6. 阿里高级技术专家:整洁的应用架构“长”什么样?
  7. linux6.5虛擬機镜像,CentOS 7.2 自动安装光盘实验全过程记录
  8. 【风农翻译】开始画像素画 #8
  9. Unity MMORPG游戏优化经验分享
  10. Java面试题 String类能不能被继承?为什么?