电脑安装Linux与Windows双系统的关键配置
问题描述
2024年10月20日, 获取了微软的最新版 Windows 11 LTSC
版本,
于是将台式机上的Windows 10 LTSC
升级为Windows 11 LTSC
.
在之前的双系统配置中,我们使用相同的UEFI
分区,这样即可以减少对固态硬盘的分区,设置起来也方便。但是,在安装完成Windows 11
后,
发现每次启动到Windows 11
后再重启,则UEFI
分区将会被重写,这导致了GRUB
被覆盖掉了,于是无法进行Linux
的引导!此问题虽然可以挂载ArchLinux
安装盘后重新挂载分区修复,但是再次使用Windows 11
后,问题再次出现。相较而言,我的笔记本上仍然是Win10
+
ArchLinux
的配置,它却没有出现此问题。根据上述情况可以得出结论,微软想独占硬盘,进而阻止Linux
启动,这无形中增加了Linux
用户的使用门槛,导致一此人不敢轻易换到Linux
系统下工作。
通过上述分析,Win11
的流氓行为恰恰反映了微软感受到了Linux
的压力,这可以证明Linux
越来越受到重视。为了实现同一电脑上自由的切换操作系统,且用上最新的Windows
,本文在实践的前提下,记录下此可行方案。
解决方案
设置 Windows 11独占一块硬盘
由于我的台式机有多块硬盘,所以单独拿出一块256G
的SSD
安装Windows 11 LTSC
,
同时在安装过程中要删除已经存在于另一块512G
的Nvme
固态硬盘上的UEFI
分区和16M
的Windows
预留分区。这样操作下来,在新的256
硬盘上安装Windows
时,它就会自动创建EFI
分区在256
硬盘上,也就相当于Windows
独占了这块256
固态硬盘。当使用完Windows
后,再重启时它虽然会检查并重写EFI
分区,但是也只是写这个256G
硬盘,所以也就不会影响512G
硬盘上的GRUB
了。
恢复 GRUB 分区
在安装Windows 11
的过程中删除了512G
硬盘上的UEFI
分区,这是为了防止Windows
自动将其设置为自己的UEFI
。此时,Linux
是无法引导的,因为它的UEFI
分区已经被删除了。所以,我们现在要重建这个分区。由于使用了Manjaro
的Live
镜像启动后,再用Gparted
软件同时删除了之前的UEFI
和16M
预留分区,所以硬盘分区表就发生了变化,所以重新安装GRUB
后,要修改/etc/fstab
文件,确保原来硬盘的/
、
/home
和/boot/efi
分区正确挂载。插入Ventoy
启动U盘
,
选择ArchLinux
,成功启动后依次执行下述命令。
重建 GRUB
在重建GRUB
前使用lsblk
查看硬盘分区,记住512G
硬盘的新分区,对应挂载到相应的挂载点。
1 | mount /dev/nvme0n1p1 /mnt/ |
重建GRUB
配置时,命令grub-mkconfig
会自动搜索电脑所有的硬盘,并将找到的操作系统启动项加载到GRUB
菜单中,在启动时可以随时选择。接下来的重点工作是修改Linux
的分区表,
下面仅列出需要修改的部分。
1 | # /dev/nvme0n1p1 |
重新启动系统
1 | exit |
设置双系统的时间同步
为了避免主力系统ArchLinux
出现问题,切换到Windows11
后,右键开始菜单,选择以管理员身份打开 「PowerShell」
,输入以下命令:
1 | Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 |
解释
支持UEFI
的主板,对于每一个UEFI
分区,在启动时BIOS
菜单中就会有一个启动项。Window 11
流氓的地方就是安装时它自动探测所有硬盘中的UEFI
分区,并占据第一个默认启动的UEFI
分区,而切换到Windows11
后它就会重写这个分区,覆盖其他的操作系统引导。所以在双系统的配置中,应当先确保无其他UEFI
分区的前提下,单独安装Windows 11
,
然后在Linux
的安装盘上单独划分一个UEFI
分区,再安装Linux
或恢复GRUB
.
安装Linux
或恢复GRUB
后,启动Linux
,
再执行一遍grub-mkconfig
以搜索添加Windows 11
的启动项.
虽然BIOS
中存在了两个启动项,但是每次切换系统都按F8
或其他按键来切换系统不是太方便,于是才有在GRUB
中添加Windows11
的操作,这样想的切换操作系统时一个上下移动菜单就方便解决了。
对于只有一块硬盘的电脑,要么建立两个UEFI
分区然后再安装Windows11
和Linux
.
要么直接使用一个UEFI
分区,然后安装Windows 10
和Linux
,
既然Windows
是作为一个备用系统处理那些不得不在Windows
处理的文件,所以也没必要追求最新,因此我的笔记本上仍然使用Windows10
+ArchLinux
方案。