卸载GRUB并使用Windows引导程序

我预装了Windows 8,然后又安装了Ubuntu的GRUB引导程序。但是Ubuntu不适合我,所以现在我想将它和GRUB一起删除。根据我的了解,在UEFI模式下,GRUB不会覆盖位于EFI分区中的Windows引导程序,而是存储在其他地方。我应该如何删除GRUB并让我的电脑使用Windows引导程序呢?需要注意的是,我在安装Ubuntu时创建了一个单独的/boot分区。

1对于那些在同一台或不同的硬盘上双启动Windows和Ubuntu,并且不想让Grub引导加载器出现并默认为Windows启动,而将Ubuntu作为第二个选项从UEFI启动,只需更改UEFI中的启动顺序,将Windows放在第一位,Ubuntu放在第二位,这样就能解决问题。 - Ilja KO
14个回答

这个答案适用于那些在删除grub之前删除了Ubuntu分区的UEFI用户

您将在Windows 10上执行此操作,无需可启动媒体。

bootrec /fixmbrbootsect /nt60以及使用Ubuntu live和boot-repair建议都失败时,以下方法对我有效:

(这个答案完全引用自这里)

以管理员权限运行cmd.exe进程 运行diskpart 输入:list disk,然后输入sel disk X,其中X是您的引导文件所在的驱动器 输入list vol以查看磁盘上的所有分区(卷)(EFI卷将以FAT格式化,其他卷将为NTFS) 通过输入sel vol Y选择EFI卷(这几乎总是EFI分区) 为方便起见,通过输入assign letter=Z:为其分配一个驱动器号,其中Z是一个空闲的驱动器号 输入exit退出磁盘分区工具 在cmd提示符中,输入Z:并按Enter键,其中Z是刚刚创建的驱动器号 输入dir列出此已挂载的EFI分区上的目录 如果您在正确的位置,应该会看到一个名为EFI的目录 输入cd EFI,然后输入dir列出EFI内部的子目录 输入rmdir /S ubuntu删除ubuntu引导目录
假设你只有两个操作系统(Win 10和Ubuntu),现在你应该能够直接启动Windows,而不会遇到黑色的grub屏幕。

