Fading Coder

One Final Commit for the Last Sprint

Home > Tech > Content

Resolving Timeshift Backup Issues on Xiaomi Pad 5 (nabu)

Tech May 10 3

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
Tags: Timeshift

Related Articles

Understanding Strong and Weak References in Java

Strong References Strong reference are the most prevalent type of object referencing in Java. When an object has a strong reference pointing to it, the garbage collector will not reclaim its memory. F...

Comprehensive Guide to SSTI Explained with Payload Bypass Techniques

Introduction Server-Side Template Injection (SSTI) is a vulnerability in web applications where user input is improper handled within the template engine and executed on the server. This exploit can r...

Implement Image Upload Functionality for Django Integrated TinyMCE Editor

Django’s Admin panel is highly user-friendly, and pairing it with TinyMCE, an effective rich text editor, simplifies content management significantly. Combining the two is particular useful for bloggi...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.