Timeshift: Full System Backup to External Drive

Configure Timeshift for full system snapshots to an external drive on an Ubuntu-based distro — rsync mode, scheduling, and restoration.

Beginner Verified Working Updated 16 min read Tested on Zorin OS 18.1 Pro (Ubuntu 24.04 Noble base) Hardware Lenovo ThinkPad L14 Gen 2 (i5-1135G7, 16GB RAM, 476.9GB NVMe SSD)

What This Guide Achieves

Back up your full Linux system — the operating system, your entire home directory, all your personal configurations — to an external drive. If anything ever breaks (a bad update, a misconfigured package, accidental file deletion), you can restore to the exact state captured in the snapshot.

By the end of this guide you will have:

GoalStatus
ext4 partition created on external driveDone
Timeshift configured with RSYNC modeDone
Full /home directory included in backupDone
Monthly automated snapshots configuredDone
First full snapshot created and verifiedDone

Prerequisites

Before starting, make sure you have the following:

  • External drive with enough free space for at least one full snapshot plus future incrementals. In the tested setup, an external HDD with about 931.5 GB total capacity was used, but you do not need a 1 TB drive specifically. A smaller drive can work as long as it comfortably fits your backup history.
  • The drive may be NTFS formatted. This is common if you previously used it with Windows. That is fine — this guide walks you through repartitioning it safely.
  • GParted for partition management. If not already installed, the guide covers installation.
  • Laptop plugged into power. The NTFS resize operation takes 20-60 minutes and absolutely must not be interrupted by a dead battery.

The Problem (Windows User Perspective)

If you are coming from Windows, you are probably used to:

  • Windows Backup (full system image to an external drive)
  • System Restore Points (lightweight snapshots of system state)
  • Third-party tools like Acronis True Image or Macrium Reflect

On Linux, Timeshift is the direct equivalent. Some Ubuntu-based distros include it by default; the tested Zorin setup did, so no extra installation was needed for the core tool.

But there is a catch. If your external drive is formatted as NTFS (the Windows file system), Timeshift cannot preserve Linux file permissions on it. This means the backup would be incomplete — you could recover your files, but the restored system might not boot correctly or might have broken permissions everywhere.

The solution is straightforward: shrink the existing NTFS partition on your external drive and create a new ext4 (Linux-native) partition alongside it. This way you keep your existing Windows-compatible files on the NTFS partition and have a proper Linux backup partition right next to it.


Solution

Step 1: Check Your Disk Usage

Before deciding how much space to allocate for backups, find out how much data your system actually uses.

Check your system partitions:

df -h / /home

Example output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p6   79G   25G   50G  34% /
/dev/nvme0n1p7  385G  5.6G  360G   2% /home

This tells you the total data Timeshift needs to capture is approximately 31 GB (25 GB for the root partition plus 5.6 GB for /home).

Check the free space on your external drive:

df -h /media/mohsin/Transcend\ -\ Mohsin

Example output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       932G  235G  697G  26% /media/mohsin/Transcend - Mohsin

In this case, 697 GB is available. That is more than enough to carve out 250 GB for Timeshift and still leave plenty of NTFS space for regular file storage. That number is only an example from the tested drive, not a hard requirement.

Why this matters: You need to know how large your system is so you can allocate the right amount of space. Allocating too little means you cannot store enough snapshot history. Allocating too much wastes space on the NTFS side that you might need for other files.


Step 2: Understand the NTFS Limitation

This is the single most important concept in this guide.

Linux file permissions are fundamentally different from Windows file permissions. Every file on Linux has an owner, a group, and a set of read/write/execute flags. NTFS does not store these attributes natively. When Timeshift writes a backup to an NTFS partition, it cannot record who owns each file or what permissions it should have.

The consequence: If you ever need to restore from that backup, your system will come back with broken permissions. Programs will not run. Configuration files will not be readable. The system may not even boot.

The fix: Use an ext4 partition. ext4 is the standard Linux filesystem. It preserves all Linux file attributes perfectly. By creating a dedicated ext4 partition on your external drive, you get fully restorable backups.

