How to Dual Boot Parrot Linux and Ubuntu

If you want to dual boot Parrot Linux and Ubuntu on the same machine, the good news is that it is easier than a Windows dual boot: both systems are Linux, both understand each other’s filesystems, and both use GRUB, so there is no second bootloader fighting for control. The part that trips people up is ordering: which system you install first, who owns the bootloader afterwards, and how to share files between the two without permission headaches. This guide walks through a clean two-distro setup on a single UEFI machine, with Ubuntu already installed and Parrot OS going in alongside it.

Why dual boot Parrot Linux and Ubuntu at all?

A common pattern is Ubuntu as the daily driver, with office tools, printers and a browser full of logins, and Parrot Linux kept as a separate, cleaner environment for security coursework, CTF practice or just trying the KDE Plasma desktop that Parrot 7.4 ships by default. A virtual machine covers a lot of that, and the VirtualBox guide is the faster route if you only need a sandbox. Dual booting wins when you need direct access to hardware: a Wi-Fi adapter in monitor mode, a GPU for hashcat, or a laptop with 8 GB of RAM that cannot comfortably give half of it to a VM.

It is also a reasonable way to evaluate Parrot before switching to it. If you later decide to keep only one system, deleting the other is a matter of removing its partitions and refreshing GRUB.

Before you touch the disk

  1. Back up anything you care about. Resizing partitions is routine, but a power cut in the middle of it is not something you want to test your luck on.
  2. Confirm the machine boots in UEFI mode. From Ubuntu, run ls /sys/firmware/efi. If that directory exists, you are on UEFI, which is what this guide assumes. Legacy BIOS dual boots work too, but the bootloader steps differ slightly.
  3. Turn off Secure Boot in the firmware settings unless you already know your Parrot ISO is signed for your firmware. Ubuntu runs happily with Secure Boot off, and it removes an entire category of “the installer booted but the installed system does not” problems.
  4. Download the Parrot ISO from the download guide and verify it. For a dual boot the Home or Security edition live ISOs are the right pick, because their graphical installer lets you choose partitions manually.
  5. Make a bootable USB stick using the steps on the USB drive page. On Ubuntu, dd or the built-in Startup Disk Creator both work.

One more check that saves a lot of confusion later: note the exact device names of your disk and partitions from Ubuntu before rebooting.

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
sudo fdisk -l /dev/nvme0n1

On a typical Ubuntu laptop you will see a small EFI System Partition (around 512 MB, mounted at /boot/efi) and one large ext4 partition for root. Write those names down; they will look the same from the Parrot installer.

Which system should you install first?

If you are starting from scratch, install Ubuntu first and Parrot second. Both ship GRUB, but the last installer to run is the one that writes the EFI boot entry and becomes the default menu. Having Parrot’s GRUB in charge is slightly more convenient, because Parrot’s os-prober is enabled out of the box and finds Ubuntu without extra configuration. Ubuntu’s own GRUB has os-prober disabled by default in recent releases, so if Ubuntu ends up controlling the menu, you will need the one-line fix in the troubleshooting section below.

If Ubuntu is already installed, you are in the ideal position and can go straight to making room.

Step 1: Shrink the Ubuntu partition

You cannot shrink a partition while it is mounted, so do this from the Parrot live USB rather than from inside Ubuntu. Boot the stick, pick the live session, and open GParted from the menu or with:

sudo gparted

Select the Ubuntu ext4 partition, choose Resize/Move, and drag the right edge to free up space. How much depends on what you plan to do, but as a rule of thumb:

Use caseSpace to free for Parrot
Home edition, light use30–40 GB
Security edition with the full tool set60 GB or more
Security edition plus VMs or wordlists inside Parrot100 GB+

Apply the change and let GParted finish. Leave the freed area as unallocated space; do not create partitions in GParted. The installer will do that in a moment and will set the right flags.

Do not touch the existing EFI System Partition. Both systems are going to share it.

Step 2: Install Parrot Linux into the free space

Still in the live session, launch the installer from the desktop. The general flow is covered on the installation page; the part that matters for a dual boot is the partitioning screen.

  1. When asked how to partition, pick Manual partitioning. The automatic “erase disk” option will wipe Ubuntu.
  2. Select the unallocated space and create a new partition. Filesystem ext4, mount point /. Use all of the free space unless you specifically want a separate /home or swap partition.
  3. Click on the existing EFI System Partition (the small FAT32 one). Set its mount point to /boot/efi and make sure the installer is not going to format it. Formatting it deletes Ubuntu’s boot files.
  4. Leave the Ubuntu ext4 partition alone. Do not assign it a mount point and do not format it.
  5. Confirm the summary. Read it twice. The only partition that should say “format” is the new Parrot root.

Set your user name and a strong password, then let the installer run. It installs GRUB to the shared EFI partition under its own directory, so Ubuntu’s files there remain intact. Reboot and remove the USB stick when prompted.

