As I am wont to do when I get bored, and find an interesting article on Twitter, I'll dive into a new version of Linux OS that has something appealing to my interests in it. Today's OS of choice is Linux Parrot. My attention was brought to this version of Linux by a review somebody gave regarding rolling releases. I'm unimpressed one way or the other with rolling updates because most of my time on a Linux OS is for evaluation and not to do anything productive. I would like to find a default Linux OS, but no such thing has crossed my desktop so far. I thought Ubuntu might be it, but they have taken off in a weird direction that is neither Linux nor Windows. I'm not sure what they are up to but I've decided Mint is the only reliable distribution of Linux out there. Mageia has a lot of good stuff too for fans of Fedora. Then there is Parrot.
- LInux Parrot comes in several flavors:
Parrot Home MATE ISO (default)
Parrot Home KDE ISO
Parrot Home OVA
Parrot Security OVA
Parrot Security MATE ISO (default)
Parrot Security KDE ISO
and, Parrot Docker Containers
The Parrot I selected is a bit more than 3Gb in size, which is about double most of the Linux OS"s I've been looking at lately. This is due to the dozens upon dozens of extra utility programs installed as part of the network penetration testing suite. The download site isn't big and busy as are the more popular distro's would be so that it took around half an hour to download all those gigs. I tried different mirror sites too and they all were pretty slow. In any case, the sha256 checksum was perfect and I proceeded to make a Linux On A Stick installation on a spare 64Gb flash memory stick I had laying around. I did this using the tried and true virtual box method because I had no idea how well behaved the EFI part of this OS was going to be. The install went flawlessly in spite of the installer not looking like the Ubiquity installer most other Debian clones like to use. There was no ambiguity about what was going to happen and I liked that.
Booting my new Linux on a Stick didn't go as I expected. Normally I'd plug the USB stick into the laptop and boot from a cold start. Grub would appear and we'd go on from there. Not so with Parrot. Booting defaulted to Windows every time indicating to me that Parrot was doing something nobody else was doing during boot time. I tried using the Windows bootloader manager; pressing SHIFT while clicking Restart. The manager came up and the boot partition on the stick was an option. I chose that but it went back to Windows yet again. That told me that whatever Parrot put into the ESP partition was nothing Windows knew how to deal with. I think I know why but have yet to prove it. There is a default boot directory path in the ESP for external booting. It's the equivalent to Grub but goes by the name shimx64.efi. The UEFI standard says this is what is to be used to boot removable devices, but they don't say precisely what code to put in there. So, Parrot, like so many others, decided to put it's own version of Grub there and of course it's not recognized.
Undaunted, I had one other boot option to try. I installed rEFInd on the laptop as well as the desktop. It's the default for the desktop because I've become, well, pissed off with Grub. rEFInd allows you to see every bootable kernel on the system and not just the ones in the ESP boot directory. That means you can bypass EFI booting and load up the kernel directly from the installed system /boot directory. I can't tell you how many times that flexibility has saved me from destroying my desktop environment. That's why I put it on the laptop too but it is not the default boot manager on that machine. Since I'm doing beta testing for Microsoft I stick with their boot manager just to be safe. rEFInd found the Parrot kernel and allowed me to boot just like downtown.
The MATE desktop looks exactly like ... the MATE desktop. Nice but plain. Normally when I install Linux from an ISO there are some things missing and which I consider essential. Gparted is one example. For some unknown reason Gparted is on just about every bootable ISO but does not appear in the final installed system. I know why it's on the ISO but how difficult is it to install on the real system? Well, Parrot already had Gparted, and Bleachbit, and synaptic, and the nVidia drivers I typically put in place post install. This is really very thoughtful of Parrot.
You would think I'd be happy about all this but I was greatly disappointed when I looked for Gparted and found only its installation script. OK, so I'll install it using the Parrot supplied script. Nope. Didn't work. The script started, and actually downloaded Gparted from the repository. But no-go for the actual installation. After a few failed attempts I called on Google, my friend. It turns out I'm not the only one to have problems installing Gparted into Parrot OS. The script is broken right out of the box, so the self-proclaimed expert said. The solution is to download Gparted from it's website and do a manual install. Well yeah, but, but, but it's a tar ball. Who uses tar balls these days? So, it was time to learn about the Parrot archive manager and how to unpack Gparted. The only thing that was extracted was a script used to do the actual installation. It's a shell script and you got to now how to run those things, which I did so that there was no problem. It unzipped just fine and worked peachy. I also discovered that this version of Gparted can run stand alone or it can be registered as part of the OS. It works fine either way. If you don't register it, then it can be run from any directory you please which makes it very portable. I liked that a lot, but decided to learn how to register packages and integrate them into the OS. It's very simple if you know what the command line is.
I did the usual dist-upgrade and cleaned up the temp files and now have Parrot on a Stick working just like a pro. It still needs rEFInd to boot, but that's a minor problem. Irritating, but minor. I have yet to check out any of the forensic or pen testing routines. I have no idea what to do with most of them, but they are there if I should happen to learn. LOL
One other very interesting aspect of Parrot Linux is that it does not use ext4 file systems. It uses Btrfs instead. I've looked around and tried to get some info on Btrfs but there isn't much written about it. It's considered unstable, but is the wave of things to come. I guess it's like UEFI was about a dozen years ago. You can do things with Btrfs that can't be done with any journaling file system such as NTFS or ext3 or ext4. Sub-partitions seems to be the big advantage, but I have no idea why I would want a sub-PARTITION. I guess if I were running RAID I'd know why, but I'm not. About the only obvious difference in Btrfs is the terminal command line. There is more than the usual machine name prompt. It spells out what directory you are in and that tends to be confusing when you actually dive down into sub-directories. The home directory is at the top of the list instead of the bottom as it has been all my computer life. Well, they say this will be standard at some point in the future. Possibly, but right now it's an oddity and not very useful to me. But, I can say I now have experience with Btrfs. LOL