admin 管理员组

文章数量: 887007

一.情景重现

我原来的电脑使用的是Windows 10和Ubuntu 18.04的双系统,由于想要重新安装Ubuntu系统,我首先进入Windows系统,然后通过磁盘工具直接删除了Ubuntu系统所挂载的硬盘分区,以便清理空间进行重装。

重启电脑后,我计划通过BIOS选择从U盘启动来安装Ubuntu,但无论如何都无法进入BIOS或系统

在重启后,屏幕上仅显示以下命令,这表明我们已进入GRUB救援模式(grub rescue),这一模式通常用于故障排除,提示用户存在引导问题。

二.原因分析

在Windows中卸载Linux时,我格式化了Linux分区,并同时删除了Ubuntu的EFI分区,虽然在SYSTEM_DRV盘中仍保留有EFI文件夹及其中的Ubuntu引导项文件,但GRUB的引导依赖于EFI分区中的特定配置和文件,现在ubuntu的EFI分区被删除,GRUB无法找到必要的引导信息,即系统在启动时无法正确访问和加载这些引导项,使得BIOS无法定位到正确的启动路径,启动流程被中断。

最后,系统进入了GRUB救援模式(grub rescue),此模式用于解决引导相关问题,也间接表明系统未能找到有效的引导项。

总的来说,就是我卸载ubuntu没有卸载干净,只格式化了挂载的硬盘,没有将SYSTEM_DRV盘中的Ubuntu引导项文件也删除

下面的解决思路就是先进入windows中,然后再将Ubuntu引导项文件也删除干净,如果不是我这种情况的,可以单看进入windows的方法

三.解决方案

1.通过加载存放在系统盘中window的efi文件到系统(先进入windows系统)

1).找到系统盘

输出ls命令之后能看到很多括号括起来的内容,这些就是硬盘的分区,如下面所示

grub> ls
(proc) (hd0) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt5) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) 

接下来我们要找到启动的efi文件,一般放在系统盘中,于是我们要一个个找,一个个遍历(hdxx,gptxx)

像下面两种都不是系统盘,主要看单引号里面的名字,第一个是windows-SSD,第二个是未分配符盘的空间

grub> ls (hd0,gpt3)
        Partition hd0,gpt3: Filesystem type ntfs -Label ‘Windows-SSD’, UUID 5896xxxxxxxxxxxx - Partition start at 283648KiB -Total size 10487600KiB
grub> ls (hd0,gpt2)
        Partition hd0,gpt2: No known filesytem detected - Partition start at 283648KiB -Total size 16384KiB

找到‘SYSTEM_DRV’才正确,如下图所示,


grub> ls (hd1,gpt1)
        Partition hd1,gpt1: Filesystem type fat -Label 'SYSTEM_DRV', UUID AE58-XXXX - Partition start at 1024KiB -Total size 266240KiB

进入系统盘确定是否有bootmgfw.efi文件,我这边的路径是(hd1,gpt1)/efi/Microsoft/Boot/boot(不同电脑中的Microsoft也有可能是microsoft),最后能看到bootmgfw.efi就是正确的,可以接下来的步骤

grub> ls (hd1,gpt1)/efi
Microsoft/  ubuntu/ boot/
grub> ls (hd1,gpt1)/efi/Microsoft
Boot/  Recovery/
grub> ls (hd1,gpt1)/efi/Microsoft/Boot
BCD  BCD.LOG  BCD.LOG1  BCD.LOG2  bootmgfw.efi  bootmgr.efi  memtest.efi boot  Fonts/  Resources/  en-US/  ja-JP/  zh-CN/
grub> ls (hd1,gpt1)/efi/Microsoft/Boot/boot
bootmgfw.efi  bootmgr.efi  memtest.efi

2).将前面找到的磁盘分区表设置为系统引导分区表

注意修改为自己的系统盘,不一定和我一样是(hd1,gpt1)

grub> set=root(hd1,gpt1)

3).加载磁盘扇区引导文件到系统

注意路径要对

grub> chainloader /efi//Microsoft/Boot/boot/bootmgfw.efi

4).如果没有报错,直接输入boot命令就可以正常进入windows系统了

grub> boot

2.进入系统后删除之前给ubuntu分配的启动项的分区(再修改启动项)

可以看下列文章的第三章——3、删除ubuntu引导项的名字Win10下完整删除 [双系统ubuntu18.04](以及EFI、启动项)_使用diskpart命令显示并删除grub启动项-CSDN博客

本文标签: 报错 命令行 界面 正确 解决方案