Pra*_*ngh 27 boot dual-boot bios bootloader
我有 Windows 和 Ubuntu 的双启动。当我打开机器时,BIOS 执行 POST,然后引导加载程序启动。
我想了解 BIOS 如何选择要运行的引导加载程序。我想知道双引导计算机中 BIOS 和引导加载程序之间发生的过程。
小智 42
BIOS 固件并没有真正选择引导加载程序。它从驱动器的扇区 0 加载代码并执行它。无论那里有什么,它都会执行。希望它是一个引导加载程序(或加载引导加载程序的东西),但它不一定是。在早期的 PC 时代,软盘上的游戏可以在没有操作系统的情况下简单地启动和运行 - 这些现在被称为“引导程序”。
UEFI 固件实际上了解分区和文件系统,并扫描驱动器以查找 UEFI 系统分区类型。由于这是一个文件系统,因此可以在此处放置多个引导加载程序。UEFI 固件应该提供一个菜单或其他方式供您选择使用哪个引导加载程序。
许多 UEFI 系统在“传统模式”下启动——UEFI 加载“兼容性服务模块”——使其看起来像 BIOS——并且实际上像 BIOS 一样工作。
GRUB 是一种常见的开源引导加载程序,它可以引导 Linux 或“链式加载”(控制)Windows 引导加载程序(通常是 Windows 分区引导文件夹中的 winload.exe)。GRUB 使您能够做出决定。GRUB 可以读取配置文件并从中选择默认选项。
如果您想要丰富的血腥细节,请阅读此内容。
kar*_*rel 16
该图显示了控制如何从固件(BIOS 或 UEFI)传递到引导加载程序,以及如何从引导加载程序传递到 Ubuntu 中的操作系统。
如果操作系统安装在不同的模式(BIOS 和 UEFI),则无法使用 grub 双启动 Windows 和 Ubuntu。在某些预装了 Windows 的计算机中,有一个选项可以在 UEFI 设置实用程序中启动 Windows。
或者,您可以按照本答案中的说明,在实时 Ubuntu USB 会话中从终端将现有 Ubuntu 安装从 BIOS 模式转换为 UEFI 模式,该会话以 UEFI 模式启动。
注意:此过程仅用于将 UEFI 模式 Ubuntu 安装转换为以 BIOS/CSM/legacy 模式启动。如果某些硬件在 UEFI 模式下无法正常工作,则可能需要进行此类转换。(显卡是问题的常见来源。)在 Windows 以 UEFI 模式启动时转换为以 BIOS/CSM/legacy 模式启动会使启动过程更加尴尬——您需要使用计算机的内置启动管理器来在操作系统之间切换,有些计算机的启动管理器很差,这可能是不可能的。
sudo parted -l命令检查它),请使用 GParted 分区编辑器在其磁盘的开头创建一个 BIOS-Boot 分区(1MB,未格式化的文件系统,bios_grub 标志)。MBR2GPT.exe 是一个命令行工具,它位于 Windows 10 的 System32 文件夹中。有了它,您可以有效且非破坏性地将 Windows 10 操作系统磁盘从 MBR(用于传统 BIOS)转换为 GPT 分区样式(用于 UEFI),而无需修改/删除磁盘上的任何数据或进行 Windows 10 的全新安装。
链接:
在传统模式(BIOS 引导而非 UEFI)下,BIOS 控制驱动器顺序。曾几何时,这曾经是由电缆控制的;但是更改 BIOS 设置胜过打开盒子和更换电缆。
BIOS 加载(到内存中)第一个磁盘(或由 BIOS 控制的驱动器顺序)的第一个扇区(称为 MBR 或主引导记录的磁盘的 512 字节),然后将(CPU)控制传递给这个“引导加载程序”。BIOS 就这样完成了它的工作,第一个扇区中的代码运行。
| 归档时间: |
|
| 查看次数: |
24136 次 |
| 最近记录: |