为什么条款膜生物反应器和谷氨酰胺磷酸酶有关联传统 BIOS和UEFI分别?
答案1
较年长的BIOS(基本输入/输出系统)及其现代替代品UEFI(统一可扩展固件接口)都可以看作是你的计算机的“固件”。
它们直接存储在主板上,是计算机开机时运行的第一个软件。它们的主要工作是初始化所有连接的硬件,并从硬盘加载实际操作系统(例如 Ubuntu 或 Windows)的引导加载程序(例如 GRUB),然后启动操作系统。
大多数 UEFI 系统还支持 CSM(兼容性支持模块)启动,它模拟传统 BIOS 接口。
虽然传统 BIOS 启动简单而愚蠢地从磁盘上的固定地址(主引导记录的一部分)读取并执行代码,但 UEFI 启动会在 EFI 系统分区中搜索 EFI 启动文件并执行其中一个。
较年长的膜生物反应器(主引导记录)及更新版本谷氨酰胺磷酸酶(GUID 分区表;GUID = 全局唯一标识符)是分区表格式。
您的硬盘分区格式有两种。较旧的 MBR 格式仅允许整个磁盘上有 4 个主分区(尽管其中一个可以用作扩展分区并包含许多逻辑卷),而 GPT 没有此限制,并且还支持更大的磁盘。
GPT 分区磁盘还可能包含混合 MBR,其引导代码能够加载 EFI 文件,以支持 UEFI 和 Legacy BIOS 引导模式。
那么为什么 BIOS 和 MBR 会相互关联,而 UEFI 又会和 GPT 相互关联呢?
好吧,除了 BIOS/MBR 是当今现代 UEFI/GPT 的祖先之外,它们通常也一起使用。某些操作系统(如 Windows)甚至仅支持在 BIOS 模式下启动 MBR 磁盘,在 UEFI 模式下启动 GPT 磁盘。带有 GRUB 等的 Linux 系统通常可以毫无问题地混合使用它们。
答案2
传统 (CSM) 启动与 UEFI 启动
超级用户有一个获得高度赞同的帖子从 2012 年开始,针对 OP 的问题,很多人都会发现它很有帮助。
CSM(传统)和 UEFI(通用可扩展固件接口)是您在 BIOS(基本输入输出系统)中选择的互斥启动选项。BIOS 的适用范围远不止传统(CSM)启动:
- 磁盘启动格式:传统 (CSM) 与 UEFI
- 磁盘启动顺序:硬盘、SSD、USB、NIC(网络接口卡)
- 磁盘低级操作:RAID 与 AHCI
- USB 端口:输入时唤醒、系统关闭时供电等。
- 多显卡:启用/禁用 Intel 或 nVidia
- 系统日期和时间存储在 RTC(实时时钟)上
- 可选硬件 POST(开机自检)检查
- 许多其他 BIOS 选项因计算机而异
Byte 和 Ravery 已经在这里发布了很好的答案,所以我只总结一下:
- 传统(CSM)和 UEFI 是从存储磁盘(如今通常采用 SSD 的形式)启动的不同方式。
- CSM 使用 512 字节特定格式的 MBR(主引导记录)来引导操作系统。
- UEFI 使用大分区(通常为 100 MB)内的文件来启动操作系统。通常它们仍需要 MBR 存在。
- MBR 和 GPT 是磁盘分区格式的不同规范。您可以在 MBR 格式的磁盘上进行 UEFI 启动。您可以在 GPT 格式的磁盘上进行 MBR 启动(在非 Windows 环境中)。
- MBR(磁盘的前 512 个字节)通常对用户来说是隐藏的。
- 可以很方便的查看到EFI分区,如下图
需要注意的是,MBR 可以指磁盘启动方法或磁盘分区格式。
还需要注意的是,UEFI 通常与 GPT 磁盘格式相关联,但 MBR 启动可以使用 GPT 磁盘格式。
查看 EFI 分区
使用lsblk
您可以看到EFI分区和文件:
$ lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL
NAME FSTYPE LABEL MOUNTPOINT SIZE MODEL
sda 931.5G HGST HTS721010A9
├─sda4 ntfs WINRETOOLS 450M
├─sda2 128M
├─sda5 ntfs Image 11.4G
├─sda3 ntfs HGST_Win10 /mnt/d 919G
└─sda1 vfat ESP 500M
nvme0n1 477G Samsung SSD 960 PRO 512GB
├─nvme0n1p5 ext4 NVMe_Ubuntu_16.0 / 44.6G
├─nvme0n1p3 16M
├─nvme0n1p1 ntfs 450M
├─nvme0n1p6 swap Linux Swap [SWAP] 7.9G
├─nvme0n1p4 ntfs NVMe_Win10 /mnt/c 414.9G
├─nvme0n1p2 vfat /boot/efi 99M
└─nvme0n1p7 ntfs Shared_WSL+Linux /mnt/e 9G
/boot/efi
您可以使用命令查看其中的许多文件ls
。要查看 99MB 分区内所有文件的大小,请使用:
$ du -hs /boot/efi
35M /boot/efi
gdisk
信息
在研究这个答案时,我找到了一个我运行过的命令的链接gdisk
,当我再次启动 Windows 时可能会后悔。它在这里,所以如果 Windows 双启动出现错误,你不必重复此操作:
sudo gdisk -l /dev/sda
[sudo] password for rick:
GPT fdisk (gdisk) version 1.0.1
The protective MBR's 0xEE partition is oversized! Auto-repairing.
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8BEC7AEB-4576-42B0-8A8A-D40779A80126
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3437 sectors (1.7 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB EF00 EFI system partition
2 1026048 1288191 128.0 MiB 0C01 Microsoft reserved ...
3 1288192 1928626175 919.0 GiB 0700 Basic data partition
4 1928626176 1929547775 450.0 MiB 2700
5 1929547776 1953523711 11.4 GiB 2700
我将重新启动 Windows 10,看看 Linux 是否会对修复 Linux 设置中的gdisk
Windows 硬盘产生任何影响。我并不担心,因为这是我尚未使用的原始硬盘,但如果上面有数据,则应小心。我将在重新启动和测试后更新此部分。D:
/dev/sda
答案3
MBR 是旧固件 (BIOS) 使用的磁盘分区方案。在其开发时,驱动器非常小。随着驱动器变大,MBR 标准被“修补”以适应;但是,存在许多限制。Legacy Boot 无法读取 GPT 分区,因为它未内置于 BIOS 中。此限制仅适用于 BIOS;请参阅下面有关引导加载程序的说明。
随着 EFI 的发展,他们还开发了一种新的分区方案 (GPT),可以更好地利用大型驱动器。EFI 固件可以读取和使用 MBR 分区磁盘,但通常工厂安装会使用更好的 GPT 分区。
笔记:
- 即使 EFI 固件不需要,某些操作系统(例如 Win10)也会要求 EFI 安装进行 GPT 分区。
- 尽管 EFI 标准不需要 GPT,但特定实现可能要求。某些计算机在遇到 MBR 磁盘时会自动降级到 Legacy 支持模式。
- 一些引导加载程序(如 GRUB)可以将 BIOS 分区 (MBR) 放在 GPT 磁盘上。BIOS 可以读取此分区并加载引导加载程序。加载引导加载程序后,引导加载程序可以读取 GPT 分区。