Proxmox VE differential backups


Proxmox VE is a complete virtualization management solution for servers. You can virtualize even the most demanding application workloads running on Linux and Windows Servers. Checkout their page:

Due to lack of better backup functionality I prepared patches to support differential backups in Proxmox VE. These patches are in use for over a year.

Currently supported versions are 3.4, 4.1, 4.2, 4.3, 4.4, 5.0.

What are differential backups?

According to Wikipedia:

A differential backup is a type of data backup that preserves data saving only the difference in the data since the last full backup. (…) Another advantage, at least as compared to the incremental backup method of data backup, is that at data restoration time, at most two backup media are ever needed to restore all the data. This simplifies data restores as well as increases the likelihood of shortening data restoration time.

What my patches do?

My patches extends vzdump, xdelta3 and Web-GUI support. And yes, these patches fully support OpenVZ and KVM.

System administrator can use one additional parameter in Backup Jobs (Datacenter -> Backup -> Add/Edit) the Full Backup Every:

  • By default this value is set to 0. Which simply means: use old behavior (always create full backups).
  • But if you specify value larger than 0, for example 7. It will instruct the vzdump to create full backup once a week and use differentials for the rest.

Please consider the following example:

    vzdump 101 --remove 0 --mode snapshot --compress lzo --storage local --node hvm --fullbackup 4

It will create full backup of VM101 every 4 days, compressed using lzo, stored on local storage.

How to install?

There are three files:

    c760d7481beae8dba3c62f1d95c6fbde  pve-2.2-diff-backup-addon
    42c1a0f34eca9ac23de83523db00f6c5  pve-2.3-diff-backup-addon
    1292670afa84914aac4ebda59d2a7122  pve-3.0-diff-backup-addon
    cd68c203bb1804105a3b4acd52382f6d  pve-3.1-diff-backup-addon
    67fb4d2b397759fb83066ae93cc07b78  pve-3.2-diff-backup-addon
    3e095bd0ed5744a545016018e235fa27  pve-3.3-diff-backup-addon
    350ed7844a5802ca114a6b60e0b013dc  pve-3.4-diff-backup-addon
    e33ef0b546fb16baacc4baed57af20d2  pve-3.4-14-diff-backup-addon
    1657dbc46d9f8b379896a9c0a7dffc3e  pve-4.0-diff-backup-addon
    e5701606733fb10dc117ff2b008da11b  pve-4.1-diff-backup-addon
    9fd8b3cb99283e55b00d694ce633b723  pve-4.1-22-diff-backup-addon
    300b07f7837200b9cc281aff06105991  pve-4.2-diff-backup-addon
    05c8520f87443a8902faa3b24d25735f  pve-4.2-17-diff-backup-addon
    c9fc4aeb2e42d1d78f54c8e7b007fc3d  pve-4.3-diff-backup-addon
    3991a5773e1d85503513889eaf04910c  pve-4.4-diff-backup-addon
    6646d0bc79a70beeca482dcf5354d021  pve-4.4-13-diff-backup-addon
    cc07c340b4dbfcf00e9d216a2f8f8466  pve-5.0-diff-backup-addon

