Resolving Timeshift Backup Issues on Xiaomi Pad 5 (nabu)
Package Mirror 404 During Installation
When installing Timeshift, rsync package download fails:
error: failed retrieving file 'rsync-3.4.1-2-aarch64.pkg.tar.xz' from mirrors.tuna.tsinghua.edu.cn
The requested URL returned error: 404
Root Cause: Mirror synchronization delay for ARM packages.
Solution:
sudo pacman -Syy # Force refresh package database
sudo pacman -Syu # Perform full system update
sudo pacman -S timeshift
Avoid partial upgrades using -Sy alone to prevent shared libray version mismatches.
GUI Backup Freezes at Various Directories
Timeshift GUI backup process stalls at specific directories:
/var/log/journal/(system logs)/var/lib/systemd/coredump/(crash dumps)/var/spool/plymouth/(boot animation files)/usr/src/linux-nabu(kernel source)/usr/share/zsh/site-functions/(numerous small files)
Solution: Add exclusions in Timeshift Settings → Filters:
/var/log/**
/var/tmp/**
/var/cache/**
/var/spool/**
/var/opt/**
/var/lib/systemd/coredump/**
/usr/src/**
/proc/**
/sys/**
/dev/**
/run/**
/tmp/**
/timeshift/**
These directory are unnecessary for system restoration.
Reduce backup size by cleaning journal logs:
sudo journalctl --vacuum-size=200M
Rsync Terminated by OOM Killer
After adding exclusions, backup still fails. Monitor system resources:
watch -n 2 'free -h && ps aux | grep rsync'
Rsync process disappears when available memory drops below threshold.
Check system logs:
sudo journalctl -b -1 | grep -i "oom\\|killed process\\|out of memory"
Solution: Free memory before backup:
sudo systemctl stop high-memory-services
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
Alternative: Switch to TTY and disable desktop environment:
# Ctrl+Alt+F2 to enter TTY
sudo systemctl stop display-manager
sudo timeshift --create --comments "Initial backup"
Rsync Completes but info.json Missing
In TTY environment, rsync completes successfully (exit_code: 0) but Timeshift shows "0 snapshots".
Check Timeshift logs:
cat /var/log/timeshift.log
Key output:
[12:29:11] export LC_ALL=C.UTF-8 rsync -aii --recursive ...
[12:32:55] AsyncTask: finish(): enter
[12:32:55] exit_code: 0
[12:33:32] loading snapshots from '...snapshots': 0 found
Snapshot directory inspection:
ls /timeshift/snapshots/2026-05-01_15-15-45/
# Output: exclude.list localhost rsync-log rsync-log-changes
# Missing: info.json
Root Cause: ARM platform bug in Timeshift's rsync subprocess signal handling.
Solution: Manually create info.json:
sudo nano /timeshift/snapshots/2026-05-01_15-15-45/info.json
Content:
{
"uuid" : "2026-05-01_15-15-45",
"name" : "2026-05-01_15-15-45",
"sys_uuid" : "YOUR_PARTITION_UUID",
"date" : "2026-05-01 15:15:45",
"date_formatted" : "2026-05-01 15:15:45",
"description" : "Manual fix",
"tags" : "O",
"backup_parent_uuid" : "",
"live_snapshot" : false,
"written_to_disk" : true
}
Retrieve partition UUID:
sudo blkid /dev/sda32
GUI Backup Complete Freeze
Timeshift process consumes 99% CPU but no rsync subprocess exists:
sudo ps aux | grep rsync
# Only shows grep process
Root Cause: UFS storage clock scaling driver (ufs_clkscaling) issues during sustained IO operations.
Solution: Bypass Timeshift GUI, use rsync directly:
sudo rsync -aAXv \
--exclude='/proc/**' \
--exclude='/sys/**' \
--exclude='/dev/**' \
--exclude='/run/**' \
--exclude='/tmp/**' \
--exclude='/var/log/**' \
--exclude='/var/cache/**' \
--exclude='/var/tmp/**' \
--exclude='/var/spool/**' \
--exclude='/usr/src/**' \
--exclude='/home/**' \
--exclude='/timeshift/**' \
/ /timeshift/snapshots/manual-backup-1/
System Restoration Procedure
From recovery environment (OrangeFox Recovery or external media):
sudo rsync -aAXv \
--exclude='/proc/**' \
--exclude='/sys/**' \
--exclude='/dev/**' \
--exclude='/run/**' \
--exclude='/tmp/**' \
/timeshift/snapshots/manual-backup-1/localhost/ /
Incremental Backup Implementation
Using --link-dest for hardlink-based incremental backups:
sudo rsync -aAXv --delete \
--exclude='/proc/**' \
--exclude='/sys/**' \
--exclude='/dev/**' \
--exclude='/run/**' \
--exclude='/tmp/**' \
--exclude='/var/log/**' \
--exclude='/var/cache/**' \
--exclude='/var/tmp/**' \
--exclude='/var/spool/**' \
--exclude='/usr/src/**' \
--exclude='/home/**' \
--exclude='/timeshift/**' \
--link-dest=/timeshift/snapshots/manual-backup-1/localhost/ \
/ /timeshift/snapshots/manual-backup-2/localhost/
This replicates Timeshift's rsync mode functionality.
Issue Summary
| Problem | Cause | Solution |
|---|---|---|
| Package mirror 404 | ARM mirror sync delay | pacman -Syy then full update |
| Backup directory freeze | Large/active files | Add directory exclusions |
| Rsync OOM kill | Insufficient memory | Backup in TTY with out desktop |
| Missing snapshot info | ARM signal handling bug | Manual info.json creation |
| GUI complete freeze | UFS driver issues | Direct rsync backup |