You do not need to reformat the entire drive. You can shrink the existing NTFS partition and create the ext4 partition in the freed space, keeping all your existing Windows-compatible files intact.


Step 3: Prepare the External Drive (Shrink NTFS, Create ext4)

This is the longest step. You will use GParted to non-destructively shrink the NTFS partition and create a new ext4 partition.

3a. Unmount the drive

The drive must be unmounted before you can modify its partitions. Any open file manager windows showing the drive’s contents must be closed first.

sudo umount /media/mohsin/Transcend\ -\ Mohsin

Why: You cannot resize a partition that is actively in use. Unmounting tells Linux to stop reading and writing to it.

3b. Run an NTFS consistency check

Before resizing, verify that the NTFS filesystem is healthy:

sudo ntfsfix /dev/sda1

This must pass without errors. If it reports problems, fix them before proceeding. Resizing a corrupted filesystem can cause data loss.

Why: ntfsfix checks the internal structure of the NTFS filesystem and repairs minor issues. GParted will refuse to resize a partition that it suspects is damaged.

3c. Install GParted

GParted is a graphical partition editor. If it is not already installed:

sudo apt update && sudo apt install gparted -y

3d. Open GParted

sudo gparted

3e. Select the correct drive

In the top-right dropdown of GParted, select your external drive. It will typically be /dev/sda.

CRITICAL: Make absolutely sure you are working on the external drive and NOT your system drive. Your system drive is usually /dev/nvme0n1 (for NVMe SSDs) or /dev/sdb. If you accidentally resize your system drive, you could lose your operating system. Double-check by comparing the drive size shown in GParted with what you know your external drive’s capacity to be.

3f. Shrink the NTFS partition

  1. Right-click the NTFS partition (e.g., /dev/sda1) and select Resize/Move.
  2. Set the new size to approximately 682 GB (or whatever leaves about 250 GB unallocated). You can use the size field or drag the right edge of the partition bar.
  3. Click Resize/Move to queue the operation. Do not click Apply yet.

3g. Create the ext4 partition

  1. Right-click the unallocated space (the ~250 GB you just freed) and select New.
  2. Set the file system to ext4.
  3. Set the label to Timeshift-Backup (this makes it easy to identify later).
  4. Click Add to queue this operation.

3h. Apply both operations

Now click the green checkmark (Apply All Operations) in the GParted toolbar. This executes both the NTFS shrink and the ext4 creation together.

CRITICAL: Keep your laptop plugged into power for this entire process. The NTFS resize can take 20-60 minutes depending on how much data is on the partition and how fast your external drive is. If power is lost during the resize, the NTFS partition will be corrupted and you will lose data. Do not close the lid, do not unplug the drive, do not let the laptop go to sleep.

Wait for both operations to complete. GParted will show a progress bar and then a summary when finished.


Step 4: Verify the New Partitions

After GParted finishes, verify that both partitions exist and are the correct sizes:

lsblk -f /dev/sda

Expected output:

NAME   FSTYPE FSVER LABEL            UUID                                 MOUNTPOINTS
sda
├─sda1 ntfs         Transcend - Mohsin  <uuid>
└─sda2 ext4         Timeshift-Backup    <uuid>

You should see two partitions: sda1 with NTFS (~682 GB) and sda2 with ext4 (~250 GB, labeled “Timeshift-Backup”).

Why this matters: If the partition table does not look right, stop here and fix it in GParted before continuing. Timeshift needs the ext4 partition to exist and be healthy.


Step 5: Launch Timeshift

If Timeshift is already installed on your system, launch it with:

sudo timeshift-gtk

The sudo is required because Timeshift needs root access to read all system files, including those owned by root and other system users.


Step 6: Configure Timeshift

Timeshift opens a setup wizard the first time you run it. Each tab matters.

6a. Snapshot Type

Select RSYNC.

Do not select BTRFS unless your system partitions actually use the BTRFS filesystem. Most Ubuntu-based installs default to ext4, so BTRFS mode is not appropriate unless you explicitly chose it during installation. RSYNC mode works with any filesystem and copies files to the destination using hard links for space efficiency.