5我更喜欢这个解决方案,因为我不想创建一个可启动的设备,它完美地运行了。 - Efi Kaltirimidou
1重新启动后,我收到了“重新启动并选择正确的引导设备”的提示。 - kross
我发现在BIOS的“启动”菜单下还有一个子菜单,它仍然引用了已删除的“ubuntu” grub项目。我将其设置为“Windows”,然后它就正常工作了。 - kross
传说。这对我来说非常完美,我用的是Razer Blade Stealth Windows 10和Ubuntu。我想为出售笔记本电脑进行完全恢复,但需要清除引导菜单+ Ubuntu。谢谢。 - wired00
28哇,一切都正好在你说的地方! - stackOverlord
6这对我有用,但我还有一个问题:这实际上是移除了grub,还是在后台仍然有一些事情正在进行,grub将事务交给了Windows引导加载程序? - Bram
1@Bram 我不能确定,因为我对此并不了解,但我猜测这些步骤实际上会删除 Grub 的程序文件,因此它将彻底消失。 - armadadrive
4这是有效的解决方案。由于GPT的存在,MBR已不再存在。 - dev_nut
1这里有一个视频教程:https://www.youtube.com/watch?v=ZTMCKOx5Jz0,如果你需要的话。 - sonlexqt
我之前安装尝试搞砸了,所以收到了一个关于rmdir的通知:"文件或目录 \EFI\ubuntu\fw 已损坏且无法读取。请运行Chkdsk工具。" - hsandt
虽然我不得不强制卸载它,但我已经完成了这个任务。移除是成功的,但是我在启动菜单中仍然看到了Ubuntu。 - hsandt
1花了好多时间在askubuntu和其他stackexchange的帖子上阅读,终于找到了这个宝藏。非常感谢! - petobens
1不客气。我希望我能为这个答案负责,但遗憾的是,我只是转发了对我有帮助的步骤。我很高兴它对其他人也起到了很好的作用! - armadadrive
花了好几个小时试图摆脱GRUB,结果这个方法奏效了。感谢解决方案。我也是用Surface Pro 3,所以这个方法适用于Surface设备。如果你再次运行/dir命令,你会发现ubuntu文件夹已经被删除了,所以它确实将其彻底移除了! - Fezzo
2对于那些遇到可怕的“System BootOrder not found. Initializing defaults”错误导致重启循环的人来说,我不得不按F2并选择“Windows Boot Manager”。其他一切都正常运作,非常顺利! - tomsihap
所以,我完全按照这个方法操作了,但是重新启动后,我的笔记本陷入了无限循环启动的困境。我不知怎么做,成功进入了BIOS,并选择了Windows系统。请问如何防止这种情况再次发生? - devb
2如果你只是想为EIF系统分区指定一个驱动器字母,使用DISKPART有点不必要的复杂 - 你可以将步骤2-7合并为一个mountvol Z: /s命令。 - user1686
这是正确的删除启动项的方法。 - hunzter
3如何在文件资源管理器中删除已分配的字母后,它现在显示在哪里。 - Faiz Hameed
对我有用-递归删除了Ubuntu目录,但电脑进入BIOS-如果我按ESC键或退出BIOS,它会关机而不是启动Windows。 - Ashu
经过很多折腾,终于成功了!! - pgalilea
1尽管这是正确的,但这还不够。BIOS启动菜单中仍然有Ubuntu。我使用efibootmgr应用程序彻底删除了它-https://askubuntu.com/a/923231/452738 - John Strood
2得到一个错误:“虚拟磁盘服务错误:不允许对当前引导或页面文件卷分配或移除驱动器号码。” - drerD
我完成这些步骤后,如何恢复已删除的EFI/ubuntu文件夹? - Pakpoom Tiwakornkit
1我只是评论一下,来展示我有多么爱你。 - Bang Dao
1我只是想补充一下。如果你不想在那之后看到卷的容量,你可以在同一个磁盘分区中删除该卷的信件。选择该卷,然后只需输入 remove - evening_g
这对清理任何支持EFI的发行版(如Ubuntu)的活动系统非常有效,并且停止了对我的UEFI系统的干扰。非常感谢您,这绝对应该被接受为答案,@mrolive。 - H2-san
按照这些步骤后,我的电脑完全无法启动了。以前我可以通过grub终端手动使用chainloader引导Windows,但现在连这个方法也不起作用了。 - user2392762
2022年8月24日,这个还有效。非常感谢!!! - Omar Dulaimi
1这个方法是不完整的。虽然它移除了GRUB,但却保留了启动项,导致启动速度变慢,没有必要这样做。不幸的是,无法通过Ubuntu Live CD来修复这个问题(因为GRUB已经不存在了)。要修复引导程序,您需要从Windows CD中运行bootrec /fixmbr命令,请参考https://askubuntu.com/a/654913。 - Jan Kalfus
@armadadrive或其他人-这个在我的Windows 11安装上完全可行。现在是否安全地回收我分配给Ubuntu安装的空间?不想做任何假设。 - heights1976

要恢复Win 10的默认引导程序,请按照以下步骤进行操作:
1. 登录Win 10 2. 打开命令提示符(管理员权限) 3. 输入命令:c:\> bootsect /nt60 <驱动器名称>: /mbr 其中,<驱动器名称>是要更新主引导记录(MBR)的驱动器字母。
例如,要更新C盘的主引导记录,请使用以下命令: c:\> bootsect /nt60 c: /mbr 如需了解有关bootsect命令的更多帮助,请参阅此处: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bootsect-command-line-options