Step 3: Check the GRUB menu

On the first reboot you should see Parrot’s GRUB menu with an entry for Parrot OS and, a little lower, one for Ubuntu. Boot into each in turn to confirm they both work. Then, from Parrot, make sure the Ubuntu entry survives future kernel updates by regenerating the menu once:

sudo update-grub

You should see a line reporting that it found Ubuntu on the other partition. If instead the menu shows only Parrot, jump to the troubleshooting section.

To pick which system boots by default, edit /etc/default/grub and set GRUB_DEFAULT to the entry number (counting from 0) or to the exact menu title in quotes, then run sudo update-grub again. GRUB_TIMEOUT controls how many seconds the menu waits.

Step 4: Share files between Parrot and Ubuntu

Because both systems use ext4, each can mount the other’s root partition read-write. The clean way is a dedicated mount point on each side. From Parrot, for example:

sudo mkdir /mnt/ubuntu
sudo blkid | grep ext4

Copy the UUID of the Ubuntu partition and add a line to /etc/fstab:

UUID=xxxx-your-ubuntu-uuid  /mnt/ubuntu  ext4  defaults,nofail  0  2

The nofail option keeps Parrot booting even if the partition is ever missing. Do the mirror image on the Ubuntu side for the Parrot partition.

Permissions are the catch. Linux stores file ownership as a numeric user ID, and the first user created on each distro is usually UID 1000, so in practice your two accounts will own each other’s files and everything just works. If you created extra users or the IDs differ, check with id -u on each system; aligning them, or keeping shared data in a directory with relaxed permissions, avoids “permission denied” surprises.

A tidier alternative is a third, shared data partition. If you plan on this, carve out the space in Step 1 and mount it on both systems at the same path, such as /data. For a deeper look at how ownership and modes work, see the file and directory permissions page.

Keeping both systems updated without breaking the bootloader

Each distro updates its own kernel independently, and each kernel update rewrites that distro’s GRUB configuration. With Parrot owning the menu, an Ubuntu kernel update is picked up the next time you run sudo update-grub from Parrot (or simply the next time Parrot installs a kernel itself). If you ever notice a new Ubuntu kernel missing from the menu, that one command fixes it.

On the Parrot side, use the distribution’s own upgrade wrapper rather than a bare apt upgrade:

sudo parrot-upgrade

It performs a full upgrade with the package pinning Parrot expects, which is especially important since the move to the Debian 13 base in the 7.x series. The software management page explains what the wrapper does differently.

Troubleshooting a Parrot and Ubuntu dual boot

GRUB shows only one system

If Ubuntu’s GRUB took over (for example because you reinstalled Ubuntu later, or installed Parrot first), its menu will not list Parrot because os-prober is switched off by default. From Ubuntu:

echo 'GRUB_DISABLE_OS_PROBER=false' | sudo tee -a /etc/default/grub
sudo update-grub

If Parrot’s GRUB is in charge and Ubuntu is missing, run sudo update-grub from Parrot and read the output; it should report the Ubuntu partition. If it does not, confirm the partition is intact with sudo blkid.

The machine boots straight into one system with no menu

The firmware is choosing a boot entry directly. From either system, list the entries and set the order:

sudo efibootmgr -v
sudo efibootmgr -o 0003,0001   # put the entry you want first

Use the numbers from your own output. You can also pick the entry once from the firmware’s boot menu (usually F12, F10 or Esc at power-on) to confirm which one leads to the full GRUB menu.

“error: unknown filesystem” or a grub rescue prompt

This usually means a partition was moved or deleted after GRUB was installed. Boot the Parrot live USB, mount your Parrot root and the EFI partition, chroot in and reinstall GRUB. The GRUB troubleshooting page walks through the chroot steps in detail.

The clock is wrong after switching systems

This is a Windows-style symptom, but it can appear on Linux-only machines if one system was told to treat the hardware clock as local time. Run timedatectl on both and make sure both say the RTC is in UTC. If one disagrees, sudo timedatectl set-local-rtc 0 brings it in line.

FAQ

Can I dual boot Parrot Linux and Ubuntu on two separate drives instead?

Yes, and it is cleaner. Install each system to its own disk, each with its own EFI partition, and use the firmware boot menu or GRUB to choose. The steps above still apply; you just skip the resizing and select the second drive during manual partitioning.

Will installing Parrot damage my Ubuntu install?

Not if you use manual partitioning and never format the Ubuntu root or the EFI partition. The two places people lose Ubuntu are choosing the automatic “erase disk” option and ticking the format box on the EFI partition.

What about adding Windows to the same machine as well?

A three-way boot is possible, but install Windows first, because its installer assumes it owns the disk. Then follow the Windows dual boot guide for the Parrot half and add Ubuntu last, enabling os-prober as shown above so every system appears in the menu.