烟萝 发表于 2023-5-9 20:29

Win10多系统,UEFI独立选择启动设置

本帖最后由 烟萝 于 2023-5-9 20:33 编辑

我就是无聊,我就是要用多系统,我就是讨厌BCD,我就是不用GRAD不用Clover。
————————————————————————
目标,开机F12显示UEFI启动项以后,选哪个系统就直接进入哪个系统,中间不过各种二次选择。

## efibootmgr
UEFI系统中,存在一个NVRAM(Non - Volatile RAM)中保存启动项。
在安装操作系统时,会将相关的启动项写入NVRAM。
在启动时,主板首先会读取NVRAM,然后确定可选的启动项。
一般来说ESP 分区,有几个文件夹就会有几个可选启动项,比如 Microsoft ,Ubuntu。

### BIOS 自检
> 在启动时,BIOS自检会扫描所有ESP分区,并且根据ESP分区内的文件来构建出启动选项。
> 如果在自检时,发现没有或不同的启动项,那么他会修改这个启动项或新增。
>
> 也就是说,每个UEFI文件夹对应的启动项,不可直接使用命令和工具修改,如果不删除文件夹在修改后都会重新出现。
>
> 比如你将 Windwos Boot Manager 的名字修改为Win10 ,启动后会重新变成Windows Boot Manager
> 比如你删除了 ubuntu 选项,但没有删除ubuntu文件夹,启动后会重新出现ubuntu
>
> 那么如何修改
> 我们可以隐藏原启动项,然后复制一个一模一样的,但修改名字。
> 这样就可以实现所Win10系统,但是不经过BCD

### 双Win10启动项选择
> 一、
> 首先我们需要有两个 Microsoft 文件夹。可以有两个ESP分区,也可以一个ESP分区弄两个文件夹,都可行。
> 在安装Win10双系统以后,这个文件夹内的BCD中都有两个系统的启动信息,我们再复制一个出来。
> 分为 系统A 系统B

> 二、
> 进入PE,打开修复软件,打开DIsk给两个ESP分区分配盘符。
> 新建一个新的启动序列,命名为A,找到第一个Microsoft文件夹内的efi文件
> 新建第二个启动学列,命名为B,找到第二个Microsoft文件夹内的efi文件> 然后隐藏原来的两个 Windows Boot Manager

> 三、
> 打开BCD编辑器,将第一个Microsoft文件夹内,BCD中的系统B删除。
> 同理,删除另一个文件夹BCD中的系统A。

> 四、
> 这样,我们在开机的UEFI选项中,直接选择A就进入系统A,选择B进入系统B。
> 不需要再进入BCD中进行选择。

### 安装第二个 Win10
一盘情况下,安装Win10后在ESP分区中生成一个Microsoft文件夹,里面保存的Win10的efi文件以及BCD文件,一个BCD至少有一个Win10系统实例。
在安装第二个Win10的时候,将会修改Microsoft文件夹里面的BCD文件,不会创建新的Microsoft文件夹。

> 如果你安装第二个系统的时候选择的是一片已经格式化好的分区,第二系统会安装在这个分区内,不会创建新分区。
> 如果第二个系统时选择的是一片未格式化的分区,那么第二个系统将会创建一整套分区,其中包括一个新的ESP分区。
> 但是启动信息依然会写入第一个分区的BCD文件中。
> 在启动时,选择Windows Boot Manager 将会进入BCD,之后在几个系统里面选择。


### 多种情况

如果是单硬盘单Win10系统:
如果是单硬盘双Win10系统:
如果是单硬盘双Win10 Linux系统:
如果是双硬盘双Win10系统:
如果是双硬盘,单硬盘Win10 Linux系统,单硬盘Win10系统:
如果是双硬盘,单硬盘双Win10系统,单硬盘Linux系统:


tsubasa9 发表于 2023-5-9 20:33

用refind不就完了

r_ex 发表于 2023-5-10 14:08

买多个硬盘,装每个系统的时候只插对应的硬盘就好了
为了方便换nvme硬盘,我还买了一个PCIE转nvme的转接卡

—— 来自 BlackBerry BBF100-4, Android 8.1.0上的 S1Next-鹅版 v2.1.2

