A dual boot keeps Ubuntu in three places, and the partition is only one of them. The root filesystem sits on its own partition, the bootloader sits on the EFI system partition, and the firmware keeps a pointer to that bootloader in its own boot list.
Delete the partition on its own and the machine can still stop at a grub> prompt. Remove all three in the order below and Windows Boot Manager is the one thing the firmware starts.
Where a dual boot keeps Ubuntu
A UEFI machine reads a list of boot entries from its own storage and starts the first one that still loads. Each entry holds a label and a device path, and that path names a file on the EFI system partition.

The EFI system partition is a small FAT32 partition, usually 100 MiB on a machine where Windows Setup created it. Both operating systems share it, and removing Ubuntu means editing what is left inside it.
The disk I worked through carried four Windows partitions before the two Ubuntu ones. That order is what leaves the reclaimed space at the end of the disk rather than next to C:.
Setting the dual boot up in the first place touches the same three places, which is what the dual boot setup guide walks through.
| Where it lives | What it holds | What removes it |
|---|---|---|
| The Ubuntu partition | the ext4 root filesystem and the swap area | delete the partition |
| The EFI system partition | the EFI/ubuntu directory with shimx64.efi and grubx64.efi inside | remove EFI/ubuntu |
| The firmware boot list | the Boot entry whose path names shimx64.efi | efibootmgr on Linux, bcdedit on Windows |
The chain runs in that order, so the delete at the bottom of the list is the step that changes nothing on its own.
Firmware keeps that list in NVRAM rather than on the disk, which is why a partition tool cannot see it and why reinstalling Windows does not clear a stale Linux entry. The entries survive every change you make to the partitions underneath them.
What you need before you delete anything
Nothing here needs a Windows installation disc, though having one within reach costs nothing. The list below is decisions rather than downloads, apart from the live USB if you take that route.
- A copy of anything on the Ubuntu partition, because deleting the partition takes the home directory with it.
- Either Windows administrator rights or a Linux live USB, since the firmware entry is quicker to remove from Linux and the partitions are quicker to remove from Windows.
- The disk name you are about to edit, which lsblk or Disk Management shows, and which every command below takes as its argument.
- The current firmware boot order written down somewhere, so you can put it back if the machine stops starting.
The live USB is the safer of the two removal routes because it can mount the EFI system partition read-write without booting from the disk it is editing.
I read the boot order before changing anything, and that note is what makes putting it back a short job. The same listing tells you which entry the firmware starts from today.
How to uninstall Ubuntu from a dual boot
The four steps below run in the order that keeps the Windows entry valid at every point. Work in whichever system has the tool for the step, and reboot only after the last one.
Find which partitions are Ubuntu
Linux names each partition by type, and that column is what you check before anything is deleted. An Ubuntu install carries an ext4 root and usually a swap area, and both show a filesystem and a Linux partition type that the Windows partitions do not.
lsblk -o NAME,SIZE,FSTYPE,LABEL /dev/sdb

I read the type column first, because it is the one that settles which lines are Ubuntu. Sizes and labels are specific to the disk, so read the columns rather than the numbers.
A missing drive letter is not the test. On the disk above, the EFI system partition and the Microsoft reserved partition have no drive letter either, and the reserved partition has no filesystem at all.
Neither of those two is Ubuntu. The reserved partition is 16 MiB of space Windows keeps for its own metadata, and the EFI system partition is the one both systems start from.
blkid prints the same partitions with their labels and UUIDs and no tree, which is the shorter check on a disk with several entries. The UUID is also what the fstab file inside the Ubuntu install refers to, so it is worth recognising.
If the partition type column is new to you, partitions and filesystems explains what each type means, and the lsblk and blkid walkthrough covers the remaining columns.
Read the EFI system partition before you touch it
The EFI system partition holds one directory per operating system, and Ubuntu’s is named ubuntu. I mounted it somewhere empty and listed what was inside.
sudo mount /dev/sdb1 /mnt
ls -R /mnt/EFI

