[Tut] Parrot on WSL 2 (Official)

Before the actual steps, I want to say a special thank to author of Spatacoli blog. This tutorial can’t be there without this awesome article: Custom WSL Image – Spatacoli

The article above is licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

Prepare environment:

In this tutorial im using 2 different machine:

  • Parrot to create image from docker and Windows to create wsl. Create image from Parrot or any Linux distro is not required. Docker is required to create image
  • Windows for the WSL (ofc). User MUST have WSL version 2 and I strongly recommend user to install Windows Terminal


I. Create wsl image from docker

  1. Pull latest docker image
  2. Export compressed file from docker image

II. Create wsl system

  1. Transfer image to Windows
  2. Import image
  3. Customize


I. On Parrot (install docker by sudo apt install docker.io)

1.Search parrot image on docker. In this example I’ll use “parrotsec/core”
command: docker search parrot

2. Pull the image docker pull parrotsec/core

3. Create image (?) docker create -i parrotsec/core bash

Terminal will show a long hash value that we’ll use in next step


  1. Generate image file docker export <hash value> > parrotsec.tar

(note: the extension is tar. I typed .tar.gz by mistake). I renamed the file to “parrotsec.tar” after this export command. The file name is not important thing and won’t make any differences

II. On windows machine

  1. Transfer generated tar file to Windows machine. In this example I created local web server and downloaded file on Windows machine via HTTP.

  2. Import image. Command structure is like the screenshot bellow

Command wsl –import ParrotSec D:\ParrotSec C:\Users\dmknght\Downloads\parrotsec.tar

After image is imported, users can start Parrot’s cli by click on “down arrow” button

Parrot is started

  1. To start Parrot from terminal by default, you can go to settings of Windows terminal and change default profile to ParrotSec

Hey @dmknght , your code to import doesn’t quite work, at least not for me. What did work was this:
wsl --import ParrotSec D:\ParrotSec C:\Users\<username>\Downloads\parrotsec.tar

The structure of import command is wsl --import <distritubtion name> <save path> <import file> and i have no idea why the fuck it had god damn () and [] on this article. Must be something when i copied from libre.

It must be, if I hadn’t been reading the help output myself I wouldn’t have noticed the issue and wouldn’t have gotten it to work :rofl:

In Microsofts infinate wisdom the only error I get after attempting to build the image on windows 10 is “unspecified error” when trying to run

wsl --import <distritubtion name> <save path> <import file>

I will keep smacking away at it. Build on *nix and move to M$ crap…

Did you enable wsl2? it could be the reason of your error i guess.