6b. Snapshot Location

Select sda2 — the ext4 partition you just created. It should appear as:

sda2    ext4    250 GiB    Timeshift-Backup

If the partition does not appear, make sure the drive is plugged in and run lsblk to confirm the partition exists.

6c. Snapshot Schedule (Levels)

Set the following schedule:

LevelKeep
Monthly2
Weekly0
Daily0
Hourly0
Boot0

Why only monthly? This is an external drive, not an always-connected internal disk. Hourly, daily, and boot snapshots only run when the drive is plugged in. If you set them all, you would fill up the partition quickly the next time you plug in the drive for an extended period. Monthly with 2 kept is the sweet spot: you always have last month’s state and the month before that.

Automated snapshots happen silently when the drive is connected. Timeshift checks the schedule whenever it can and creates snapshots if one is due.

6d. User Directories (Users Tab) — CRITICAL

This is the step that most guides skip, and it is the one that matters most.

  1. Click the Settings gear icon (or go to Settings from the menu).
  2. Click the Users tab.
  3. Find your username (e.g., /home/mohsin) and change its setting to Include All Files.
  4. Find /root and change its setting to Include All Files.
  5. Click Save or OK.

Why this is critical: By default, Timeshift excludes /home entirely. It only backs up the operating system and installed packages. That means your documents, your dotfiles, your SSH keys, your application settings — everything in your home directory — would NOT be in the backup. If you ever restore, you get a working OS with none of your personal data. Setting “Include All Files” for your user ensures everything is captured.


Step 7: Create the First Snapshot

Click the Create button in the Timeshift main window.

The first snapshot is a full copy of your entire system. Expect it to take 15-40 minutes depending on your external drive’s write speed and how much data you have.

You will see a progress indicator. Do not unplug the drive or close Timeshift while the snapshot is being created.

Note: If you see a message saying “Another instance of Timeshift is creating a snapshot,” it means Timeshift auto-started a scheduled snapshot when you saved your settings. This is normal. Click OK and wait for it to finish. You can check progress with sudo timeshift --list in a terminal.


Step 8: Verify the Backup

Once the snapshot finishes, verify it from the command line:

sudo timeshift --list

Expected output:

Device : /dev/sda2
UUID   : <uuid>
Path   : /media/timeshift/Timeshift-Backup
Mode   : RSYNC
Status : OK

1 snapshots, 1 selected

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2026-04-14_12-00-00  M

The snapshot is listed with the correct date, tagged with M (monthly), and the status is OK.


RSYNC mode uses hard links, which means only files that have changed since the last snapshot consume additional space. Here is what to expect:

First snapshot:        ~31 GB  (full copy of everything)
Monthly snapshot 2:    ~3-5 GB (only changed files since last snapshot)
Total with 2 kept:     ~35 GB  out of 250 GB
Remaining free:        ~215 GB

With 250 GB of space, you could theoretically store 40+ incremental snapshots before running out of room. With the recommended schedule of keeping 2 monthly snapshots, you will never come close to filling the partition.

Why hard links save space: When Timeshift creates a second snapshot, it does not copy files that have not changed. Instead, it creates a hard link — a second directory entry pointing to the same data on disk. The file appears in both snapshots but only occupies space once. Only files that have actually been modified since the last snapshot require new disk space.


What Didn’t Work (and Why)

These are approaches that were tried during the real setup and failed. They are documented here so you do not waste time on them.

Approach TriedWhy It Failed
Backing up directly to the NTFS partitionNTFS cannot preserve Linux file permissions (owner, group, read/write/execute flags). The backup looks complete but is not fully restorable — a restored system would have broken permissions everywhere.
Setting all schedule levels (daily, hourly, boot) to non-zero valuesOverkill for an external drive. These snapshots only run when the drive is plugged in. If you leave the drive connected for a day, you could end up with dozens of unnecessary snapshots consuming space for no benefit.
Skipping the Users tab configurationThis is the most common mistake. Without explicitly setting your user to “Include All Files,” Timeshift excludes the entire /home directory. You end up with a backup of the OS but none of your personal data — documents, dotfiles, SSH keys, application settings, everything gone.

