Win11-Win10-深度Linux三系统独立共存安装笔记

近期土豪了一把,搞了个2x2T的双硬盘电脑。有大硬盘当然需要折腾,计划其中一块盘装一个Win 10 LSTC,另一个盘装Win 11加深度Linux。两块盘尽可能相互独立。

最严格的独立办法自然是在主板层面上禁用一块,用哪个启用哪个,可惜联想这鸟主板居然不提供这个功能。退而求其次,要求软件层面独立,在两个Win系统的资源管理器中相互禁用对方的盘,并且所有NTFS分区开bitlocker,只在绝对必要时解锁对方。

留三个互不影响的启动入口,只有在启动时手动按F12选择临时启动设备才能切换系统,不搞三个系统相互启动那一套。

具体的步骤太繁琐,就不详细写了,只记录一些关键步骤。

Linux无所谓,但Windows这边最好先装Win10,因为(貌似)后装的系统会自动搜索先前安装的Windows系统的启动文件并且把自己替换进去。

如果先装Win 11,Win 10会去修改那些Win 11创建的文件,但由于老年人不了解年轻人的原因,应该是搞坏了某些文件,造成了奇特的Windows系统选择界面花屏现象。

最好先设计好分区,如果你有EFI分区、恢复分区一定要放某处的强迫症的话。

Ventoy是个好用的东西,但联想UEFI固件的默认值对其并不友好。安全启动下默认自然进不去,甚至也进不去导入key的界面。

这个导入界面我一开始以为根本就找不到,还以为联想这鸟商务电脑就是安全啊,几天后发现,想要像别的电脑一样在安全启动失败后显示导入Ventoy安全启动key的界面,需要在联想的UEFI固件的安全启动相关界面中打开一个叫什么允许Third Party的选项。

但是!这样搞之前,一定要确认Windows没有开Bitlocker加密,或者你已经可靠地备份了Bitlocker恢复秘钥!因为这个导入被TPM芯片视作是重大改动,会自动让之前储存的解密key失效。如果你没有备份,那不要挣扎了,格式化重装吧!我是因为系统自动备份到了微软账户在逃过一劫。

不管什么顺序装,原生的安装器总是尝试给自己尽量加入到其他启动菜单中,比如深度Linux就把自己加到了Windows的efi文件夹中(貌似没被识别……或者被鄙视了……),两个Windows也一直尝试共用Windows boot loader,总之刚装完是挺混乱的。

同时,Windows一直尝试共用Windows boot loader,也造成有一个Windows是从另外一块硬盘的EFI分区启动的,这会造成无法在这个系统中禁用另一个硬盘——Windows不允许禁用自己的启动分区。

于是,装完三个系统之后,我实际上干的事情就是逐步删掉了所有原生创建的启动项,手动重建一次。

首先,备份一下Linux的启动项,在对应的EFI分区的boot/deepin目录下,把这个目录压缩存下来。其他地方也会有一些grub什么的文件,不用管,都是复制品。

然后,逐个启动Windows系统,用本站此处提供的办法,删掉并且重建各自的启动文件——同时解决了上面提到的Windows系统选择界面花屏现象。

一定要先完全删掉,再重建。直接重建的话,实际上只是重新加入了BCD文件,达不到目的。

测试成功后,将boot/deepin目录恢复进去,按理说重启后应该可以直接选择进入Linux。

如果不行,说明有意外或者操作错误,可以按本章此处文章的“在_uefi_分区安装_grub”一节修复,不过就麻烦多了。

这时候有两个问题,一个是Linux的启动项此时经过了挺多调整,似乎不是很稳。另一个是grub菜单中这时候有两个Windows启动项,看着烦。

第一个问题好解决,就是再来一次update-grub,但每次都会重新生成对应于Windows的菜单项目。这个行为是os-prober引起的,据说可以卸载之,也可以在/etc/default/grub文件中加入一行GRUB_DISABLE_OS_PROBER=true来禁用操作系统检测。

这个`/etc/default/grub`文件中有用的配置项还不少。

## Windows的bitlocker的调整

通过上面导入Ventoy安全启动key插电开不了机的事情,我觉得依靠TPM未免太安全了点,容易把自己搞傻帽了,并且也存在在另外一个操作系统偶尔解锁使用还要输入长长的48位数字的问题,决定把这玩意儿改成手输密码的。

但是发现Windows给C盘的加密配置设置了很多障碍。默认情况下,似乎是非得依赖TPM来解密不行。要更改这个行为,实现使用密码给C盘的bitlocker解锁,有很多配置项。

  1. 组策略:计算机配置-管理模板-Windows组件-Bitlocker驱动器加密-操作系统驱动器
  2. 启动时需要附加身份验证配置为启用;
  3. 配置对操作系统驱动器使用密码配置为启用;
  4. 管理员powershell,手敲命令:manage-bde -protectors -delete C: -t TPM,作用是禁止使用TPM解锁C盘。TPM与纯密码不能共存,不要被一些关于开启PIN码的消息迷惑,PIN码不是密码,而是用来解锁TPM的,如果TPM出了问题,PIN码是没有用的。
  5. 管理员powershell,手敲命令:manage-bde -protectors -add c: -pw,这一步会要求你交互式设定密码,之后就OK了。

其他有关bitlocker的东西应该都能在图形界面解决。

本站另外一个文章提到,“新版Windows加了一个极其恶心的特性:每次启动后把自己的启动项调整到第一位”,现在这个行为又升级了,就是似乎EasyUEFI也防不住了。

这个行为的实质是:每次开机,检测是否存在名为Windows boot manager的UEFI启动项。如果没有,就新建一个,如果有但跟自己不一致,就覆盖原有的(所以你们知道为啥Windows原生安装器的行为是不询问用户而默认给自己加BCD了吧,因为他自己都怕自己)……而后无论如何,都把这个Windows boot manager的UEFI启动项调整为第一。

因为是三个操作系统并且希望能在开机时手动选择,我把对应于两个Windows的项目的名字都改了,用Diskgenius还是EasyUEFI无所谓,只要名字不是Windows boot manager,这样启动时看的清楚,起码不会被上述行为覆盖,能用。

但每次启动看到第一条是Windows boot manager,终究是比较碍眼。目前还有效的办法,一个是在UEFI侧开启动顺序锁定,禁止软件更改这个列表,这个需要主板支持。

另一个是在UEFI中把Windows boot manager这个条目“禁用”掉,让他存在但不参与开机临时选择。这个方法在Diskgenius这里反映为一个“有效”的勾,看起来也是可以软件修改的,就暂时庆幸微软没有决定每次覆盖时再检测一下有没有被禁用吧!

  • 最后更改: 2023/03/14 17:09