The installation procedure is fairly simple:

  1. Logged as root download:For PVE 2.2 (deprecated):

    For PVE 2.3 (deprecated):


    For PVE 3.0 (deprecated):


    For PVE 3.1 (deprecated):


    For PVE 3.2 (deprecated):


    For PVE 3.3 (deprecated):


    For PVE 3.4 (deprecated):


    For PVE 4.0 (deprecated):


    For PVE 4.1 (deprecated):


    For PVE 4.1-22 (compatible with 4.1-22 and newer) (deprecated):


    For PVE 4.2 (deprecated):


    For PVE 3.4-14 (compatible with 3.4-14 and newer) (deprecated):


    For PVE 4.2-17 (compatible with 4.2-17 and newer) (deprecated):


    For PVE 4.3 (deprecated):


    For PVE 4.4 (deprecated):


    For PVE 4.4-13 (compatible with 4.4-13 and newer) (stable):


    For PVE 5.0 (stable):

  2. Execute bash script. The script contains all needed patches:
    bash pve-4.4-diff-backup-addon apply
  3. When everything went right, you’ll see:
    Proxmox VE 5.0 - differential backup support
    Kamil Trzcinski,,
    PATCHED: /usr/share/pve-manager/
    PATCHED: /usr/share/perl5/PVE/
    Restarting PVE API Proxy Server: pveproxy.
    Restarting PVE Daemon: pvedaemon.
  4. Download and install xdelta3. If you want to use LZOP compressor, you have to download my xdelta3 compilation.
    dpkg -i pve-xdelta3_3.0.6-1_amd64.deb

    However, if you paranoid about installing untrusted applications you can compile the package yourself. All the sources can be found here: pve-xdelta3-master.tar.bz2

    Previous release of xdelta was 3.0.5. Please update to the newer one: 3.0.6.

And what about uninstall?

The procedure is simpler than installation. Type in the bash:

    bash pve-5.0-diff-backup-addon revert

After a while, you’ll see:

    Proxmox VE 5.0 - differential backup support
    Kamil Trzcinski,,

    RESTORED: /usr/share/pve-manager/
    RESTORED: /usr/share/perl5/PVE/

    Restarting PVE API Proxy Server: pveproxy.
    Restarting PVE Daemon: pvedaemon.


This is important part. If you will ever want to upgrade your Proxmox installation (by apt-get dist-upgrade or apt-get upgrade) ALWAYS revert/uninstall patches. You will still be able to apply them afterwards.

How to apply new patch version?

  • Use previous patch to revert changes.
  • Download new patch version and apply as described before.

The results

The results are really astonishing! These are real word values:

    VM   full      diff 1day   diff 2days   diff 3days    diff 4days
    1.   39.10GB   41MB        47MB         51MB          55MB
    2.   96.84GB   1.07GB      1.38GB       1.43GB        1.68GB
    3.   83.95GB   1.68GB      2.66GB       3.69GB        4.25GB
    4.   9.19GB    76KB        76KB         166MB         198MB

You see the differences. The diff sizes strictly depends on the use of the VMs. Using differential backups I have backups from last month (full backup once a week, differential daily)

Why this is not upstream?

I tried to push the changes upstream. They were rejected by Dietmar:

We removed that feature 3 years ago. I have no plans to re-add that. We want to keep vzdump a simple tool.

But I thought that it would be really shame if I wouldn’t go public with this.

Is it stable?

Yes, it is. This extensions uses xdelta3 as differential backup tool, which proven to be well tested and stable. I use it for about 9 months on 4 different Proxmox based servers. No problems so far.

However, if you happen to be paranoidal about backups… You should consider running following script. The script simply tries to verify all differential backups. I recently updated the script to support new VMA archive. So now you can verify backups all supported backups.

    chmod +x pve-verify-backups
    ./pve-verify-backups <backup-dir>


In case of any problems applying or reverting patches you can always simple revert back to stock. Simply reinstall modified packages:

    apt-get --reinstall install pve-manager qemu-server libpve-storage-perl

Then you can try to reapply patches once again.

