解决安装windows后Linux引导被覆盖的问题

这篇博客讲述了在安装Windows过程中遇到的EFI分区格式问题,导致Linux无法正常启动。作者通过两种方法解决了这个问题:一是重新安装Linux并创建新的EFI分区;二是使用chroot环境修复GRUB引导。在尝试EasyBCD和Boot-Repair未果后,成功通过手动修复GRUB配置和安装GRUB到正确分区实现了双系统的正常启动。
摘要由CSDN通过智能技术生成

强烈谴责windows的霸道行径!!!

首先安装windows时提示检测到EFI分区为NTFS格式,请格式化为FAT32后重试。但是所有的EFI分区都是FAT32的。然后我尝试着把之前安装Linux时设置的EFI分区删了,使用windows安装程序自己生成的EFI分区,然后就安装成功了,但是Linux就进不去了。

方法一:再安装一个Linux

再弄出一片空闲空间,安装一个Linux发行版,比如ubuntu,安装的时候新建一个EFI分区。装完之后所有系统都可以进去了。

方法二:重新安装grub

先利用启动盘等方式进入live操作系统,然后利用lsblk等方式找到你想用来提供grub界面的linux发行版的分区,假设是/dev/A。然后把这个分区挂载到/mnt

mount /dev/A /mnt
cd /mnt

然后把/mnt/dev, /mnt/proc, /mnt/sys, /mnt/run都挂上:https://seekstar.github.io/2022/04/27/在chroot环境中挂载dev-proc-sys/

然后把EFI分区挂到mnt/boot/efi(其实在chroot里mount也可以):

mount /dev/EFI分区 /mnt/boot/efi

然后chroot到原有Linux:

sudo chroot /mnt

然后在chroot里生成grub配置:

update-grub

然后安装grub到EFI分区所在的磁盘:

grub-install /dev/EFI分区所在的磁盘

然后检查/etc/fstab里的/boot/efi所在的行,如果使用的是UUID,那么可能需要改成/dev/EFI分区,因为UUID可能会改变,导致之后进不去系统。

然后退出chroot,重启之后应该就可以看到正常的GRUB界面,Linux和Windows系统也应该都能进去了。

P.S. 不知道为什么,chroot到deepin的分区之后重启看不到GRUB界面,但是chroot到debian的分区之后重启就能看到GRUB界面。

参考:https://unix.stackexchange.com/questions/96977/grub-probe-error-failed-to-get-canonical-path-of-cow#96981

失败的尝试

首先尝试了EasyBCD,选择免费版安装即可。但是添加新条目中Linux/BSD没法选驱动器(灰色的)。
在这里插入图片描述
然后烧了个ubuntu启动盘,在试用模式下使用boot-repair,虽然提示修复成功了,但是开机后直接进入了grub命令行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值