1

前言

最近在一些比较久的机器装系统,使用刻盘软件进行刻盘进行安装系统,出现了一些奇奇怪怪的问题,那就是设别不出来刻盘后的U盘,有一台设别出来了U盘信息,但是无法安装系统,安装后进行报错。

安装Windows7系统出现的问题

第一个问题,那就是在安装系统的时候设别出了U盘信息,但是在安装的时候出错了。

image.png

image.png

问题分析

刚开始以为是系统镜像的原因,于是重新下了一个镜像,再进行安装,发现还是出现这个问题、所以就排除了是镜像的问题。

解决方式

回到刻盘软件,发现开始刻盘的分区类型是UEFI(GPT)模式

image.png

这里我尝试把他改为 传统Legacy(MBR)模式

image.png

之后重新装系统,发现已经问题就解决了

image.png

问题出现的原因,是比较老的电脑通常不支持UEFI(GPT)模式,因为它们的固件只实现了传统的Legacy(MBR)模式。

如果GPT格式的硬盘安装系统,而刻盘采用Legacy MBR的格式

image.png

UEFI(GPT)模式和Legacy(MBR)模式区别

介绍下面2个内容

  1. 磁盘分区表格式:MBR、GPT 
  2. BIOS引导模式:Legacy BIOS、UEFI BIOS 

磁盘分区表格式

磁盘分区表负责管理硬盘上的数据如何组织和存储。主要有两种格式:MBR(主引导记录)和GPT(GUID)分区表。

Legacy+MBR

Legacy BIOS是早期电脑的启动程序,负责开机时检查硬件并加载操作系统。它比较老旧,但能和许多旧系统兼容。

MBR主引导记录,是一种磁盘分区格式,存储在硬盘的第一个位置。MBR告诉电脑硬盘上有哪些分区,以及如何启动操作系统, 一块磁盘只有一个MBR,如果有多个操作系统,只能有一个系统被BIOS直接引导。

Legacy BIOS 最多只能创建 4 个主分区,如果你需要更多分区,就得用扩展分区这种折中的办法

image.png

MBR使用 BIOS 来启动系统,适合较老的计算机。

MBR(Master Boot Record,主引导记录)占用硬盘的第一个扇区,通常大小为 512字节。这个扇区包括分区表和引导加载程序等信息

image.png

主引导程序(Boot Loader)大小为446字节,作用是存储启动代码,负责引导操作系统

分区表(partition table)大小为64字节,作用包含最多4个分区条目(即主分区),每个分区条目占16字节,描述每个分区的起始和结束位置等信息。

引导签名(Boot Signature)大小为2个字节,作用是标准MBR是否有效,通常为0x55AA

MBR(主引导记录) 的分区表只能识别到 2TB 的硬盘容量。

我们知道分区表中每个分区条目占16个字节,而其中的 第13到16个字节 用来记录主分区的总扇区数(即分区的大小),共32位。

32位的限制:
分区条目使用32位来存储扇区总数。简单来说,32位的数字能表示的最大值是 2的32次方,也就是 4,294,967,296。每个扇区的大小是 512字节。所以最大能存储的数据是:

4,294,967,296 * 512 = 2TB

单个分区不能超过2TB,但是我们上面又说使用MBR的磁盘最多只能设别2TB的硬盘。这是因为MBR使用是32位的逻辑块地址(LBA)来寻址扇区,所以这就是为什么单个磁盘不能超过2TB的原因。

启动流程:开机时,Legacy BIOS会自检,然后找到MBR,读取引导信息来启动操作系统。

image.png

UEFI BIOS + GPT

UEFI(统一可扩展固件接口)是一种替代传统Legacy BIOS的固件接口。它负责在计算机启动时初始化硬件并加载操作系统

GPT允许创建多达 128个主分区(在Windows系统中,MBR仅支持4个主分区)。这意味着你可以在一个硬盘上创建更多的独立分区。

UEFI支持更快的系统启动过程,UEFI 允许同时初始化多个硬件设备,而不是像传统的 BIOS 那样依次进行初始化。这样可以显著缩短启动时间,因为多个组件可以同时开始工作。

与MBR最大的区别,就是引导文件不再写到磁盘头部,而是以文件的形式放到一个特殊的磁盘分区中,这个分区就称为EFI分区,查看磁盘信息,你会发现会有一个EFI分区

image.png

在双系统(如Windows和Linux)环境下,EFI分区下存放两个操作系统的引导文件,我们可以通过linux把这个EFI挂载,查看是不是这样

查看分区信息表

sudo fdisk -l

通过查看磁盘我们可以知道当前的EFI在什么位置

image.png

挂载EFI

sudo mkdir -p /boot/efi
sudo mount /dev/nvm01n1p3 /boot/efi

从这里面可以查看里面EFI分区下存放两个操作系统的引导文件

image.png

BOOT:通用引导文件夹,包含默认的引导程序。
Microsoft:专用于Windows操作系统的引导文件夹。
ubuntu:专用于Ubuntu操作系统的引导文件夹。

在安装Linux(如Ubuntu)时,安装程序会将GRUB安装到EFI系统分区,并设置为UEFI固件的默认引导程序。这使得在每次启动时,GRUB可以控制引导过程并提供操作系统选择菜单。

安装GRUB后,UEFI固件会创建一个引导项,指向grubx64.efi,而不是BOOTX64.EFI。这意味着在启动时,UEFI将调用GRUB来显示可用的操作系统。

image.png

每个系统的引导独占一个EFI分区

多EFI分区的情况,每一个操作系统占一个EFI分区,每一个EFI存放在当前系统的启动引导文件

image.png

系统启动时,BIOS会扫描所有磁盘中所有的EFI分区,形成启动项列表,然后把引导控制权交给列表中的第一个EFI引导,所以默认是启动第一个系统,所以得每一次启动系统的时候按F12进行BIOS/UEFI中启动顺序选择要进入的系统,会特别麻烦。

image.png

UEFI BIOS启动过程:开机自检、加载 UEFI 固件、识别引导设备、查找 EFI 系统分区、加载引导程序、运行引导程序和加载操作系统

image.png

总结

UEFI 和 Legacy BIOS 是两种用于启动计算机的固件接口,现在基本已经使用UEFI的启动方式,LEgacy MBR格式现在只能在一些比较老旧的电脑上能看到


kexb
519 声望16 粉丝

引用和评论

0 条评论