Cloud and Self-Hosting

How to Back Up Proxmox to Google Drive with rclone (Step-by-Step)

Back up Proxmox VE to Google Drive with rclone: own client ID, encrypted remote, vzdump hook upload or a mounted Drive storage, retention, restore and fixes.

By Amjid Ali · · Updated · 7 min read

How to Add Google Drive to Proxmox: A Step-by-Step Guide: SyncBricks cover
In this article
  1. Quick steps
  2. Which method should you use?
  3. Prerequisites
  4. Step 1: install the current rclone
  5. Step 2: create your own Google Drive client ID
  6. Step 3: create the Google Drive remote
  7. Step 4: add encryption with a crypt remote
  8. Method A: upload each backup with a vzdump hook script (recommended)
  9. Method B: mount Google Drive as Proxmox backup storage
  10. Restoring a backup from Google Drive
  11. Troubleshooting
  12. Better targets for Proxmox Backup Server
  13. Final thoughts

To back up Proxmox to Google Drive, install a current rclone on the Proxmox host, create a Google Drive remote with your own Google client ID, wrap it in an encrypted crypt remote, then either upload each vzdump backup to Drive automatically with a vzdump hook script (recommended), or mount Drive with rclone mount and add it as a Directory storage for backups. Proxmox VE has no built-in Google Drive storage, and Proxmox Backup Server cannot use Google Drive as a datastore.

The layout I recommend for a homelab, and the one this guide builds, is backups on local or NAS storage (TrueNAS in my case) first, then an encrypted copy on Google Drive as the off-site copy. This 2026 update also fixes three things older guides (including my first version of this one) get wrong: Debian's rclone package is years old, rclone's shared Google client ID is being retired, and the --cache-db-purge flag belongs to rclone's deprecated cache backend, not to rclone mount.

Quick steps

  1. curl https://rclone.org/install.sh | bash to install the current rclone.
  2. Create a Google Cloud OAuth client (Desktop app) for the Drive API.
  3. rclone config: a drive remote with your client ID, then a crypt remote on top.
  4. Pick a method:
    • A. Upload after backup: vzdump to local storage, hook script runs rclone copy to Drive.
    • B. Mount: rclone mount as a systemd service, pvesm add dir with backup content.
  5. Add retention on Drive and test a restore.

Which method should you use?

A. vzdump + rclone copy (hook) B. rclone mount as storage
Speed of the backup job Fast, writes to local disk Limited by upload and cache
Reliability High: a failed upload does not fail the backup A dropped mount fails the job
Local disk needed Space for the backups Space for the VFS write cache
Restore Copy back, then restore Restore straight from the GUI
Best for Off-site copy of nightly backups Small setups, occasional backups

My advice: use A, and keep the latest copy on local or NAS storage as well. Google Drive is a good last line of defence, not a primary backup target.