The listing above shows three directories. Microsoft and BOOT belong to Windows, and ubuntu belongs to the install you are removing.
BOOT is the fallback path, the file firmware opens when a boot entry is missing or unreadable, and Windows places its own copy there. Check what that copy is before you delete anything named BOOT.
ls -l /mnt/EFI/BOOT/ /mnt/EFI/Microsoft/Boot/

Both files are 1622536 bytes on the disk I checked, which makes them the same file under two names. A matching byte count is a strong hint, and cmp on the two paths settles it if you want certainty.
That check is what stops the cleanup turning into a wipe of the only copy of the Windows Boot Manager on the machine.
Remove the Ubuntu boot entry
On Linux, efibootmgr lists every entry with its number, label and device path. The firmware entry is the one that survives the partition delete, and it is what produces the grub> prompt afterwards.
sudo efibootmgr -v
Find the line whose label is Ubuntu and read the path on it. The path names EFI/ubuntu/shimx64.efi, which is the directory you are about to remove.
sudo efibootmgr -b 0003 -B
efibootmgr needs a kernel with efivarfs mounted, which every current distribution provides, and the efibootmgr manual page lists the rest of its flags. The four-digit value is the Boot entry number from the listing, and the B flag deletes it.
Windows lists the same firmware entries through a different command, and the bcdedit reference covers it. The store you want is the firmware one rather than the Windows one, so the command takes that argument.
bcdedit /enum firmware
The Ubuntu entry appears as a firmware application with an identifier in braces. Delete it by identifier, from a command prompt opened as administrator.
bcdedit /delete {identifier}
A machine with two identically labelled firmware entries is the case where this step goes wrong, and the device path is what tells them apart.
Delete EFI/ubuntu from the ESP
With the entry gone, the directory it pointed at is the next thing to remove. Ubuntu’s is a directory and not a single file, so the remove is recursive.
sudo rm -rf /mnt/EFI/ubuntu
ls /mnt/EFI

Both remaining directories belong to Windows. If the mount is read-only, remount it with the read-write option first, because firmware writes to this partition and some live sessions mount it read-only.
Removing both the entry and the directory works with Secure Boot enabled, since it checks the signature on the file a boot entry names rather than the entry itself. The Secure Boot settings guide covers turning it back on afterwards.
Delete the Ubuntu partitions and take the space back
Both routes end in the same partition table. Nothing after this point touches the boot chain, so this is the step where a mistake costs data rather than a boot.
From Windows Disk Management
Disk Management opens from diskmgmt.msc in the Run dialog. Right-click each Linux partition and choose Delete Volume.
Only the partitions with a Linux filesystem go. The EFI system partition, the 16 MiB reserved partition and the recovery partition stay behind, because each one belongs to Windows.
Delete Volume is inactive on the EFI system partition by design, and it is inactive on the reserved partition for the same reason.
From a Linux live session
sgdisk deletes by partition number, and every other number in the table stays where it is. Work from the highest number down and the listing still matches what you saw a moment ago.
sudo sgdisk -d 6 /dev/sdb
sudo sgdisk -d 5 /dev/sdb
lsblk -o NAME,SIZE /dev/sdb

The warning is expected rather than a failure. sgdisk has written the new table to the disk, and the running kernel is still using the copy it read when the disk was detected.
That is why lsblk keeps listing the partitions you just deleted. A partprobe call asks the kernel to reread the table.
sudo partprobe /dev/sdb
sudo sgdisk -p /dev/sdb