Verification

After completing the setup, run these two commands to confirm everything is working:

Check that the snapshot exists and is healthy:

sudo timeshift --list

You should see 1 snapshot listed with status OK.

Check how much space the snapshot uses on the partition:

df -h /dev/sda2

Expected output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       246G   31G  203G  14% /media/timeshift/Timeshift-Backup

The “Used” column should be approximately 31 GB (matching your total system data from Step 1). If it shows only a few hundred megabytes, the /home directory was probably not included — go back to Step 6d and check the Users tab.


Cleaning Up / Creating a Fresh Backup

If you want to start over with a clean snapshot (for example, after making major system changes and wanting a fresh baseline):

Delete all existing snapshots:

sudo timeshift --delete-all

Verify the partition is cleared:

df -h /dev/sda2

The “Used” column should drop to a small value (just the ext4 filesystem overhead, typically under 100 MB).

Create a fresh snapshot with a descriptive comment:

sudo timeshift --create --comments "Fresh full backup" --tags M

The --tags M marks it as a monthly snapshot. The --comments flag adds a human-readable description so you can identify this snapshot later.


Troubleshooting

SymptomCauseFix
”Another instance of Timeshift is creating a snapshot”Timeshift auto-started a scheduled snapshot when you saved your settings in the GUI. Only one snapshot can run at a time.Click OK and wait 15-40 minutes for the in-progress snapshot to finish. Then check with sudo timeshift --list to confirm it completed.
Backup does not include /home filesThe Users tab was not configured. By default Timeshift excludes user home directories.Open Timeshift, go to Settings, click the Users tab, and set your username to “Include All Files.” Then create a new snapshot.
Timeshift does not show the external drive as a snapshot locationThe drive is not plugged in, not mounted, or does not have an ext4 partition.Plug in the drive and verify with lsblk -f /dev/sda that the ext4 partition exists. If it shows up in lsblk but not in Timeshift, try closing and reopening Timeshift.
Scheduled snapshots are not runningThe external drive must be physically connected for scheduled snapshots to execute. Timeshift silently skips the schedule if the target drive is absent.Plug in the drive at least once a month. Timeshift will detect that a monthly snapshot is overdue and create one automatically.
GParted refuses to resize the NTFS partitionThe NTFS filesystem has errors or was not cleanly unmounted (common if it was last used by Windows without a clean shutdown).Run sudo ntfsfix /dev/sda1 and try again. If that does not help, connect the drive to a Windows machine, run chkdsk, and do a clean eject before bringing it back to Linux.
Snapshot creation is extremely slowUSB 2.0 port or a slow external drive.Make sure you are using a USB 3.0 port (usually marked with blue plastic inside the connector). Check with lsusb -t to confirm the drive is connected at the expected speed.

Complete Removal

If you no longer need Timeshift backups on the external drive and want to reclaim the space:

Delete all Timeshift snapshots:

sudo timeshift --delete-all

Optionally, remove the ext4 partition and give the space back to NTFS:

sudo gparted

In GParted:

  1. Select the external drive from the dropdown.
  2. Right-click the ext4 partition (sda2) and select Delete.
  3. Right-click the NTFS partition (sda1) and select Resize/Move.
  4. Drag the right edge to fill all available space, or set the size to the full disk capacity.
  5. Click the green Apply checkmark to execute.

This restores your external drive to a single NTFS partition, exactly as it was before you started this guide.


Safely Ejecting the External Drive

Always eject the drive properly before unplugging it. Pulling the cable without unmounting can corrupt the filesystem.

sudo umount /dev/sda2
sudo umount /dev/sda1
sudo eject /dev/sda

The first command unmounts the ext4 backup partition. The second unmounts the NTFS data partition (if it was mounted). The third tells the kernel to flush all pending writes and power down the drive, making it safe to unplug.

If you get a “target is busy” error on either umount command, close any terminal windows or file manager windows that are accessing the drive, then try again.


Discussion