# 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分区、恢复分区一定要放某处的强迫症的话。 ## 安全启动(与bitlocker的大坑) [Ventoy](https://www.ventoy.net/cn/index.html)是个好用的东西,但联想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:os:reinstall_efi_partion_via_bcd_command),删掉并且重建各自的启动文件——同时解决了上面提到的Windows系统选择界面花屏现象。 > 一定要先完全删掉,再重建。直接重建的话,实际上只是重新加入了BCD文件,达不到目的。 测试成功后,将`boot/deepin`目录恢复进去,按理说重启后应该可以直接选择进入Linux。 如果不行,说明有意外或者操作错误,可以按[本章此处文章的“在_uefi_分区安装_grub”](linux:manjaro:install_manjaro_to_lvm_partition#在_uefi_分区安装_grub)一节修复,不过就麻烦多了。 ## Linux的启动项调整 这时候有两个问题,一个是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的东西应该都能在图形界面解决。 ## 微软的另一个流氓行为 [本站另外一个文章](mac:hackintosh:dual_boot_with_windows_and_pd)提到,“新版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`这里反映为一个“有效”的勾,看起来也是可以软件修改的,就暂时庆幸微软没有决定每次覆盖时再检测一下有没有被禁用吧!