5这绝对是最好的解决方案,只需一分钟,无需安装光盘,也不需要USB。 - Pavel Niedoba
2一些CISCO Talos的烦人软件曾经阻止我在操作系统内完成这个任务,但是自从Windows 10之后,你再也不需要安装盘来完成这个操作了。我刚刚就成功地完成了这个操作,而且没有使用安装盘;你只需要注销,使得你处于登录界面,然后按住Shift键并点击右下角的电源图标,选择重新启动,然后松开Shift键。这将打开与修复盘相同的菜单。你只需进入“故障排除” > “高级选项” > “命令提示符”,然后运行bootsect /nt60 c: /mbr命令。Grub会立即消失。 - SeinopSys
12似乎对我无效。只有在我按下退出键之前,Grub才会出现。 更新了NTFS文件系统的引导代码。由于在更新期间无法锁定卷,因此更新可能不可靠: 访问被拒绝。??\PhysicalDrive0引导代码仅在MBR分区的磁盘上进行更新。此磁盘使用了不同的分区方案。 成功地更新了所有目标卷的引导代码。 PS C:\WINDOWS\system32> - Menasheh
1/mbr 是做什么用的?我查找了关于 bootsect 的文档,但是没有找到任何关于 /mbr 的内容。 - user483903
@PieTillIDie /mbr 意思是主引导记录(Master Boot Record),这肯定是关于写入 MBR,以覆盖 grub 放置的内容。 - David Faure
对我来说不起作用 - Salman Amintabar
了不起的人,它起作用了! - Rigoxls
这对我有效。我是通过Win 10恢复USB完成的。你要从X:\Windows\System32开始。我运行了cd /d c:,然后运行了bootsect /nt60 c: /mbr。我得到了一个访问被拒绝的错误和一个成功的消息。拔掉USB并重新启动,一切正常! - Force Hero
它在我的MBR安装上运行得很顺利,没有任何问题。 不过,我对命令行感到困惑:c:>并不是你输入的内容。在我的情况下,是一些C:\windows32\something。'>'实际上是命令提示符的最后一个字符。作为用户,你开始输入命令时要使用单词'bootsect'。 - udippel
@ForceHero 这对我来说不起作用。它给出了一个错误信息:“由于在更新期间无法锁定卷,因此更新可能不可靠 - 访问被拒绝”。 - alex
2解决错误的方法:更新可能不可靠,因为在更新期间无法锁定卷: 访问被拒绝。??\PhysicalDrive0。1. 重新启动并按F12键打开您的BIOS屏幕(根据您的型号,可能是F8或F2)。2. 您应该看到Ubuntu Grub作为第一个引导加载程序,Windows作为第二个。3. 按照BIOS中的说明更改顺序。这个视频可能会有所帮助-https://www.youtube.com/watch?v=46OofQo1W_4 - jerrymouse
经确认,此方法适用于在MBR分区上安装Windows操作系统。 - Chemist
在我的情况下没有起作用。UEFI戴尔XPS台式机。 - Ashu
谢谢你,拯救了我的一天。 - cloverink
谢谢!我可以告诉你,它也适用于Windows 11。 - ianaz
这仅适用于MBR分区表。如果使用GPT,您应该使用armadadrive的答案。 - PoDuck

在Windows 10中删除引导加载程序EFI / 系统分区

快速指南

以管理员身份打开PowerShell

mountvol S: /S
S:
cd .\EFI\
dir
rd /S Ubuntu

详情

管理员 PowerShell

在开始菜单的Windows搜索栏中输入powershell。寻找一个带有标签"Windows PowerShell"的蓝色图标,右键点击该图标,在上下文菜单中选择"以管理员身份运行"

将EFI/系统分区挂载为卷

在给定的驱动器上挂载EFI系统分区,请使用mountvol命令并使用/S参数。您可以选择任何空闲的驱动器字母,例如"S"。

mountvol S: /S

访问已挂载的卷

现在分区已经挂载。我们可以通过将cd命令和驱动器字母S:作为参数切换到该驱动器来访问已挂载的卷

cd S:

为了确保我们能够解决这个问题,我们应该执行以下操作:
cd \

我们现在可以使用dir命令列出当前路径下的目录,以确保我们确实在UFI分区驱动器上。
dir

输出应该类似于这样:
Directory: S:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2019-01-17     12:55                EFI
-a----       2018-10-16     10:57             31 startup.nsh

删除引导程序

你的引导程序位于EFI目录中。 使用cd命令切换到该目录,并通过dir命令列出条目。

cd .\EFI\
dir

你的输出取决于你安装的引导加载程序,这里有一个Windows和Ubuntu的示例。
Directory: S:\EFI


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2018-12-06     06:55                Ubuntu
d-----       2018-12-05     05:21                Microsoft
d-----       2019-01-17     12:55                Boot

现在你可以通过Remove-Item命令和参数-Recurse来删除不需要的加载器。 请勿删除引导目录或Windows目录!
Remove-Item -Recurse .\ubuntu

3只有你的答案对我的情况起作用。谢谢! - yushulx
3给未来的自己的便签:这是唯一有效的解决方案 - KhoPhi
5在PowerShell中,我不得不使用“Remove-Item ubuntu”命令来替代“rd /S ubuntu”。感谢您分享这个解决方案! - BlueDev
2这是适用于具有EFI的系统的正确答案,尤其是如果您将Linux安装在单独的驱动器上,这是最佳选择。天哪,有那么多复杂的答案,而实际上这个过程非常简单。 - Seamus
1你是不是想写的是 rd /s ubuntu 而不是 rd /S ubuntu?在 rd 的手册中没有 /S 选项,而且对我来说也没用。我像 @BlueDev 一样使用了 Remove-Item ubuntu - geras
我这样做后,启动菜单上还是有一个"Ubuntu"的选项,所以我就把它删除了。 - geras
1@geras 我修改了指令。感谢你的反馈。 - Felix Quehl
@geras 在启动菜单中还有一个Ubuntu条目。你是怎么删除它的? 我执行的命令如下:mountvol S: /S S: cd .\EFI\ dir Remove-Item -Recurse .\ubuntu - user1216630
当你确定文件夹名称没有拼写错误时,你可以尝试在Remove-Item命令中添加-Force参数:Remove-Item -Recursive -Force .\ubuntu - Felix Quehl
谢谢,这对我有用。 - Madhusudan chowdary
太棒了! - gnuchu
参数不正确。 - itsazzad
你使用的是哪个Windows版本?我在Windows 10.0.19042.1889上测试了mountvol S: /S,它运行良好。 - Felix Quehl