I ran partprobe before trusting the listing, and sgdisk -p then showed the table I had written to the disk. Reading the kernel’s own copy instead is what makes a finished delete look unfinished.
| Partition | Type code | Keep or delete |
|---|---|---|
| EFI system partition | EF00 | keep, both systems boot from it |
| Microsoft reserved partition | 0C01 | keep, Windows metadata |
| Basic data partition, C: | 0700 | keep |
| Basic data partition, recovery | 2700 | keep, holds the recovery tools |
| Linux filesystem | 8300 | delete |
| Linux swap | 8200 | delete |
Ext4 and swap are the two Linux types. Everything else on a Windows disk belongs to Windows even when it has no drive letter, and the swap memory guide explains what the second one does while the install is alive.
Deleting the swap partition costs nothing beyond the space it held, since Windows never mounted it. The root partition is the one to copy off first, because it holds everything the Ubuntu side saved.
If you would rather work from a graphical tool, the partitioning tools roundup and the disk partitioning guide both cover this step.
When the machine still stops at a grub> prompt
A firmware entry that still names EFI/ubuntu/shimx64.efi produces the prompt, because shim loads GRUB from the copy on the ESP. That is the one cause, and it is why the fix touches the firmware list rather than the disk.
Typing exit at that prompt is not a repair, because it only hands control to the next entry in the firmware list. The prompt returns on the next start unless the entry that produced it is gone.
The screen shows the line Minimal BASH-like line editing is supported with a grub> prompt beneath it. GRUB gets there after looking for grub.cfg on a partition that no longer exists, which is why the message looks unrelated to the disk.
Boot back into Windows or into a Linux live session and check the firmware list once more. The entry is still there, and deleting it ends the prompt.
sudo efibootmgr -v
sudo efibootmgr -b 0003 -B
bcdboot copies the Windows boot files back to the EFI system partition in one command, and mountvol gives you the drive letter it needs. A machine that will not start Windows at all has lost those files rather than gained a Linux one.
mountvol S: /s
bcdboot C:\Windows /s S: /f UEFI
On UEFI machines, bcdboot writes the boot files into the EFI/Microsoft directory and adds the Windows Boot Manager entry to the firmware boot list, placing it first by default.
The GRUB rescue prompt errors page covers the neighbouring failures, and the GRUB menu settings cover the timeout you may want to change first if you plan to keep both systems.
When Delete Volume or Extend Volume is greyed out
Delete Volume is inactive on the EFI system partition and on the Microsoft reserved partition, and that is Windows refusing to remove something it starts from.
Extend Volume is inactive when the free space is not directly after the volume you are extending, which is the usual outcome once Ubuntu is gone. The space Ubuntu occupied sits after the recovery partition on a stock Windows 11 disk, so the C: volume has no adjacent free space to grow into.
| What you see | Why | What to do |
|---|---|---|
| Delete Volume inactive | the partition is the EFI system partition or the reserved partition | leave both alone, neither is Ubuntu |
| Extend Volume inactive | the recovery partition sits between C: and the free space | create a new volume in the free space instead |
| Both inactive on a second disk | that disk may hold the EFI system partition Windows boots from | run bcdedit /enum firmware and efibootmgr -v before deleting anything on it |
| The Ubuntu entry returns after a reboot | the firmware entry was removed but the directory was not, or the other way round | remove both, then check efibootmgr -v once more |
Creating a new volume in the free space costs nothing and leaves the recovery partition where Windows expects it. Moving the recovery partition is possible as well, though it needs free space on both sides.
The check to run before you reboot
Run both listings once more and read them against the two answers you want. The partition table should show the Windows partitions and none of the Linux ones, and the firmware list should show no Ubuntu entry.
lsblk -o NAME,SIZE,FSTYPE,LABEL /dev/sdb
sudo efibootmgr -v
A restart from Windows after that is the last check that matters. I would keep the live session open until both listings come back clean, because the repair is a two-command change from there.
Frequently asked questions
Does deleting the Ubuntu partition delete Windows files?
No. The delete applies to the partitions with a Linux filesystem, and the Windows volumes on the same disk are separate partitions that the command never names.
Why is Ubuntu still in the boot menu after I deleted the partition?
The firmware entry and the EFI/ubuntu directory are separate from the partition, and both survive it. Remove the entry and the directory as well and the menu entry goes.
Can I remove Ubuntu without a Linux USB stick?
Yes. mountvol S: /s mounts the EFI system partition in Windows and bcdedit reaches the same firmware list, so the whole procedure has a Windows-only route.
Is it safer to leave the Ubuntu boot entry alone?
An entry that points at a missing file is what produces the grub> prompt, so removing it is the repair rather than the risk.
What if Ubuntu is on a second disk?
Then that disk may hold the EFI system partition Windows boots from. Check bcdedit /enum firmware and efibootmgr -v before deleting anything on it.
Do I need to disable Secure Boot first?
No. Secure Boot verifies the signature on the file a boot entry names, and removing the entry and the EFI/ubuntu directory works with it enabled.
