系统分区、MSR -重装系统中的一点小知识

2023-11-11 18:28

本文主要是介绍系统分区、MSR -重装系统中的一点小知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言:

在使用优启通装载的U盘重装系统时,出现了一点问题,问题和解决方法以及涉及知识贴在下面。

以前大都是使用微软官方的镜像系统直接写入U盘,将其做成系统盘(媒体创建工具Media Creation Tool),这样操作纯净度高,步骤简单。但是不能根据自己的需求对系统一些功能,驱动,程序进行快捷的添加。所以将U盘设置为PE工具。

二、前置知识

1.BOOT程序

作为计算机启动后,第一个运行的程序。

如果有显示界面,那么就是屏幕点亮,闪过主板标志的那段时间

2.BIOS程序、UEFI程序

作为主板启动后运行,自检的程序。

BIOS用于计算机硬件自检、CMOS设置、引导操作系统启动、提供硬件I/O、硬件中断等4项主要功能,因此BIOS程序可以分为若干模块,主要有Boot Block引导模块、CMOS设置模块、扩展配置数据(ESCD)模块、DMI收集硬件数据模块,其中引导模块直接负责执行BIOS程序本身入口、计算机基本硬件的检测和初始化,ESCD用于BIOS与OS交换硬件配置数据,DMI则充当了硬件管理工具和系统层之间接口的角色,通过DMI,用户可以直观地获得硬件的任何信息,CMOS设置模块就是实现对硬件信息进行设置,并保存在CMOS中,是除了启动初始化以外BIOS程序最常用的功能。

BIOS本身是汇编语言代码,是在16位实模式下调用INT 13H中断执行的,由于x86-64是一个高度兼容的指令集,也为了迁就BIOS的16位实模式的运行环境,所以即使现在的CPU都已是64位,如果还是在BIOS启动(基本见于09年以前的主板),在开机时仍然都是在16位实模式下执行的。16位实模式直接能访问的内存只有1MB,就算你安了4G、8G或者16G还是32G内存,到了BIOS上一律只先认前1MB。在这1MB内存中,前640K称为基本内存,后面384K内存留给开机必要硬件和各类BIOS本身使用,了解了这些,下面谈一下BIOS启动计算机的具体过程。

当按下电源开关时,电源就开始向主板和其他设备供电,这时电压还不稳定,在早期的南北桥主板上,由主板北桥向CPU发复位信号,对CPU初始化;稳定电压后复位信号便撤掉。而对于现在的单南桥主板,则由CPU自身调整稳定电压达到初始化的目的,当电压稳定后,CPU便在系统BIOS保留的内存地址处执行跳转BIOS起始处指令,开始执行POST自检。

在POST自检中,BIOS只检查系统的必要核心硬件是否有问题,主要是CPU、640K基本内存、显卡是否正常,PS/2键盘控制器、系统时钟是否有错误等等。由于POST检查在显卡初始化以前,因此在这个阶段如发生错误,是无法在屏幕上显示的,不过主板上还有个报警扬声器,而且如果主板的8255外围可编程接口芯片没有损坏的话,POST报警声音一定是会出来的。可以根据报警声的不同大致判断错误所在,一般情况下,一声短“嘀”声基本代表正常启动,不同的错误则是不同的短“嘀”声和长“嘀”声组合。POST自检结束后,BIOS开始调用中断完成各种硬件初始化工作。

硬件初始化工作中,主要说明两点,首先经过POST检测后,电脑终于出现了开机启动画面,这就是已经检测到了显卡并完成了初始化。但是请注意,由于BIOS是在16位实模式运行,因此该画面是以VGA分辨率(640*480,纵横比4:3)显示的,因为实模式最高支持的就是VGA。

BIOS只识别到由主引导记录(MBR)初始化的硬盘,之所以说明这点,是因为后续的EFI或UEFI采用了一种新的GUID磁盘分区系统(GPT)格式,这种硬盘在BIOS下是无法识别的。硬件全部初始化完毕后,接下来进入更新ESCD阶段。

在ESCD更新阶段中,BIOS将对存储在CMOS中和操作系统交换的硬件配置数据进行检测,如果系统硬件发生变动,则会更新该数据,否则不更新保持原状不变,ESCD检测或更新结束后,BIOS将完成最后一项工作,就是启动操作系统

最后这一步中,BIOS根据CMOS中用户指定的硬件启动顺序,读取相应设备的启动或引导记录,引导相应设备上的操作系统启动,进入操作系统,此后便由操作系统接替BIOS负责硬件和软件间的相互通信。如果发现所有硬件都没有能引导操作系统的记录,则会在屏幕上显示相应错误信息,并将电脑维持在16位实模式。

