If your computer boots straight into Windows, drops to a grub rescue> prompt, or shows no boot menu at all after a Windows update, the GRUB boot loader of Parrot Linux needs to be reinstalled. You can do that from a live USB drive in about ten minutes without losing data. This guide covers UEFI and legacy BIOS systems and the Btrfs layout that recent Parrot installations use.
Common causes
- A Windows update replaced the boot entry or changed the boot order.
- Windows was installed after Parrot and overwrote the boot loader.
- The installation was interrupted, or GRUB was installed to the wrong disk.
- The firmware boot order points at the wrong entry. Check that first: open the UEFI boot menu (often F12, F11 or Esc at power-on) and see whether a parrot entry is listed. If it is, select it and move it to the top of the boot order in the UEFI settings. You may not need anything else.
Repair GRUB from a live USB
1. Boot the live system
Start the computer from a Parrot (or Debian) live USB drive in the same mode as the installed system: UEFI if Parrot was installed in UEFI mode, legacy if not. Open a terminal and become root:
sudo -i
2. Identify the partitions
lsblk -f
Find two partitions:
- the root partition of Parrot (file system
btrfsorext4, usually the largest Linux partition), for example/dev/sda2or/dev/nvme0n1p2; - on UEFI systems, the EFI system partition (a small
vfatpartition, often the first one), for example/dev/sda1.
Replace the device names below with yours.
3. Mount the installed system
For an ext4 root partition:
mount /dev/sda2 /mnt
For a Btrfs root partition (the default on recent installations), mount the root subvolume. List the subvolumes first if you are not sure of the name:
mount /dev/sda2 /mnt
btrfs subvolume list /mnt # usually shows @ (root) and @home
umount /mnt
mount -o subvol=@ /dev/sda2 /mnt
On UEFI systems, also mount the EFI partition:
mount /dev/sda1 /mnt/boot/efi
Then make the live system’s devices available inside it:
for d in dev proc sys run; do mount --rbind /$d /mnt/$d; done
4. Reinstall GRUB inside the installed system
chroot /mnt
grub-install /dev/sda
update-grub
exit
Give grub-install the disk (/dev/sda, /dev/nvme0n1), not a partition. On UEFI systems it writes to the mounted EFI partition and creates a new boot entry. It should end with “Installation finished. No error reported.”
5. Reboot
reboot
Remove the USB drive when the screen goes dark. The GRUB menu should appear.
Windows is missing from the GRUB menu
Recent GRUB versions do not search for other operating systems unless you allow it. On the installed Parrot system, edit /etc/default/grub and add or uncomment this line:
GRUB_DISABLE_OS_PROBER=false
Then make sure the detector is installed and rebuild the menu:
sudo apt install os-prober
sudo update-grub
The output should include a line such as “Found Windows Boot Manager”.
Errors you may see
mount point does not existfor /mnt/boot/efi: the root partition was not mounted correctly (on Btrfs, check the subvolume). If the folder is really missing, create it withmkdir -p /mnt/boot/efi.EFI variables are not supported on this system: the live USB was started in legacy mode. Reboot it in UEFI mode.cannot find EFI directory: the EFI partition is not mounted at/mnt/boot/efibefore thechroot.- The PC still boots Windows: set the parrot entry first in the UEFI boot order, and turn off Windows Fast Startup.
Prevent it next time
- Install Windows first and Parrot second. See dual boot Parrot Linux and Windows.
- Keep a Parrot live USB drive at hand.
- After a large Windows update, check the boot order before assuming GRUB is broken.
FAQ
Will reinstalling GRUB delete my files?
No. It only rewrites the boot loader. Your Parrot and Windows files are untouched.
What does grub rescue> mean?
GRUB started but cannot find its files, usually because a partition was moved, resized or deleted. Repair it from a live USB as described above.
Is my system UEFI or legacy?
In the live system run ls /sys/firmware/efi. If the folder exists, it booted in UEFI mode.