Backing up a Western Digital 4TB USB drive on Linux using rsync requires identifying the device, formatting it with a compatible filesystem like ext4, and executing synchronization commands with appropriate flags. This process ensures data integrity and allows for incremental updates without overwriting unchanged files unnecessarily.
Identifying the USB Device
Before performing any backup operations, you must correctly identify the target USB drive in your Linux environment. Connecting the Western Digital 4TB drive to your system triggers kernel messages that can be viewed using the
dmesg command. Look for entries indicating a new block device, typically assigned names like
sdb,
sdc, or similar depending on existing storage configurations. To confirm the exact device name and its current mount status, use the
lsblk utility. This command lists all available block devices along with their sizes and mount points, helping you avoid selecting the wrong disk which could lead to data loss.
It is critical to double-check the device identifier. Selecting your primary hard drive instead of the USB stick will result in catastrophic data destruction. If the drive is already mounted, unmount it using the
umount /dev/sdX1 command, replacing
sdX1 with your specific partition identifier. This step ensures that no processes are writing to the drive during the formatting or initial sync phase.
Formatting the Drive
Linux systems handle various filesystems, but for optimal compatibility and performance with rsync, ext4 is often the preferred choice for external drives used primarily within Linux environments. While exFAT is popular for cross-platform compatibility between Windows and Linux, it may introduce overhead or permission issues that affect backup efficiency. As noted in our analysis of
Slow Backing up External 2TB exFAT HDD via USB using rsync on Ubuntu 22.04, filesystem choice significantly impacts transfer speeds and reliability.
To format the drive, first ensure it is unmounted. Then, execute the
mkfs.ext4 /dev/sdX command, where
sdX represents the entire device node (not a partition like
sdX1). This operation wipes all existing data on the drive, so verify your selection one last time. After formatting, create a mount point directory, such as
/mnt/wd_backup, using
mkdir -p /mnt/wd_backup. Mount the newly formatted drive to this directory with
mount /dev/sdX /mnt/wd_backup. You can now proceed with the backup process.
Executing the Rsync Backup
The core of the backup process relies on the rsync utility. The most common command structure for a full initial backup involves several key flags. The
-a flag enables archive mode, preserving permissions, timestamps, and symbolic links. Adding
-v provides verbose output, allowing you to monitor progress. Including
--progress displays detailed information about each file being transferred, which is helpful for large datasets like those on a 4TB drive. A typical command looks like this:
rsync -av --progress /source/directory/ /mnt/wd_backup/backup/
Note the trailing slashes. In rsync syntax, a trailing slash on the source directory means "copy the contents of this directory," whereas omitting it copies the directory itself into the destination. For backing up user data, copying contents is usually desired. If you are concerned about space availability before starting a large transfer, consider performing a dry run first. Our guide on
Determining If Enough Space is Available in Destination Drive for rsync Dry Run explains how to use the
--dry-run flag to simulate the process without writing data.
Incremental Updates and Idempotency
One of the greatest advantages of rsync is its ability to perform incremental backups efficiently. Once the initial full backup is complete, subsequent runs only transfer files that have changed or been added since the last sync. This behavior is due to rsync's algorithm, which compares file metadata and content hashes. It does not resume incomplete files by restarting them from zero; rather, it skips files that are identical and transfers only the differing blocks of modified files. This concept is explored further in
Is rsync idempotent?, which clarifies that repeated executions yield the same final state without redundant work.
For scheduled backups, you can automate this process using cron jobs. Create a script containing your rsync command and schedule it to run at regular intervals. Ensure the script handles errors appropriately and logs output for troubleshooting. Regular testing of your backup strategy is essential to verify that data can be restored successfully.
Excluding Specific Directories
In many cases, you do not want to back up every single file. Temporary files, cache directories, or system-specific folders can clutter your backup and waste time. Rsync allows you to exclude these paths using the
--exclude option. For example, to skip the
.cache and
tmp directories, you would add
--exclude='.cache' and
--exclude='tmp' to your command. However, complex exclusion rules involving both include and exclude patterns can be tricky. If you find that your excludes are not working as expected, review our article on
Can't Get Rsync to Exclude Specific Directories? Here's the Include Option to Try for advanced pattern matching techniques.
Properly managing what gets backed up reduces storage usage and speeds up the synchronization process. Always test your exclusion patterns with a small subset of data before applying them to your entire 4TB drive. This precaution helps prevent accidental inclusion of sensitive or unnecessary data.
Synchronizing Between Machines
While this guide focuses on local USB backups, rsync is also powerful for synchronizing data between two networked machines. The syntax changes slightly to specify a remote host, but the underlying principles remain the same. Understanding how to secure data by syncing updated files from a primary server to a backup machine is crucial for comprehensive disaster recovery strategies. For more details on this advanced use case, refer to
Securing Data: Synchronizing Updated Files from Primary Server to Backup Machine using Rsync.
Whether you are backing up locally to a Western Digital drive or replicating across a network, rsync provides a robust, flexible solution. By carefully identifying devices, choosing the right filesystem, and mastering rsync flags, you can ensure your data remains safe and accessible.
Frequently Asked Questions
Will rsync delete files on the destination if they are removed from the source?
No, by default rsync only copies new or modified files. It does not delete anything on the destination unless you explicitly use the
--delete flag. Always use
--delete with caution, as it mirrors the source exactly, removing extra files on the target.
How long does it take to back up a 4TB drive?
The duration depends on the amount of data, the speed of the USB interface (USB 3.0 vs 2.0), and the type of files. A full backup of empty space takes minutes, but filling 4TB with data can take several hours. Using
--info=progress2 gives a real-time percentage estimate.
Can I use NTFS for my Linux backup drive?
Yes, but you need the ntfs-3g package installed. While functional, NTFS may have slower performance compared to ext4 on Linux systems due to additional translation layers. Ext4 is generally recommended for pure Linux environments.
What happens if the USB drive is disconnected during backup?
Rsync will stop transferring data. Upon reconnection, you can restart the command, and rsync will resume from where it left off, skipping already completed files. This makes interruptions relatively harmless, provided the filesystem remains intact.
Is it necessary to unmount the drive before running rsync?
It is highly recommended to unmount the drive to prevent race conditions where files are modified while being copied. Running rsync against a mounted drive can lead to inconsistent backups if write operations occur simultaneously.