In order to remove all leftovers you have to edit /etc/pve/vzdump.cron and remove fullbackup switch from vzdump command line.


  • v1: initial public release with support for PVE2.2 and PVE2.3 (2013-03-05)
  • v2: improved kvm backup size and speed for PVE2.3 (2013-03-08)
  • v3: added support for PVE3.0 (2013-06-02)
  • v3′: updated pve-verify-backups to support VMA archives (2013-06-06)
  • v3”: updated patches to support PVE3.1 (2013-08-24)
  • v3”: updated xdelta3 to 3.0.6. More info about changes: (2013-08-24)
  • v3”: updated patches to support PVE3.2 (2014-03-15)
  • v3”: added FAQ (2014-04-30)
  • v3”: updated patches to support PVE3.3 (2014-09-23)
  • v3”: updated patches to support PVE3.4 (2015-02-26)
  • v3”: updated patches to support PVE4.0 (2015-11-07)
  • v3”: updated patches to support PVE4.1 (2016-01-22)
  • v3”: updated patches to support PVE4.1-22 (2016-04-13)
  • v3”: updated patches to support PVE4.2 (2016-05-02)
  • v3”: updated patches to support PVE3.4-14 (2016-08-02)
  • v3”: updated patches to support PVE4.2-17 (2016-08-02)
  • v3”: updated patches to support PVE4.3 (2016-10-24)
  • v3”: updated patches to support PVE4.4 (2017-01-23)
  • v3”: updated patches to support PVE4.4-13 (2017-04-10)
  • v3”: updated patches to support PVE5.0 (2017-07-20)

Detailed list of changes

  1. pve-xdelta3:
  2. vzdump:
    • added “fullbackup” option
  3. qmrestore and vzrestore:
    • added support for differential backups
  4. PVE.dc.BackupEdit:
    • added controls for maxfiles and fullbackup

Proxmox Free Community upgrade from 4.4 to 5.x version

01. /etc/apt/sources.list
deb jessie main contrib

# PVE pve-no-subscription repository provided by,
# NOT recommended for production use
deb jessie pve-no-subscription

# security updates
deb jessie/updates main contrib

02. mv /etc/apt/sources.list.d/pve-enterprise.list /home

03. apt-get update

04. apt-get dist-upgrade

05. reboot

06. Virtual Environment 4.4-18/ef2610e8

07. /etc/apt/sources.list
deb stretch main contrib

# PVE pve-no-subscription repository provided by,
# NOT recommended for production use
deb stretch pve-no-subscription

# security updates
deb stretch/updates main contrib

08. apt-get update

09. apt-get dist-upgrade

10. reboot

11. Virtual Environment 5.0-32/2560e073


How to Install KeePass in Linux Mint / Ubuntu

Technically, we can install KeePass through Ubuntu Software…

…or the Linux Mint Software Manager.

However, if we install KeePass through these channels, we won’t be getting the very latest version. And where’s the fun in that?

Add the KeePass repository

For the latest and greatest KeePass installation on Linux, we must add a repository. We just need to fire up a terminal, with Ctrl+Alt+T, and type:

sudo apt-add-repository ppa:jtaylor/keepass -y

Just a reminder for Linux newcomers, when we use the “sudo” command, and we enter our password, nothing will show as we type, no stars or dots or anything. We just enter the password and hit Enter.

For more information about Linux terminal commands, check out our guide:

After successfully adding the repository, we need to do an update with:

sudo apt-get update

Install KeePass

Once the update is done, and we had no error messages, we type the following command to install KeePass:

sudo apt-get install keepass2 -y

Once we finish with the installation, we will find KeePass at the Mint menu, in the Accessories section.

In Ubuntu, we just need to search for it on the Dash.


Top 25 things to do after installing Linux Mint 18 (Sarah) to make as user friendly

Linux Mint 18 (Sarah) was out on June 30, 2016. Fresh installation of Linux Mint 18 (Sarah) comes with plain systems, it’s not enough to make your Desktop as user friendly. We have to tweak & adjust some settings and install additional software’s to make your Desktop more easier as well as better for daily use. Assume you have already installed Linux Mint 18 (Sarah). If, no install right now Linux Mint 18 (Sarah).

1) Check for updates

Make sure your system upto date for better performance. How to check and do ? simply fire below command on your terminal to update your system packages to latest version. It will ask you to confirm for update, here you can see how much MB/KB going to upgrade, its purely depends on your system packages which you have installed.

[Updating system packages to latest version]
$ sudo apt-get update && sudo apt-get upgrade

