![在uefi下更换不同操作系统的硬盘](https://linux22.com/image/159378/%E5%9C%A8uefi%E4%B8%8B%E6%9B%B4%E6%8D%A2%E4%B8%8D%E5%90%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%A1%AC%E7%9B%98.png)
这是一个先发制人的问题,以避免出现问题。
我目前使用一台台式电脑,其中一个硬盘驱动器位于盒中,另一个硬盘驱动器为内置硬盘(它们都是 SATA 驱动器);内部 1 TB 驱动器仅用于存储没有操作系统的数据(格式化为 NTFS,以便 Windows 和 Linux 都可以读取和写入)。作为启动驱动器(插入托盘中),我有几个硬盘驱动器,上面有 1 个或多个操作系统:
2 with Windows XP only.
1 with Windows XP and Linux Mint.
1 with Windows 7 and Linux Zorin.
当我想使用Win7或Zorin时,我将特定的硬盘放入托盘中并打开电脑;如果我想使用 Win XP 或 Mint,我会关闭电脑,取出驱动器并放入另一个驱动器(带有 XP 或 Mint),然后重新打开电脑。
目前所有这些工作都完美无缺,因为所有驱动器都使用 MBR 以传统模式进行格式化,并且引导信息位于驱动器上。但很快我就必须升级(或更换)计算机,并且我将需要使用 UEFI 和 GPT。我想继续使用球童和多个硬盘(当然我必须在新计算机上的 uefi 下重新安装它们),但从我迄今为止在各个论坛上阅读的内容来看,在更改硬盘时我会遇到一些问题,如下所示UEFI 的一些启动指令被写入主板芯片,我认为每次我将新操作系统安装到另一个硬盘上时,它都会被覆盖,因此只有最后一个硬盘上安装的操作系统才会启动。先前安装的 HDD 上的所有先前操作系统都将无法启动,因为系统没有将它们视为可启动驱动器或缺少其他内容(我只是在这里猜测,我不确定确切的原因或方式)
它是否正确?论坛上有没有人运行类似的系统并可以分享他们的经验?如果我的信息正确,有办法解决吗?
例如,是否可以将所有启动信息仅放在每个硬盘上? (仅需要存在该特定硬盘驱动器上的操作系统的信息)。
我希望我对设置的解释足够好,以便于理解。谢谢
答案1
当您提到“写入主板芯片的启动指令”时,您指的是UEFI NVRAM 启动变量。
根据 UEFI 规范,同时拥有多个引导变量应该不是问题:系统将按照变量指定的顺序尝试它们BootOrder
。
此外,UEFI 规范定义了一种使可移动媒体可启动的方法,无需 NVRAM 中的启动变量:如果媒体具有 UEFI 固件可识别的文件系统类型(规范要求 FAT32 支持,但允许选择支持)其他文件系统类型也是如此)并且该文件系统在 path 中包含有效的引导加载程序\EFI\BOOT\BOOT<architecture-ID>.EFI
,那么它将被识别为可引导。对于 64 位 x86 硬件,<architecture-ID>
将为X64
.如果介质采用 GPT 分区,则可能还需要包含引导加载程序的分区具有将其标识为 EFI 系统分区 (ESP) 的类型 GUID。
然而,某些 UEFI 实现将“帮助”删除引用不再存在的磁盘的任何引导变量。因此,如果您的新系统最终采用具有此“功能”的 UEFI 实现,您将不得不依赖所有球童 HDD 上的“可移动媒体启动”机制。在具有多个操作系统的磁盘上,您可以放入\EFI\BOOT\BOOTX64.EFI
一个引导加载程序,该引导加载程序可以显示引导菜单,然后加载选定的操作系统,例如 UEFI 版本的 GRUB2,或者可能是 rEFInd。
关于您的操作系统选择的支持:
- 现代版本的 Linux Mint 肯定会支持 UEFI。
- 快速谷歌搜索表明人们显然已经成功地使用 UEFI 启动 Zorin 并制作了有关如何执行此操作的 YouTube 视频。
- Windows XP 绝对是不是支持 UEFI 启动。
- 64 位版本的 Windows 7 SP1 可以支持 UEFI 启动,但您可能会遇到问题,因为该支持不像更高版本的 Windows 那样完善。您可能需要禁用安全启动。
如果您需要 Windows XP,则需要一个其 UEFI 实现包含 BIOS 兼容性支持模块(简称 CSM)的系统。如果您使用不包含 UEFI 兼容固件的较旧显卡,则无论您使用哪个操作系统,都需要启用 CSM,否则在操作系统显示驱动程序启动之前显示器将无法工作。
在某些 UEFI 实现中,除非禁用安全启动,否则 CSM/旧版 BIOS 启动的启动配置选项将被隐藏,因为安全启动需要本机 UEFI 启动,并且由于 Microsoft 的 Windows 10 认证要求,安全启动通常默认启用。
在许多具有 CSM 的 UEFI 系统上,可以选择系统是否更喜欢引导 UEFI 样式而不是传统 BIOS 样式,反之亦然。这将允许您以传统 BIOS 风格从插入的 Windows XP 盒启动,尽管系统可能会花一些时间尝试首先检测 UEFI 可启动系统。
注意英特尔计划到 2020 年从其产品中删除 CSM其他主板制造商可能会或可能不会这样做,因此,如果您需要为旧操作系统添加新硬件,最好立即行动,而当前型号仍包含 CSM。
此外,尝试在没有适当芯片组驱动程序的系统上运行 Windows XP 可能会很困难,甚至不可能。我强烈建议您研究一下通过虚拟化来满足您的 Windows XP 需求的可能性,以使 XP 安装独立于实际的物理硬件。例如,您可以在 Linux Mint 上安装 Oracle VirtualBox 并将 Windows XP 实例作为 VirtualBox VM 运行。
答案2
感谢 telcoM 对我的问题的广泛而详细的答复。因此,如果我理解正确的话,假设主板上的 BIOS/UEFI 芯片支持 UEFI 和 Legacy 模式,设置为同时使用,优先级设置为 UEFI 首先,并且关闭安全启动,而不是启动操作系统UEFI 模式下的 GPT 分区驱动器(如 linux mint 64 位),如果我插入带有基于 MBR 分区的 Windows XP 32 位驱动器,它也会启动吗?
并非所有 UEFI 系统都是一样的
然而,某些 UEFI 实现将“帮助”删除引用不再存在的磁盘的任何引导变量。因此,如果您的新系统最终采用具有此“功能”的 UEFI 实现,您将不得不依赖所有球童 HDD 上的“可移动媒体启动”机制。
有没有办法判断主板/BIOS芯片的UEFI系统是否属于“有帮助”类型?
Windows XP 绝对不支持 UEFI 启动。
如果我要在 GPT 分区驱动器上安装 64 位 Linux 发行版(如 mint),是否可以随后在 GPT 分区(NTFS 或 Fat32)上安装 Windows XP 32 位(双引导)?然而我从来没有按照这个顺序安装它 - 我总是先安装 Windows,然后安装 Linux,显然 Windows 与 Linux 不能很好地兼容!所以我可能会遇到其他问题 - 比如必须修复 Grub。谢谢