Now that Xubuntu 16.04.1 LTS is out since a couple of months I have started to perform a pilot upgrade in order to sort out any possible issue when it will be time to migrate the other PCs in the house. Especially my wife's laptop is subject to 24/7 availability so I can't afford to have it broken. In order to safely upgrade from 14.04.5 LTS to 16.04.01 LTS I have decided to proceed as following:
Make sure you have the latest updates of the 14.04.5 LTS. Use the Software Updater to do that. Create an image of the root partition. I have separate /home partition with plenty of space so I booted up 16.04 off a USB stick and made an image of the root partition by using dd:
sudo dd if=/dev/sda1 of=/path/to/mounted/home/partition/rootpart.img
Make sure that you substitute /dev/sda1 with your root partition!
If you encounter an error about reading from the root partition then you need to check for and fix bad blocks:
sudo badblocks -svn /dev/sda1
That would initiate a non-destructive write test. In my case I could continue to image the root partition after running the badblock command. Finally reboot into your existing Xubuntu 14.04.5 LTS, open a terminal and upgrade:
sudo do-release-upgrade
If you get a complaint about your python installation being corrupted, then use the following solution.
That's it! Your upgrade should now be safely completed. If anything goes wrong during the upgrade, or the upgrade leaves your system in a bad state, you can use the image file to restore your 14.04.5 LTS installation. To do that, boot off a USB stick with the 16.04, mount the /home partition and re-image the root partition from the file using dd:
sudo dd if=/path/to/mounted/home/partition/rootpart.img of=/dev/sda1
Make sure that you substitute /dev/sda1 with your root partition! After dd completes, you can reboot into your old 14.04.5 LTS and check what went wrong. Hopefully you won't have to perform these steps.