我有Windows和Ubuntu的双重启动。当我打开机器时,BIOS执行POST,然后启动引导程序。
我想了解BIOS如何选择要运行的引导程序。我想知道双引导计算机中BIOS和引导加载程序之间正在进行的过程。
我有Windows和Ubuntu的双重启动。当我打开机器时,BIOS执行POST,然后启动引导程序。
我想了解BIOS如何选择要运行的引导程序。我想知道双引导计算机中BIOS和引导加载程序之间正在进行的过程。
Answers:
BIOS固件并没有真正选择引导程序。它从驱动器的扇区0加载代码并执行它。无论在那里,它将执行。希望它是一个引导加载程序(或加载引导加载程序的东西),但不一定必须如此。在早期的PC时代,您在软盘上玩游戏,这些游戏可以在没有操作系统的情况下直接启动和运行-这些现在称为“启动程序”。
UEFI固件实际上了解分区和文件系统,并扫描驱动器以查找UEFI系统分区类型。由于这是一个文件系统,因此可以在此处放置多个引导程序。UEFI固件应该提供菜单或其他方式供您选择使用哪个引导程序。
许多UEFI系统都在“传统模式”下启动-UEFI在该模式下加载“兼容性服务模块”(使它看起来像BIOS),并且实际上像BIOS一样工作。
GRUB是一种常见的开源引导加载程序,可以引导Linux或“链加载”(给予控制)Windows引导加载程序(通常是Windows分区的Boot文件夹中的winload.exe)。GRUB使您能够做出决定。GRUB可以读取配置文件并从中获取其默认选择。
如果您想获取大量详细资料,请阅读此文章。
sudo
或root用户将任何内容写入已卸载磁盘的原因之一。如果程序或恶意用户将恶意软件写入引导分区...
此图显示了控制如何从固件(BIOS或UEFI)传递到引导加载程序,以及如何从引导加载程序传递到Ubuntu中的操作系统。
如果操作系统以不同的模式(BIOS和UEFI)安装,则无法同时启动Windows和Ubuntu。
在关于将Ubuntu转换为UEFI模式的部分中,请查看此答案和https://help.ubuntu.com/community/UEFI。
grub引导加载程序也可以从相反的方向从UEFI转换为BIOS。Linux可以在BIOS模式下从GPT磁盘引导正常。看到这个答案:从EFI转换为BIOS引导模式
将Ubuntu转换为UEFI模式
在传统模式(BIOS引导而不是UEFI)中,BIOS控制驱动器顺序。很久以前,这是由电缆控制的;但是更改BIOS设置比打开包装盒和更换电缆更重要。
BIOS将第一个磁盘(或由BIOS控制的驱动器顺序)的第一个扇区(称为MBR或主引导记录的512字节磁盘)加载到内存中,然后将(CPU)控制传递给此“引导加载程序”。这样,BIOS已完成其工作,并且第一个扇区中的代码运行。