Alternatively we can do via GUI by navigating, Menu >> Search Update Manager >> Open Update manager. Here you can see the MintUpdate packages. You will see list of available updates and hit Install Update button to install the updates. It will ask you to enter the sudo password to perform the update.

2) Install themes, extensions, desklets (desktop widgets) and applet indicators

Linux Mint is better then Ubuntu ? How ? Because Linux Mint having more & more Themes, extensions, desklets (desktop widgets) and applet indicators is available by default in System Settings simply navigate and install then feel the desktop experience. If you are feeling it’s not enough, you can get more by clicking Get more online Button.

3) Install Linux Graphics Drivers

To get more & better performance from your Linux Mint box, you should install appropriate graphics drivers which will help you to run your environment smooth without any issues. Are you gamer ? then no other option, because without proper graphics drivers you can’t run any games on your system. You can done this by navigating System Settings >> Administration >> Device Drivers.

4) Install old Mint wallpapers

Every release of Linux Mint comes with a new set of wallpapers. Still you can install old wallpapers by running below command on your terminal.

[Install old Mint wallpapers]
$ sudo apt-get install mint-backgrounds-*

5) Install Icon Theme

Verity of Icon Theme is available for Linux Desktop, Choose the desired Icon Theme from below link for your Desktop and make your Desktop more elegant.

6) Install GTK Theme

Bunch of Icon Theme is available for Linux Desktop, Choose the desired GTK Theme from below link for your Desktop and make your Desktop more elegant.


7) Install Media Codecs

Entertainment is one of the important things for everybody now a days, multimedia codecs are included in Linux Mint 18 default Repository. So, it will automatically installed by default. Even though you can recheck by running below command.

[Install old Mint wallpapers]
$ sudo apt-get install mint-meta-codecs

8) Set Google Search as default on Firefox

As you notice that the default search engine in Firefox is Yahoo. Google Search engine is not available in Firefox by default also not even listed there, We can enable it by visiting Mozilla Add-on page. Just click on Add to Firefox button to add it. Then click the Plus icon on search box and click Google Default Search, Finally change the Search Engine here on the drop down from Yahoo to Google.

9) Install Flash Player

By default Flash player & Java Applet comes with Mint Repository so no need to install those on Firefox but still we need to install Pepper based flash player for Chromium browser. It will download the pepper flash player from Google Chrome browser and put it inside Chromium.

[Install the pepper flash player for Chromium]
$ sudo apt-get install pepperflashplugin-nonfree

[If it fails to download, run below command]
$ sudo dpkg-reconfigure pepperflashplugin-nonfree

10) Install VLC Media Player

VLC media player (commonly known as VLC) is a portable, modern, powerful, free and open-source, cross-platform multimedia player, framework and streaming media server developed by VideoLAN project. VLC is available for all kind of platform like desktop operating systems (Linux, Windows & OS X) & mobile platform (Android, iPad, iPhone, and iPod Touch). VLC media player supports many audio and video file formats & compression methods including DVD-Video, video CD and streaming protocols.

[Install VLC Media Player]
$ sudo apt-get install vlc browser-plugin-vlc

11) Install Clementine Audio Player

Clementine is a cross-platform free and open source modern music player and library organizer. It is inspired by Amarok 1.4 to the Qt 4 framework and focusing on a fast and easy-to-use interface for searching and playing your music.

[Install Clementine Audio Player]
$ sudo apt-get install clementine

12) Install Inkscape Image Editor

Inkscape is a drawing and painting tool similar to Illustrator, CorelDraw, Xara X & Photoshop. Inkscape is 100% open source and available to everyone in the world. Inkscape is multi-platform available for Linux, Windows & Mac.

[Install Inkscape Image Editor]
$ sudo apt-get install inkscape

13) Install VirtualBox