Prerequisites

  • Proxmox VE 8 or 9 with root shell access (SSH or the node's Shell).
  • A Google account with enough Drive space (Google One or Workspace for anything beyond small VMs).
  • Local backup storage, for example the default local storage (/var/lib/vz/dump) or a NAS share.

Step 1: install the current rclone

Debian's package is rclone 1.60 on both Bookworm (PVE 8) and Trixie (PVE 9), released in 2022. Install the current release from rclone's official script instead:

apt update && apt install -y curl unzip fuse3
curl https://rclone.org/install.sh | bash
rclone version
rclone v1.7x.x
- os/version: debian 13.x (64 bit)
...

fuse3 is only needed for the mount method, but it does no harm. To update later, run the same script again.

Step 2: create your own Google Drive client ID

rclone's documentation says the shared client ID is being retired and will stop working during 2026, and it is rate limited by everyone using it. Create your own (it is free):

  1. Open Google Cloud Console, create a project, for example proxmox-rclone.
  2. APIs & Services > Library: search Google Drive API and click Enable.
  3. OAuth consent screen (Google Auth Platform): choose External, fill in the app name and your email, add your Google account as a test user, and publish the app. The rclone docs explain that apps left in Testing mode have tokens that expire after a week; a personal app under 100 users does not need Google verification, you just accept the "unverified app" warning.
  4. Credentials > Create credentials > OAuth client ID, application type Desktop app. Copy the Client ID and Client secret.

Step 3: create the Google Drive remote

rclone config

Answer the prompts:

  • n for a new remote, name it gdrive.
  • Storage type: type drive (the menu number changes between versions, the name does not).
  • client_id and client_secret: paste yours from Step 2.
  • scope: 1 (full access, drive) or 3 (drive.file, only files rclone creates). drive.file is the safer choice for a backup-only remote.
  • Leave service_account_file empty, n to advanced config.
  • Use web browser to automatically authenticate? Answer n on a headless Proxmox host.

rclone then prints a command like this:

Execute the following on the machine with the web browser (same rclone version recommended):
	rclone authorize "drive" "eyJjbGllbnRfaWQiOi..."
Then paste the result.

Run that exact command on your PC (install rclone there too), sign in to Google, allow access, and paste the token it prints back into the Proxmox terminal. Answer n to shared drive (unless you use one), then y to keep the remote.

The original method in my video also works: tunnel port 53682 over SSH (in PuTTY: Connection > SSH > Tunnels, source port 53682, destination 127.0.0.1:53682), answer y to the browser question and open the URL rclone shows.

Test it:

rclone lsd gdrive:
rclone mkdir gdrive:proxmox-backups

Step 4: add encryption with a crypt remote

A vzdump file contains the full VM disk, so encrypt it before it leaves the host:

rclone config
  • n, name it gdrive-crypt, storage type crypt.
  • remote: gdrive:proxmox-backups
  • filename_encryption: standard, directory_name_encryption: true.
  • Password: let rclone generate a strong one (g), and also set a salt password. Save both in your password manager. Without them the backups cannot be decrypted, even by you.

Test:

echo test > /tmp/test.txt
rclone copy /tmp/test.txt gdrive-crypt:
rclone ls gdrive-crypt:      # shows test.txt
rclone ls gdrive:proxmox-backups   # shows an encrypted name

Back up /root/.config/rclone/rclone.conf too (it holds the token and the obscured crypt passwords). My Proxmox host configuration backup guide covers that folder.

vzdump can run a script at each phase of a backup job. At job-end we copy the new backups to Drive.

Create the script:

cat > /usr/local/bin/vzdump-gdrive.sh <<'EOF'
#!/bin/bash
# vzdump hook: $1 is the phase (job-start, backup-end, job-end, ...)
if [ "$1" = "job-end" ]; then
  /usr/bin/rclone copy /var/lib/vz/dump gdrive-crypt:dump \
    --include "vzdump-*" --max-age 2d \
    --drive-stop-on-upload-limit \
    --log-file /var/log/rclone-vzdump.log --log-level INFO
fi
exit 0
EOF
chmod +x /usr/local/bin/vzdump-gdrive.sh

Change /var/lib/vz/dump to the dump folder of whichever storage your backup job writes to (for example /mnt/pve/truenas/dump). --max-age 2d uploads only recent files, so old archives you pruned locally are not re-sent.

Tell vzdump to use it for all jobs:

echo "script: /usr/local/bin/vzdump-gdrive.sh" >> /etc/vzdump.conf

Now create or check your backup job under Datacenter > Backup (storage local, mode Snapshot, compression ZSTD) and click Run now to test. Then:

tail -f /var/log/rclone-vzdump.log
rclone ls gdrive-crypt:dump

You should see the .vma.zst (VMs) or .tar.zst (containers) files, plus their .log and .notes files, appear in Drive. Proxmox ships a full example hook script at /usr/share/doc/pve-manager/examples/vzdump-hook-script.pl if you want to react to other phases.

Retention on Google Drive

Local retention (prune-backups) does not touch Drive. Add a daily cleanup, for example keeping 30 days:

cat > /etc/cron.d/rclone-gdrive-prune <<'EOF'
30 6 * * * root /usr/bin/rclone delete gdrive-crypt:dump --min-age 30d --log-file /var/log/rclone-vzdump.log
EOF

Deleted files go to the Drive trash first; empty it with rclone cleanup gdrive: if space is tight.

Method B: mount Google Drive as Proxmox backup storage

Use this if you want Google Drive to appear as a storage in the GUI.

Create the mount point and a systemd service:

mkdir -p /mnt/gdrive
cat > /etc/systemd/system/rclone-gdrive.service <<'EOF'
[Unit]
Description=rclone mount of Google Drive (crypt)
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount gdrive-crypt: /mnt/gdrive \
  --config=/root/.config/rclone/rclone.conf \
  --allow-other \
  --vfs-cache-mode writes \
  --vfs-cache-max-size 50G \
  --dir-cache-time 72h --poll-interval 1m \
  --log-file /var/log/rclone-gdrive.log --log-level INFO
ExecStop=/usr/bin/fusermount3 -u /mnt/gdrive
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now rclone-gdrive.service
systemctl status rclone-gdrive.service

--vfs-cache-mode writes matters: vzdump writes one large file, and without a write cache many applications fail on a cloud mount. Set --vfs-cache-max-size larger than your biggest backup; the cache lives under /root/.cache/rclone, so that disk needs the space.

Check the mount, then add it as storage:

findmnt /mnt/gdrive
mkdir -p /mnt/gdrive/proxmox
pvesm add dir gdrive --path /mnt/gdrive/proxmox --content backup --is_mountpoint /mnt/gdrive --prune-backups keep-last=3
pvesm status

--is_mountpoint stops Proxmox writing backups to the local disk if the mount is down. The storage gdrive now shows in the GUI and can be chosen in a backup job.

Restoring a backup from Google Drive

With Method A, copy the archive back and restore it from the GUI:

rclone ls gdrive-crypt:dump | grep vzdump-qemu-101
rclone copy gdrive-crypt:dump/vzdump-qemu-101-2026_10_18-01_00_02.vma.zst /var/lib/vz/dump/ -P

Then local > Backups, select the file, Restore. Or on the CLI: qmrestore /var/lib/vz/dump/<file>.vma.zst 101 for a VM, pct restore 101 /var/lib/vz/dump/<file>.tar.zst for a container.

With Method B, select the gdrive storage, open Backups and restore directly. Test a restore once after setting this up; a backup you have never restored is a hope, not a backup.

Troubleshooting

Error 403: rateLimitExceeded or User rate limit exceeded. You are probably still on rclone's shared client ID. Create your own (Step 2) and run rclone config reconnect gdrive: after adding it. The rclone docs note Drive allows only about 2 new files per second, so many small files are slow; vzdump archives are few large files, which is fine.

Error 403: The user has exceeded their Drive storage quota. Drive is full. Check with rclone about gdrive: and empty the trash with rclone cleanup gdrive:.

Uploads stop after a few hundred GiB. That is the roughly 750 GiB per day upload limit. Spread big uploads across days.

token expired / invalid_grant after about a week. The OAuth app is still in Testing mode. Publish it (Step 2) and run rclone config reconnect gdrive:.

rclone mount says fusermount3 (or fusermount) is not found. Install FUSE: apt install fuse3.

Backup job fails with No space left on device on the mount. The VFS cache disk is full. Raise --vfs-cache-max-size only if the disk has room, point --cache-dir at a bigger disk, or switch to Method A.

Old service files with --cache-db-purge. That flag is for rclone's deprecated cache backend and does nothing for a normal Drive mount. Remove it and use the VFS flags above.

Better targets for Proxmox Backup Server

If you run Proxmox Backup Server, its deduplicated chunk store does not fit Google Drive. For off-site PBS copies use a second PBS with a sync job, or an S3-compatible object store, which PBS 4.0 supports as a technology preview. Keep Google Drive for vzdump archives from Proxmox VE as shown above.

Final thoughts

With Method A you get fast local backups and an encrypted off-site copy on Google Drive, with no extra cost if you already pay for Google One or Workspace. If you are still building your lab, my ultimate homelab guide and the Proxmox VE complete training course cover storage and backup design in more depth.

Enroll Now

Frequently asked questions

Can Proxmox back up directly to Google Drive?+

Not natively. Proxmox VE has no Google Drive storage type. You either let vzdump write to local storage and upload the files to Google Drive with rclone afterwards, or mount Google Drive with rclone mount and add the mount point as a Directory storage for backups. The first way is faster and more reliable.

Can Proxmox Backup Server use Google Drive as a datastore?+

No. Proxmox Backup Server stores backups as many small chunks, which suits local disks and, since PBS 4.0, S3-compatible object storage as a technology preview. Google Drive is neither, and its API rate limits make chunk stores very slow. Use an S3-compatible provider for PBS, and keep Google Drive for vzdump archives.

Do I need my own Google client ID for rclone?+

Yes. The rclone documentation says its shared Google Drive client ID is being retired and will stop working during 2026, and it is heavily rate limited anyway. Create your own OAuth client of type Desktop app in Google Cloud Console and enter its ID and secret in rclone config.

How do I authenticate rclone on a headless Proxmox server?+

Answer n when rclone config asks to use a web browser. It prints an rclone authorize command; run that on a PC with a browser and rclone installed, sign in to Google, and paste the token it prints back into the Proxmox terminal. An SSH tunnel to port 53682 also works.

Is it safe to store Proxmox backups on Google Drive?+

Only if you encrypt them. A vzdump archive contains the whole VM, including passwords and keys. Use an rclone crypt remote on top of the Drive remote so files are encrypted before they leave the server, and keep the crypt password somewhere outside the server.

How much can I upload to Google Drive per day?+

The rclone documentation notes an undocumented limit of about 750 GiB of uploads per day per account. Large VM backups over that will fail until the next day, so keep the daily upload under it or add --drive-stop-on-upload-limit to make rclone stop cleanly.

Sources

  1. rclone Google Drive documentation, rclone
  2. rclone crypt documentation, rclone
  3. rclone remote setup (headless authorisation), rclone
  4. Proxmox VE Administration Guide, Backup and Restore, Proxmox Server Solutions

Related videos

Video library
  • Cloud and Self-Hosting

    Rclone Tutorial: Install on Windows and Connect OneDrive

    · 6:18 · 26K views

    Watch on YouTube
  • Cloud and Self-Hosting

    Proxmox Storage with Google Drive Integration - Setup and Best Practices

    · 4:51 · 18.2K views

    Watch on YouTube
  • Cloud and Self-Hosting

    Proxmox Backup Server 3: Install, Back Up and Restore a VM

    · 9:16 · 31.4K views

    Watch on YouTube