How to Setup Timeshift with BTRFS in Fedora?
Last Updated :
23 Jul, 2025
Setting up Timeshift with BTRFS on Fedora provides a powerful combination for system backups and snapshots. Timeshift is a popular tool used to create and restore system snapshots, and when paired with the BTRFS file system, it can take advantage of BTRFS's built-in snapshot capabilities to make the backup process faster and more efficient.
In this guide, we’ll walk you through how to set up Timeshift with BTRFS on Fedora to ensure your system is backed up and can easily recover from any mishaps.
What is Timeshift?
Timeshift is a system backup tool like Time Machine in Mac OS.
To put it crudely, It allows you to make snapshots of the system along with its configuration and settings. It's a nifty tool if you ever happen to break your system.
Some Core features-
- Having the ability to take automatic snapshots.
- Manual snapshot option.
- Hourly, daily, weekly, monthly, snapshot feature.
- Support for BTRFS file systems.
But on Fedora-based systems it's not as easy as just installing and setting it up, you have to configure a few things here and there while installing the OS itself. This article talks about how to set up timeshift in fedora-based systems.
Fedora uses BTRFS but...
Fedora indeed uses the BTRFS system but Timeshift was created with Ubuntu-based systems in mind and the default sub-volume name layout in those systems starts with "@" i.e. "@" for the root sub-volume and "@home" for the home sub-volume.
Fedora uses BTRFS but doesn't use this naming scheme for its sub-volumes "by default", you have to manually configure the sub-volumes to match the layout compatible with timeshift.
How to set up Timeshift in Fedora?
Now onto the fun part (yay! But this is not Arch). In this section, I will show you how to setup up Timeshift in Fedora with a BTRFS file system.
Step 1: Booting into USB
Boot into the installation media
Installation home screenStep 2: Language
Select language and hit continue.
Select languageStep 3: Keyboard Layout
Choose your keyboard layout and time zone on the next screen.
Select a keyboard layout and timezoneStep 4: Destination
Click on the installation destination
Select the installation destination optionStep 5: Advanced Custom
Click on the radio button titled "Advanced Custom (Blivet-GUI)" and click done.
Advanced custom partitioningWe can see that we have 25 GB available on our hard disk, we will have to partition this into 3 partitions, i.e. boot partition, EFI partition and root partition which would have our two sub-volumes root and home.
Partitioning pageWe are not going to create a swap partition, as Fedora uses Zram instead of Swap on disk.
Step 6: EFI Partition
We will first create the EFI partition, for that, click on the plus icon
- Enter the size as 600 MiB
- Select the file system as "EFI system partition"
- Enter the mount point as "/boot/efi"
Boot EFI partitioningStep 7: Boot Partition
Now we will create the boot partition. Click on free space and click on the plus icon once again.
- Enter the size as 1024 Mib
- Select the file system as ext4
- Enter the mount point as "/boot"
Boot partitioningStep 8: BTRFS Partition
Now we will allocate the remaining space for our BTRFS partition.
- Enter the remaining size
- Select the file system as BTRFS
- Encrypt your hard drive, this is optional but recommended, especially for portable devices like laptops where you always have the risk of your data getting into a third party's hands because of it getting stolen or lost. This also holds true if your laptop ever malfunctions and you give it to repair, encrypting your data will ensure that the technician is unable to access it. You can follow the following steps to encrypt your laptop:
- Check the "Encrypt" checkbox
- Leave "Encryption type" and "Sector size" untouched.
- Enter your passphrase which is strong but easy to remember(you will have to enter each time you boot your computer).
- Re-enter the passphrase
BTRFS partitioningStep 9: Creating Subvolumes
Now we will have to create the BTRFS sub-volumes for root and home.
Creating root subvolume
To create the root subvolume:
- Select the primary BTRFS partition which was created and hit the plus icon.
- Now enter the name as "@"
- And, enter the mount point as "/"
Creating root subvolumeCreating Home subvolume
To create the home subvolume:
- Once again select the BTRFS partition and hit the plus icon.
- Enter name as "@home"
- And mount point as "/home"
Creating home subvolumeStep 10: Almost Done
Click on done and accept all the changes.
Accepting changesStep 11: Let's begin
Install Fedora.
Begin installationInstalling Time Shift
Ok, that was long(sighs), but now we are done with installing Fedora and it's time to install Timeshift.
- Open up the terminal and enter the following command to install time shift on your system.
sudo dnf install timeshift
Installing TimeshiftConfiguring Timeshift
Step 1: RSYNC vs BTRFS
Open Time Shift enter your administrative password when prompted and you will be greeted with a screen to choose between BTRFS and RSYNC. Choose BTRFS as we have that as our file system.
Choosing BTRFSStep 2: Choosing a location
Now select the location where you want to save the snapshot, I recommend saving the snapshot on an external device or a secondary, internal hard disk so that you can restore your snapshot in case something were to happen to your primary drive.
Select location for the snapshotStep 3: Snapshot levels
Now select the Snapshot levels, I recommend keeping 4 monthly, 4 weekly and 5 daily, your mileage may vary, and if you tinker a lot with your system then it will serve you well if you keep hourly backups as well and click next.
Selecting the snapshot levelsStep 4: Home snapshot
Now, you will have to choose if you want to have a home snapshot or not. I will advise against it because if you chose to revert back to a snapshot then it will reset your system and the files in your home directory to the previous state and you might lose some of the documents and modifications that you currently have in your system. Now, click next after making your decision.
Home snapshotStep 5: Finish
Now the setup is done and hit "Finish" to exit the wizard.
FinishGetting started with Timeshift in Fedora
Navigating through Timeshift is pretty easy.
Creating Snapshots
To create a snapshot just hit "Create" and it will create a snapshot of your system.
Create snapshotRestoring Snapshots
Step 1: In order to restore a snapshot, you must first select the desired snapshot and then click on "Restore".
Restoring snapshotStep 2: Now hit "Next" to restore to that snapshot.
Warning before restoringConclusion
By following this guide, you can easily set up Timeshift with BTRFS on Fedora, allowing you to create reliable snapshots of your system. This setup ensures that you can restore your system to a previous state in case of an error or system failure, offering peace of mind for both regular users and system administrators. With Timeshift and BTRFS working together, you have an efficient backup solution for your Fedora system.
Similar Reads
Linux/Unix Tutorial Linux is one of the most widely used open-source operating systems. It's fast, secure, stable, and powers everything from smartphones and servers to cloud platforms and IoT devices. Linux is especially popular among developers, system administrators, and DevOps professionals.Linux is:A Unix-like OS
10 min read
Linux Commands Cheat Sheet Linux, often associated with being a complex operating system primarily used by developers, may not necessarily fit that description entirely. While it can initially appear challenging for beginners, once you immerse yourself in the Linux world, you may find it difficult to return to your previous W
13 min read
25 Basic Linux Commands For Beginners [2025] While performing a task, we all need shortcuts. Shortcuts help us to complete a task quickly. Linux comes with such commands which are one to two words, using that commands, you can perform several operations in no time. As a beginner, you must be aware of those basic Linux commands to complete an o
13 min read
grep command in Unix/Linux The grep command is one of the most useful tools in Linux and Unix systems. It is used to search for specific words, phrases, or patterns inside text files, and shows the matching lines on your screen. Syntax of grep Command in Unix/LinuxThe basic syntax of the `grep` command is as follows:grep [opt
6 min read
Sed Command in Linux/Unix With Examples The SED command (short for Stream Editor) is one of the most powerful tools for text processing in Linux and Unix systems. It's commonly used for tasks like search and replace, text transformation, and stream editing.With SED, you can manipulate text files without opening them in an editor. This mak
8 min read
AWK command in Unix/Linux with examples Awk is a scripting language used for manipulating data and generating reports. The awk command programming language requires no compiling and allows the user to use variables, numeric functions, string functions, and logical operators. Awk is a utility that enables a programmer to write tiny but eff
8 min read
Introduction to Linux Shell and Shell Scripting Whenever we use any modern operating system like Linux, macOS, or Windows we are indirectly interacting with a shell, the program that interprets and executes our commands. While running Ubuntu, Linux Mint, or any other Linux distribution, we are interacting with the shell by using the terminal. In
8 min read
How to Find a File in Linux | Find Command The find command in Linux is used to search for files and directories based on name, type, size, date, or other conditions. It scans the specified directory and its sub directories to locate files matching the given criteria.find command uses are:Search based on modification time (e.g., files edited
9 min read
What is Linux Operating System Linux is based on the UNIX operating system. UNIX is a powerful, multi-user, multitasking operating system originally developed in the 1970s at AT&T Bell Labs. It laid the foundation for many modern operating systems, including Linux.Linux is free and open-source, accessible to everyone.Its sour
11 min read
ZIP command in Linux with examples In Linux, the zip command compresses one or more files or directories into a single.zip archive file. This saves disk space, keeps data organized, and makes it simple to share or backup files. It's among the most used compression utilities, particularly when sharing large files via email or storing
6 min read