你可以使用Windows 8/8.1 DVD来恢复Windows引导程序。这些指令是受到Manindra Mehra的回答启发的,但我扩展了它并提供了完整的工作细节(经过Windows 8.1 DVD验证)。

  1. 将DVD放入光驱并从中启动。

  2. 当显示“按任意键从CD或DVD启动”时,按下一个键。

  3. 选择您的语言等,然后点击“下一步”。

  4. 点击“修复您的计算机”。

  5. 点击“故障排除”。

  6. 点击“高级选项”。

  7. 点击“命令提示符”。

  8. 在命令提示符窗口中,输入“bootrec /fixmbr”。

  9. 点击红色的“X”关闭命令提示符。

  10. 点击“关闭您的PC”。

  11. 重新打开电脑,它应该直接启动进入Windows。

这将使Ubuntu分区保留在您的硬盘或固态硬盘上。要删除它,请按照以下步骤操作:
1. 按下Windows+X,然后选择Disk Management。 2. 找到Ubuntu分区。它可能是一个没有驱动器字母的大分区。 3. 确保您选择了正确的分区! 4. 右键单击该分区,并使用Windows文件系统进行删除或重新格式化。

要这样做,您将需要一张Windows安装CD/DVD。

  1. 将其放入光驱中并从中引导
  2. 在安装屏幕上,在询问您是否要安装Windows的位置,点击屏幕左下角的修复您的计算机
  3. 现在打开命令提示符(可能会显示一个窗口,上面写着"正在尝试自动修复Windows",关闭它),然后输入BootRec.exe /fixmbr
  4. 等待完成后,GRUB将被移除,您可以直接启动Windows
  5. 您的计算机中仍有一个Ubuntu分区,在"My Computer"中不显示,要访问该分区,请右键单击"My Computer",选择"Manage"并转到"Disk Management"
  6. 选择Ubuntu分区,并将其格式化为Windows可使用的文件系统。

为了完整起见,还需要从EFI引导菜单中删除Ubuntu。我认为这应该作为第7步添加进去。 - Yibo Yang
请通过解释如何进入命令提示符来修复第三步。Michael Geary的答案更加完整。这个答案曾经导致我不知道如何进入命令提示符而不必要地重置了我的电脑一次。 - Chris Vilches

使用UEFI,你在efi分区中有一个Windows文件夹和一个Ubuntu文件夹。UEFI会读取efi条目并将它们添加到自己的NVRAM中以便记住它们。你必须先从efi分区中删除Ubuntu文件夹,否则UEFI会重新添加它。然后你需要从UEFI中删除UEFI条目。
你应该在efi分区中拥有这些文件夹。只删除Ubuntu文件夹。安装程序应该显示这些文件夹。如果只有Windows系统,你需要从Windows内部挂载efi分区,因为它通常不会被自动挂载。
/EFI/Boot
/EFI/Microsoft
/EFI/ubuntu

你不需要安装Ubuntu,但可以使用Live Installer DVD或闪存驱动器。一些UEFI系统可能会允许您从UEFI菜单中进行UEFI编辑。

通过LiveDVD或闪存驱动器使用efibootmgr

sudo efibootmgr -v

"-v"选项会显示所有条目,以便您确认要删除的是正确的条目,然后您使用"-b ####"(指定条目)和"-B"(删除条目)的组合。示例#5是删除的条目。
sudo efibootmgr -b XXXX -B

另请参阅
man efibootmgr