macos 发表于 2023-5-10 14:56

目标可以实现,你得设定不同的路径,建立不同的引导项
这实际是写在主板配置里的,windows可能得防止他自作聪明瞎修改默认项

烟萝 发表于 2023-5-10 15:14

r_ex 发表于 2023-5-10 14:08
买多个硬盘,装每个系统的时候只插对应的硬盘就好了
为了方便换nvme硬盘,我还买了一个PCIE转nvme的转接卡
...

说实话我以前也是这么干的。
一个盘装A,装完拆了A用B盘装B。
但是一是受限于盘位有限,二是我的确很想搞清楚这破东西。

然后今天又折腾了一天,快跪了

烟萝 发表于 2023-5-10 15:21

本帖最后由 烟萝 于 2023-5-10 15:25 编辑

macos 发表于 2023-5-10 14:56
目标可以实现,你得设定不同的路径,建立不同的引导项
这实际是写在主板配置里的,windows可能得防止他自作 ...
这些其实都做到了,面临的问题是莫名其妙的修改……
一是,主板会自检并修改恢复选项与ESP目录下的efi文件对应,这个可能是笔记本BIOS的锅暂且放下。
二是,Win10即使关闭了快速启动也会每次都修改自己为第一启动项,(说是修改其实是先找到原启动项,如果找不到就添加新的,导致你不能修改原启动项)

同时两个Win10的启动项名称又完全相同,查文档也找不出来这个名字在哪里可以改。
现在想到的修改默认生成的项目有不同的名字,这样一二条就随他去吧

BCD 文件有两部分,Windows Boot Manager 和 Windwos Boot Loader
按理来说修改 Windows Boot Manager 中 description 的参数就等于修改了UEFI选项名称。
但是Win10的启动顺序是

→ UEFIBIOS
→ EFI系统分区(FAT格式的分区
→ \efi\Microsoft\boot\bootmgfw.efi
→ efi\Microsoft\BCD
→ \Windows\system32\winload.efi


BCD 文件怎么影响 bootmgfw.efi

文档看的头大……

macos 发表于 2023-5-10 15:26

你用bootice,可以自建efi,别管bcd
默认项应该是在正常关机时被修改的,可能有控制的注册表或者服务
主板好像没见过能强制先选单,避免自动进默认项的方法可能只有手动按

橋白 发表于 2023-5-10 15:35

搞不清楚这些,容易头大….我以前就是干脆装系统的时候只装一个盘 都装完以后靠bios选引导盘来切换系统…

论坛助手,iPhone

lwa190212 发表于 2023-5-10 15:46

msconfig > 引导 里面有个设置“使所有引导设置成为永久设置”,不知道有没有用

macos 发表于 2023-5-10 16:52

还有一个邪道用法,uefi支持回退路径,做多几个esp分区就行了,不同分区对应不同系统
由于只用上回退路径,只能用bootx64建引导,以及识别出来,也只是统一硬盘名的顺序选项

cat339 发表于 2023-5-11 13:37

本帖最后由 cat339 于 2023-5-11 13:38 编辑

仅提供思路

先弄一个FAT32 分区, 硬盘切一块或者无用的小U盘都可
在FAT32分区里建立文件夹 \efi\boot
下载UEFI SHELL :
https://github.com/tianocore/edk ... Shell/X64/Shell.efi
改名为Bootx64.efi, 然后从copy到刚才建立的/efi/boot

如此重启后, 进BIOS应该可找到这个Boot Option, 设成默认启动.
重启后应该可直接Boot到UEFI shell, 在shell下可以切换盘符, 访问文件夹, 运行.efi
那么手动找到对应OS的Bootx64.efi, 直接运行即可boot到目标系统.

手动boot成功后, 可以记录下路径写成.nsh 批处理档, 放到FAT32分区根目录下.
以后boot不同的系统只要运行不同的 .nsh档就行.

比如
1.nsh
FS1:\efi\boot\Bootx64.efi

2.nsh
FS2:\efi\boot\Bootx64.efi

想进哪个跑哪个
页: [1]
查看完整版本: Win10多系统,UEFI独立选择启动设置