BIOS启动程序不断优化和发展,出现了EFI启动和UEFI启动,EFI可以看作是一个过度阶段。目前比较流行的是UEFI启动方式。

当然磁盘的分区表系统也在发展,GPT格式大量应用,这个后续会说明。

UEFI相对于BIOS,具有完整的图形驱动功能,且支持USB键盘和鼠标操作。

目前,电脑启动模式可以分为三种:

第一种:BIOS启动模式,由于电脑主板的BIOS无法兼容UEIF,只能使用BIOS,这种情况一般出现在比较旧的电脑中。

第二种:兼容性启动模式,就是CSM兼容启动模式,是UEFI和传统BIOS两者共存模式,既能用传统BIOS引导模式,也能用新式UEFI启动电脑系统。比较主流。

第三种:纯UEFI启动模式,就字面上的意思,只能在UEFI引导模式来启动电脑系统。

这里存在一个概念,计算机的启动方式要和硬盘的格式表对应:BIOS+MBR模式,UEFI+GPT模式

根据微软官方的解释,在进行windows安装时,磁盘可以选择MBR和GPT分区形式

使用 Windows 安装程序在基于 UEFI 的电脑上安装 Windows 时,必须将硬盘驱动器分区形式设置为支持 UEFI 模式或旧版 BIOS 兼容性模式。当你的电脑只支持UEFI模式启动时,这时候就需要转换驱动器。

三、PE工具的分区(以优启通为例)

做好的启动U盘会有以下分区

分区UD:一种启动U盘制作方式的分区,主要是可以隐藏起来,可以防止启动U盘中的PE系统及维护工具程序被人为破坏

分区EasyU:是启动U盘制作后的用户分区,用来存放用户的数据及资源,与正常U盘分区功能一致。

分区EFI:是当前主流的电脑启动引导分区格式,主要用来存放启动引导文件,也就是存放着PE系统的地方,是装系统时的系统操作界面(粗俗理解)。

四、制作PE工具

五、对硬盘进行分区

(使用DG软件)

MBR(Master Boot Record)主引导记录

GPT(GUID partition table)全局唯一标识分区表

如果将磁盘设置为MBR分区表,在进行分区时,会有主磁盘分区和拓展磁盘分区选项。系统需要装载在主分区活动状态下。启动选项依赖活动分区标识

MBR分区只支持4个主分区,但在MBR分区下,一个扩展分区下面,可以有多个逻辑驱动器。

主分区和扩展分区是相同级别的

如果将磁盘设置为GPT分区表,在进行分区时,不存在主磁盘分区和拓展磁盘分区选项。

分区完成后,会在磁盘管理中看到以下分区:

ESP(EFI)分区:ESP是一个独立于操作系统之外的分区,操作系统被引导之后,就不再依赖它。这使得ESP非常适合用来存储那些系统级的维护性的工具和数据,比如:引导管理程序、驱动程序、系统维护工具、系统备份等,甚至可以在ESP里安装一个特殊的操作系统。

MSR分区

1、windows不会向msr分区建立文件系统或者写数据,而是为了调整分区结构而保留的分区。在Win8以上系统更新时,会检测msr分区。msr分区本质上就是写在分区表上面的“未分配空间”,目的是微软不想让别人乱动。

2、msr分区的用途是防止将一块GPT磁盘接到老系统中,被当作未格式化的空硬盘而继续操作(例如重新格式化)导致数据丢失。GPT磁盘上有了这个分区,当把它接入XP等老系统中,会提示无法识别的磁盘,也无法进一步操作。


GPT磁盘只有做系统盘的时候才会有EFI分区,这个分区是操作系统的引导分区,与在MBR磁盘上安装Win7(8)生成的那个100MB隐藏分区用途相同。

MSR分区和系统分区是UEFI启动方式必须需要的分区。

当一整块磁盘都被格式化时,建议使用DG工具的快速分区功能,这样可以自动建立ESP分区和MSR。

六、遇到问题

实际操作时,给一台dell主机进行数据低格化和重装系统。

在数据格式化时,一整块磁盘格式化为MBR分区表,但是在建立分区时,手动分区,此时磁盘里没有ESP和MSR分区,再使用EIX系统安装功能将系统映射到分区中。

运行到这里没有问题

但拔出硬盘后,启动电脑,出现No bootable device(无启动设备)提示:

个人理解,可能是因为缺少ESP分区,导致UFEI启动之后,无法引导至操作系统,故出现无启动设备。

这篇关于系统分区、MSR -重装系统中的一点小知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/392001

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方