这对我指导我需要做的事情非常有帮助。我可以使用这里的信息在Windows中删除Ubuntu分区:http://superuser.com/questions/662823/how-do-i-mount-the-efi-partition-on-windows-8-1-so-that-it-is-readable-and-write - flickerfly
1通过使用一个活动的USB启动盘,我首先运行了"efibootmgr -v"命令,然后使用"-b 0002 -B"选项成功解决了问题。之前在Windows系统中尝试修复引导记录(fixmbr)没有起作用,而这个解决方案相对来说更加简单易行,比其他一些解决方案要容易得多。 - Casperrw
1这绝对是最简单的方法来删除启动项。非常感谢你。顺便说一下,链接已经失效了。 - Tek
移除无效链接,并为efibootmgr的man页面添加示例建议。有些制造商不识别efibootmgr,那么你唯一的选择就是进入UEFI菜单(而不是UEFI一次性启动菜单),在启动选项卡上编辑条目。 - oldfred

没有光盘、USB、DVD。没有冗长的教程。
在UEFI上,你只需要做以下几步:
将Windows引导项放在NVRAM中作为第一个。
如何操作 - 有几种解决方案。
最简单的解决方案是使用固件功能重新排序NVRAM引导项。

对于想知道如何找到此选项的人,请进入您的BIOS设置。 - GMaster
谢谢!太简单了。 - Greg Cowell

我成功的方法是:
1. 启动到Windows 2. Win + X 3. 以管理员身份运行命令提示符 4. 输入命令:bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi 5. 重新启动

你还可以使用USB存储设备完成这个任务。需要三个应用程序:Unetbootin,FreeDOS和Testdisk for DOS。
首先下载Unetbootin并使用它制作一个可启动的USB存储设备。在提示选择要安装的发行版时,请选择Freedos。
下载Testdisk for DOS(不要选择beta版本,而是选择稳定版本)。
解压缩testdisk.exe和CWSDPMI.exe文件,并将它们放在可启动的存储设备上(不要放在文件夹中,直接放在根目录)。
从存储设备启动计算机。在默认窗口中,只需按Enter键。
现在正在启动FreeDOS。选择:FreeDOS Safe Mode (don't load any drivers),然后按Enter键。
然后输入:C:,按Enter键。
现在输入:testdisk,按Enter键。
选择[No Log],按Enter键。
选择相关的硬盘:通常是第二个选项(第一个选项是存储设备本身),按Enter键。
选择[Intel],按Enter键。
选择[MBR Code],按Enter键。当提示时,输入y(是),再次按Enter键。
现在你完成了!正常重新启动你的电脑。你的电脑现在应该能够启动Windows了。

1欢迎来到AskUbuntu!看起来这是一段复制粘贴的内容,请考虑在您的回答末尾附上原始页面的链接。 - TheSchwa

如果一切都失败了!
上面那个人的方法在新一代EFI电脑上不起作用。我解决了这个问题,下面是我的解决方法。警告:你必须先重新安装Linux/grub!
步骤:(如果其他方法都不起作用且需要花费较长时间)
1:重新安装Ubuntu/Linux Mint(这样你就可以使用GRUB引导进入Windows)。
1.5:重启并进入Windows(如果无法进入Windows,则从CD或USB进行现场引导,并在控制台中运行以下命令)。
如果你有Windows修复光盘,可以选择UEFI固件选项并从那里加载Windows(以避免重新安装Linux)。

引导修复(如果需要立即修复)


sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get update

sudo apt-get install -y boot-repair && (boot-repair &)

1g:选择推荐的修复选项,并按照屏幕上的指示进行操作。
2g:完成后,重新启动。你应该能看到grub菜单,尽管你可以从这里启动Windows,但这还不是我们想要的...找到进入Windows的选项。
2:一旦进入Windows系统,运行磁盘分区编辑器并删除与Linux / grub相关的所有分区。特别要确保删除小的grub分区。重新启动。
2.5:确保Windows加载程序是首选的启动设备(很可能是)。禁用Ubuntu选项。继续启动。
3:如果你在这一点上做得没错,你应该会看到(根据你的计算机)闪屏一秒钟,然后变成一个错误屏幕,显示启动时出现错误(最可能是“Winload.exe丢失或损坏”)。
3.5:不要惊慌(我当时就是)。下一步将恢复你的原始引导程序。
4:重新启动并从Linux光盘或USB启动。
5:一旦启动,再次运行上述的引导修复命令。这次运行时会有所不同,因为没有检测到grub引导程序需要重新安装,所以速度比之前快。
6:完成后,重新启动。
7:享受没有GRUB的系统吧!
这对我来说是唯一有效的方法,我尝试了bootrec.exe,但都无效。这拯救了我的电脑生命,希望也能拯救你的!

我做了这个,但完全没有起作用。 - undefined

  • 相关问题