twitter email
Running newer Linux Kernels in older Parallels Desktop versions
Feb 1, 2020
5 minutes read

I am using Parallels Desktop 13 to occasionally work with Virtual Machines. Some time ago I upgraded an older Kali Linux installation to a newer one and suddenly Parallels Tools stopped working. Copying and pasting from and to the host, resizing the screen, etc. weren’t working any more. Here’s how I fixed it without fiddling around in Parallels Tools:

TL;DR: Parallels Tools only support more recent Kernels in the more recent versions of Parallels Desktop. You can simply replace the prl-tools-lin.iso in your old installation with the current from the demo.

Analysis

First of all, I tried reinstalling Parallels Tools, but it obviously failed. After I while, I noticed that the VMs Linux Kernel had been upgraded, so I chose the previous one from the GRUB boot menu and everything worked perfectly fine again. Therefore, I set up some more VMs, running different Kernel versions in different versions of Parallels Desktop. I found out that the more recent ones aren’t supported by my old Parallels Desktop installation, while they perform properly in newer versions. So can you simply download the demo of the current Parallels Desktop version, install Parallels Tools in your VM from there and downgrade back? Not quite. It works, but as soon as you start up your VM back in the old version, it will automatically initiate an “update” and install the old Tools again. So where are the Tools coming from? Turns out, Parallels Tools are available as an disk image (iso file) for all guest operating systems at /Applications/Parallels\ Desktop.app/Contents/Resources/Tools/. The appropriate image (e.g. prl-tools-lin.iso when running a Linux guest) is then mounted into the guests filesystem and the installation (e.g. sudo /media/cdrom0/install --install --verbose) is run from there. My first idea was to simply swap the old prl-tools-lin.iso, shipped with my version, with the current one from the demo and it turned out: It actually works! Unfortunately the issue with the auto-update kicking in after every boot remains, but it’ll now install the current Tools version, I’ve just patched. Still, this auto-update is pretty annoying, but after quite a while, I’ve figured that every VMs config.pvs (right-click on the VM fileShow Package Contents) contains a switch to turn off auto-updates, located at XPath ParallelsVirtualMachine/Settings/Tools/AutoUpdate. Just set Enabled to 0 and you’re good to go!

Because doing all that by hand is pretty lame, I wrote a short Bash script that performs the following:

  1. Download the current demo of Parallels Desktop to /tmp/pd.dmg
  2. Mount the DMG
  3. Replace the old prl-tools-lin.iso with the newer downloaded one.
  4. Unmount the DMG
  5. Delete the DMG
  6. Disable Auto-Updates of Parallels Tools (otherwise, the Host will try to reinstall Tools on every Guest boot)

Fix

Feel free to try it, but make sure that you adjust the paths, especially the last one, which is the path to your Parallels VM file. Make sure to shutdown your VM and quit Parallels Desktop before!

curl "https://www.parallels.com/directdownload/pd/?mode=trial" -L --output /tmp/pd.dmg && \
hdiutil attach /tmp/pd.dmg && \
cp /Volumes/Parallels\ Desktop\ */Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso /Applications/Parallels\ Desktop.app/Contents/Resources/Tools && \
hdiutil detach /Volumes/Parallels\ Desktop\ * && \
rm /tmp/pd.dmg && \
sed -i '' '/<AutoUpdate dyn_lists="">/ { N; s/1/0/; }' /Users/nicolasthumann/Parallels/Mint\ Linux.pvm/config.pvs

Now, that your Parallels Desktop is patched, you can install Parallels Tools as usual - even in newly created VMs - via the menu.

Testing

I’ve also tested several Parallels Tools versions with different Distributions and Kernel versions, to confirm my findings. The following tests have been conducted with Parallels Desktop 13.3.2 (43368), ordered by Kernel version:

Parallels Tools Kernel Distribution Result
13.3.2.43368 4.9.0-11 Debian 9.11 “Stretch” success
14.1.3.45485 4.9.0-11 Debian 9.11 “Stretch” success
15.1.2.47123 4.9.0-11 Debian 9.11 “Stretch” success
13.3.2.43368 4.15.0-76 Ubuntu 18.04.3 LTS “Bionic Beaver” fail (installs, but crashes, X Server related)
14.1.3.45485 4.15.0-76 Ubuntu 18.04.3 LTS “Bionic Beaver” success
15.1.2.47123 4.15.0-76 Ubuntu 18.04.3 LTS “Bionic Beaver” success
13.3.2.43368 4.15.0-76 Linux Mint 19.3 “Tricia” fail (installs, but crashes, X Server related)
14.1.3.45485 4.15.0-76 Linux Mint 19.3 “Tricia” success
15.1.2.47123 4.15.0-76 Linux Mint 19.3 “Tricia” success
13.3.2.43368 4.18.0-25 Linux Mint 19.3 “Tricia” fail (installs, but crashes, X Server related)
14.1.3.45485 4.18.0-25 Linux Mint 19.3 “Tricia” success
15.1.2.47123 4.18.0-25 Linux Mint 19.3 “Tricia” success
13.3.2.43368 4.18.0-25 Ubuntu 18.04.3 LTS “Bionic Beaver” fail (installs, but crashes, X Server related)
14.1.3.45485 4.18.0-25 Ubuntu 18.04.3 LTS “Bionic Beaver” success
15.1.2.47123 4.18.0-25 Ubuntu 18.04.3 LTS “Bionic Beaver” success
13.3.2.43368 4.19.0-6 Debian 10.2.0 “Buster” fail (installs, but crashes, X Server related)
14.1.3.45485 4.19.0-6 Debian 10.2.0 “Buster” success
15.1.2.47123 4.19.0-6 Debian 10.2.0 “Buster” success
13.3.2.43368 5.0.0-23 Ubuntu 18.04.3 LTS “Bionic Beaver” fail
14.1.3.45485 5.0.0-23 Ubuntu 18.04.3 LTS “Bionic Beaver” fail
15.1.2.47123 5.0.0-23 Ubuntu 18.04.3 LTS “Bionic Beaver” success
13.3.2.43368 5.0.0-32 Linux Mint 19.3 “Tricia” fail
14.1.3.45485 5.0.0-32 Linux Mint 19.3 “Tricia” fail
15.1.2.47123 5.0.0-32 Linux Mint 19.3 “Tricia” success
13.3.2.43368 5.3.0-28 Linux Mint 19.3 “Tricia” fail
14.1.3.45485 5.3.0-28 Linux Mint 19.3 “Tricia” fail
15.1.2.47123 5.3.0-28 Linux Mint 19.3 “Tricia” success
13.3.2.43368 5.3.9-3 Kali Linux 2019.4 fail
14.1.3.45485 5.3.9-3 Kali Linux 2019.4 fail
15.1.2.47123 5.3.9-3 Kali Linux 2019.4 success
13.3.2.43368 5.4.13-1 Kali Linux 2020.1 fail
14.1.3.45485 5.4.13-1 Kali Linux 2020.1 fail
15.1.2.47123 5.4.13-1 Kali Linux 2020.1 success
13.3.2.43368 5.4.15-2 Manjaro 18.1.5 fail
14.1.3.45485 5.4.15-2 Manjaro 18.1.5 fail
15.1.2.47123 5.4.15-2 Manjaro 18.1.5 success

Back to posts