VirtualBox is an open source cross-platform virtualization software for x86 architecture, Which was developed by Oracle. VirtualBox is an amazing software which have lot of features compare with other virtualization software such as VMware,etc.., and still development team hardly working on virtualbox to improve the stability.

14) Install QBittorrent Client

qBittorrent is free and open source cross platform bittorrent client which is alternative for µtorrent, Which will support all the major Operating Systems (Linux, windows & Mac).

[Install QBittorrent Client]
$ sudo apt-get install qbittorrent

15) Install Aria2 Download Manager

aria2 is a Free, open source, lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces. aria2 automatically validates chunks of data while downloading a file. It can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth. By default all the Linux Distribution included aria2, so we can install easily from official repository.

[Install Aria2 Download Manager]
$ sudo apt-get install aria2

16) Install Mozilla Thunderbird

Mozilla Thunderbird is a free, open source, cross-platform feature rich and modern email & Chat client developed by the Mozilla Foundation. As per Wikipedia page info, Thunderbird 1.0 get downloaded 1,000,000 times within 10 days. Thunderbird is a free email application that’s easy to set up and customize – and it’s loaded with great features also you can add more features via add-on. Thunderbird makes email better for you, bringing together speed, privacy and the latest technologies.

[Install Mozilla Thunderbird]
$ sudo apt-get install thunderbird

17) Install Skype

skype is most popular application which is used to make a call over the Internet as FREE of cost. Skype to Skype calls & message completely FREE and Skype to Landline and phone low calling rate compare with mobile phones. Skype Technologies S.A (Microsoft Corporation) announced the new release of Skype 4.3 for Linux on June 18th 2014.

18) Install Dropbox

Dropbox is a file hosting service, that offers cloud storage and real-time file synchronization. Dropbox automatically creates a folder on your computer under (/home/username/Dropbox) while installing, After that it will synchronize your data from local PC to your Dropbox & Dropbox to your local PC. So, you can access your content (Images, documents, etc..,) remotely using your Dropbox account. You can install Dropbox Desktop client to more than one PC.

19) Install ownCloud

Owncloud is an cloud based storage which was designed especially for privacy & security, How ? We can install in our organization and maintain ourself so, nobody can read ours. Say for example if you stored your content to third party such as (free cloud storage) we don’t know its safe and secure. owncloud allow user’s to sync and share the files like dropbox and google drive. Its a open-source software, you can install and create your own owncloud storage system using owncloud software and manage all your company data in cloud and access anywhere. Its nice user interface and everybody love owncloud.

20) Install punch of Apps

Mint offers wide range of Apps which will help us to install all required Application/software based on our requirements to run day to day activity. You can done this through Software Manager.

21) Install more Browsers

Web browser is important one for computer, we can’t do anything without web browser such as browsing, checking mails, accessing bank account, etc.,. Follow below steps to install more browsers on Ubuntu.

22) Install other Desktop Environments

Initially you had installed a different desktop environment (In my case i have installed Cinnamon) and want to install other desktop environment such as Gnome, kde, xfce, lxde or mate try the below commands.

23) Install JAVA & openJDK

JAVA is mandatory to perform/run certain program on Linux Box. We can install it using below article link.

24) install Synaptic Package Manager

If you are not familiar in command line, i will advise you to install Install Synaptic Package Manager which will help you to install, remove, update packages with GUI.

$ sudo apt-get install synaptic

25) Install BleachBit (System Cleaner)

BleachBit is a free, open-source and easy to use disk space cleaner & privacy manager, not only clearing disk space apart from that it will Free cache, delete cookies, clear Internet history, shred temporary files, delete logs, and discard junk you didn’t know was there. Designed to work with Linux and Windows systems also clean a thousand applications such as Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari,and more.

Now, you will feel, your Linux Mint 18 (Sarah) box become user friendly. What you are thinking ? Share your valuable commands in our comment section to improve our website quality…Stay tune with 2daygeek for latest LINUX GEEKS..)

How to completely disable Cortana on Windows 10c

