
前言
在使用Win的时候,切换成Win的系统就看到中间圆圈转着更新,就预料到要坏事了,过不起然使用win以后切换Arch时发现grub的选项已经没有了,而是系统自动引导成win11系统,这个事情告诉我们折腾双系统一定要关闭win下的强制更新。
正文
修复grub
grub启动项没有了,首先就想到的是win11更新后,将自己的boot卸载了原先boot的分区中,并且由于windows优秀的排他性,直接给我的grub给干没了。
EasyUEFI
这个工具可以在windows中方便的进行UEFI启动的管理(当然是想办法搞破解版的),因为现在电脑压根不会进入grub,bios中也不可能有grub启动项这个选项,因此我需要做的是手动创建一个grub启动项。
使用工具发现windows的boot真是一个“好”东西,直接在我的硬盘中扣出了256M重新写了一个fat格式的启动盘,完完全全的绕过了我的grub启动盘,这个时候就好办了,重新添加一个指向我原来grub分区的引导就好了。
结果不出所料重启后选择grub已经可以了,只不过是进入grub rescue模式,报的还是no such partition
的错误,证明我的原本的启动盘是完好无损的放在原处的。
修复grub进入ArchLinux
1 | # 使用ls查看硬盘名 |
此时进入ArchLinux执行一下命令;
1 | sudo grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub |
这个命令是让grub重新写入一次硬盘,具体的参数要根据当时装系统挂载启动盘的参数来定。
修复win11 Code 0xc0000098
回到win11想着原先自动写的启动盘是不是可以格式化了,结果格完win11又蓝屏了,好嘛,在win里修了linux现在在去linux中修win。
win修复工具
这个就没什么难度,用U盘重新做一个win11的启动盘,开机后疯狂按F12,选择USB启动,前提是在BIOS中设置了允许USB启动盘以及安全模式关闭。
正常的装系统步骤,但是在选择安装的那个界面点击左下角的修复工具或高级选项字样。
选择地一个修复工具等待后,就可以正常进入win系统了。
至此整个原地踏步的工作就结束了。
grub中添加win启动项
因为win11是支持grub启动的,于是接下来就是将win自己的boot盘给格式化,通过grub对arch以及win11同时支持。
grub customizer工具
这个工具是Linux下,对grub方便进行管理的工具能够通过可视化的界面生成grub.cfg配置文件。
在工具中添加一个新的启动项,编辑如下:
1 | menuentry "Windows" --class windows --class os $menuentry_id_option 'osprober-efi-CCBE-74D2' { |
注意: 这里的CCBE-74D2
是我的启动分区的uuid,可以通过fsdisk -l
或者cfdisk /dev/****
进行查看分区uuid;
保存后会自动生成 grub.cfg 到启动分区下的/boot/grub/grub.cfg
.
在shell中执行sudo grub-mkconfig -o /boot/grub/grub.cfg
,写入grub;
重启后grub中就同时有了Arch 以及 win11,这是可以在bios的设置中将win的启动项给删除;
总结
虽然看起来一直在白忙活但。。。好吧确实是白忙活,更能了解操作系统如何启动不是。
复现效果应该很差,很多小细节没有记录只是写了一个大的流程。