Cortana is very integrated with Windows Search and fully disabling it will break Search. However, if you would like to keep Search functional, you can just disable the “Cortana-y” parts of Cortana.

To disable Cortana in windows 10

  1. Press Win + R keyboard accelerator to open Run dialog box.
  2. Type GPedit.msc and hit Enter or OK to open Local Group Policy Editor. Navigate to Local Computer Policy -> Computer Configuration -> Administrative Templates -> Windows Components -> Search.
  3. In the right pane, double click on policy named Allow Cortana.
  4. Select the Disabled radio button.
  5. Restart the PC and Cortana and Bing Search will be disabled. (May work after signing out and in again)

Policy Description

This policy setting specifies whether Cortana is allowed on the device.

If you enable or don’t configure this setting, Cortana will be allowed on the device. If you disable this setting, Cortana will be turned off.

With this set, users will still be able to use search to find things on the device and on the Internet.


Safest way to clean up boot partition – Ubuntu 14.04LTS-x64


Case I: if /boot is not 100% full and apt is working

1. Check the current kernel version

$ uname -r 

It will shows the list like below:


2. Remove the OLD kernels

2.a. List the old kernel

$ sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

You will get the list of images something like below:


2.b. Now its time to remove old kernel one by one as

$ sudo apt-get purge linux-image-3.19.0-25-generic
$ sudo apt-get purge linux-image-3.19.0-56-generic
$ sudo apt-get purge linux-image-3.19.0-58-generic
$ sudo apt-get purge linux-image-3.19.0-59-generic
$ sudo apt-get purge linux-image-3.19.0-61-generic
$ sudo apt-get purge linux-image-3.19.0-65-generic

When you’re done removing the older kernels, you can run this to remove ever packages you won’t need anymore:

$ sudo apt-get autoremove

And finally you can run this to update grub kernel list:

$ sudo update-grub

Case II: Can’t Use apt i.e. /boot is 100% full

NOTE: this is only if you can’t use apt to clean up due to a 100% full /boot

1. Get the list of kernel images

Get the list of kernel images and determine what you can do without. This command will show installed kernels except the currently running one

$ sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

You will get the list of images somethign like below:


2. Prepare Delete

Craft a command to delete all files in /boot for kernels that don’t matter to you using brace expansion to keep you sane. Remember to exclude the current and two newest kernel images. From above Example, it’s

sudo rm -rf /boot/*-3.19.0-{25,56,58,59,61,65}-*

3. Clean up what’s making apt grumpy about a partial install.

sudo apt-get -f install

4. Autoremove

Finally, autoremove to clear out the old kernel image packages that have been orphaned by the manual boot clean.

sudo apt-get autoremove

5. Update Grub

sudo update-grub

6. Now you can update, install packages

sudo apt-get update 

Transparent system panel in Linux Mint 18.x Cinnamon

By default in Linux Mint 18.x Cinnamon theme in the desktop system panel is black and opaque. In the settings panel there is no option or setting the transparency panel. But in Linux file system is open for user and administrative changes that where in configuration files it is possible to make the necessary changes. Something that is not provided by the developers, we will try to do it yourself.

Edit the file default theme’s cinnamon.css with administrator’s rights:
sudo xed /usr/share/themes/Linux\ Mint/cinnamon/cinnamon.css

When you open the text editor with the file cinnamon.css, press Ctrl+F in the search box copy/paste the #panel, and then click Find:

Transparent system panel in Linux Mint 18.x Cinnamon

Now at the end of this section (panel), add the line (copy/paste):

background-color: rgba(175,175,175,0.05);

Transparent system panel in Linux Mint 18.x Cinnamon

Save the file and close the editor.
To make the changes take effect, you must restart Cinnamon. Press Alt+F2, type r and press Enter.

Transparent system panel in Linux Mint 17.x Cinnamon

Now the system panel Cinnamon should be transparent.
Good luck!!!


Back to top