Timeshift: Jak zainstalować i skonfigurować narzędzie do tworzenia punktów przywracania systemu
Timeshift to zaawansowane narzędzie do tworzenia migawek (snapshotów) systemu Linux, działające w sposób mocno przypominający popularne „Przywracanie systemu” znane z Windowsa, a w pewnym stopniu również funkcję Time Machine z systemu macOS. Jego najważniejszą funkcją jest umożliwienie błyskawicznego cofnięcia całego środowiska operacyjnego do stabilnego, wcześniejszego stanu w sytuacji krytycznej — po nieudanej aktualizacji systemu lub pojedynczych pakietów, wgraniu wadliwego sterownika kart graficznej czy też przy pomyłkach użytkownika w plikach konfiguracyjnych.
Spis treści
- Rys historyczny i zmiana warty
- Instalacja
- Debian, Ubuntu, Linux Mint, Elementary OS, etc.
- Fedora, Nobara, Bazzite etc
- Arch Linux ,Manjaro,EndeavourOS,CachyOS etc
- openSUSE Leap i Tumbleweed
- Konfiguracja
- Kreator pierwszego uruchomienia
- Krok 1 – Wybór trybu migawek
- Porównanie najważniejszych cech
- Kiedy warto wybrać Rsync zamiast Btrfs?
- Nie rezygnuj z Rsync nawet na Btrfs
- Krok 2 – Wybór lokalizacji migawek
- Krok 3 – Harmonogram automatycznych migawek
- Krok 4 – Katalogi użytkownika
- Tworzenie pierwszej migawki
- Przez interfejs graficzny (GUI)
- Przywracanie systemu
- Metoda 1: Przywracanie przez interfejs graficzny
- Metoda 2: Przywracanie przez terminal
- Przywracanie z Live USB (gdy system się nie uruchamia)
- Konfiguracja filtrów
- Automatyczne migawki
- Automatyczne migawki przed aktualizacjami (tylko dla systemów opartych na Arch Linux)
- Automatyczne migawki przez systemd lub przez skrypt (wszystkie dystrybucje)
- Metoda 1: Automatyczne migawki przez systemd
- Metoda 2: Automatyczne migawki przez skrypt i cron
- Podstawowe polecenia CLI
- Wskazówki i dobre praktyki
Co wyróżnia Timeshifta na tle tradycyjnych programów do backpu? Jego filozofia polega na zabezpieczaniu wyłącznie systemu operacyjnego, z domyślnym wykluczeniem danych użytkownika. Wynika to z praktycznego podejścia — jeśli po kilku dniach system przestanie działać, używając Timeshifta cofamy jedynie konfigurację i pliki linuksowe. Dzięki temu proces przywracania nie „połknie” i nie zniszczy nowych dokumentów, zdjęć, zapisów gry czy ważnej pracy magisterskiej, która od tego czasu zapisała się w naszym folderze /home.
Rys historyczny i zmiana warty
Historia projektu Timeshift jest znakomitym przykładem na to, jak rozwija się środowisko Open Source i pokazuje potęgę społeczności skupionej wokół Linuksa.
Projekt powstał około roku 2014, z inicjatywy jednego utalentowanego dewelopera – Tony’ego George’a (działającego pod pseudonimem teejee2008). Początkowo program powstawał głównie z braku podobnie zgrabnego “Time Machine” dla Linuksów klasy desktop. Ponieważ rozwiązanie w idealny wręcz sposób łączyło techniczny rygor systemów uniksowych z interfejsem graficznym „zrozumiałym na kliknięcie”, błyskawicznie stało się programem typu „must-have”. Popularni internetowi vlogerzy zaczęli rekomendować każdemu, świeżemu „przepięciu się na Linuksa”, użycie m.in Timeshifta.
Prawdziwa ewolucja nadeszła wraz z zainteresowaniem się nim dystrybucji Linux Mint. System reklamujący się jako świetny port startowy i synonim przyjazności powoli adoptował funkcję automatycznych update’ów, stawiając bardzo silnie nacisk na jedną radę do swoich milionów użytkowników – “Masz pobrać update od Jądra/Grubego pliku sterowników? Miej koniecznie na uwadze migawkę!“.
Poważny punkt zwrotny przypadł jednak w połowie 2022 roku. Tony George w publicznych ogłoszeniach napomknął o obawach – deweloper samowładczo przestał nadążać z dodawaniem obsługi modnych technologii dla dziesiątków mutacji systemu Linux Mint oraz sam dla tego Minta stawał się za ważnym komponentem na projekt “side-deweloperski” dla garstki fanów z gitHuba twórcy. Ostatecznie zawiesił działalność.
Clement Lefebvre wraz z twórcami z załogi głównej środowiska zespołu (tzw. ekipa XApp / Cinnamon / Linux Mint Development Team) publicznie objęła natychmiast patronat po oryginalnym pisarzu kodu. Projekt o tej nazwie ujednolicono w kodzie – wprowadzając owoce tego właśnie m.in link do głównej bazy https://github.com/linuxmint/timeshift , czyniąc Timeshifta już integralną, wspartą na całym świecie potężnymi serwerami i rzecznymi finansami społeczności główną oficjalną XAplikacją Linux Mint, pozostawiając mimo to ją na wieki niezależnie udostępnioną każdemu dowolnemu systemowi Linux na świecie jako nieocenioną barierę i polisę gwarancyjną każdego posiadacza desktopu i pingwina.
Instalacja
W poradniku posłużę się dystrybucją Debian w wersji 13. Instalacja jest bardzo prosta, ponieważ oprogramowanie jest dostępne w oficjalnym repozytorium. Wystarczy otworzyć terminal i wpisać odpowiednie polecenie.
Debian, Ubuntu, Linux Mint, Elementary OS, etc.
sudo apt update && sudo apt install timeshiftFedora, Nobara, Bazzite etc
sudo dnf install timeshiftArch Linux ,Manjaro,EndeavourOS,CachyOS etc
sudo pacman -S timeshiftopenSUSE Leap i Tumbleweed
sudo zypper install timeshiftKonfiguracja
Po zainstalowaniu uruchom aplikację Timeshift z uprawnieniami administratora w terminalu:
sudo timeshift-gtkLub możesz też uruchomić ją z menu aplikacji.

Kreator pierwszego uruchomienia
Krok 1 – Wybór trybu migawek
Przy pierwszym uruchomieniu pojawi się kreator konfiguracji, który poprosi o wybranie typu migawek. Do wyboru są dwa tryby:
RSYNC i BTRFS
Tryb Rsync kopiuje pliki fizycznie do osobnego folderu, domyślnie /timeshift/snapshots/. Aby oszczędzać miejsce, korzysta z twardych dowiązań (hardlinków) — pliki niezmienione między migawkami nie są duplikowane, lecz wskazują na ten sam blok danych na dysku. Dzięki temu każda migawka wygląda jak pełna kopia systemu, choć faktycznie zajmuje znacznie mniej miejsca.
Tryb Btrfs działa zupełnie inaczej. Zamiast kopiować pliki, korzysta z natywnych mechanizmów systemu plików Btrfs — subvolumes i snapshotów opartych na technologii Copy-on-Write (CoW). Oznacza to, że nowe dane są zapisywane tylko wtedy, gdy coś się zmieni, a migawka tworzy się praktycznie natychmiast, niezależnie od rozmiaru systemu.

Porównanie najważniejszych cech
| Cecha | Rsync | Btrfs |
|---|---|---|
| Wymagany system plików | Dowolny (ext4, xfs, ntfs…) | Tylko Btrfs |
| Szybkość tworzenia snapshotu | Wolniejszy | Błyskawiczny |
| Zajętość miejsca | Większa (hardlinki) | Minimalna (CoW) |
| Przeglądanie plików snapshotu | Tak – to zwykłe foldery | Nie – zintegrowane z FS |
| Przenośność na inny dysk | Tak | Nie |
| Przywracanie | Na dowolny dysk | Tylko ten sam wolumin Btrfs |
Kiedy warto wybrać Rsync zamiast Btrfs?
Wybór w dużej mierze zależy od tego, jaki system plików masz na partycji systemowej. Jeśli używasz ext4 lub xfs — co nadal jest standardem w wielu dystrybucjach — tryb Btrfs po prostu nie będzie dostępny i jedyną opcją pozostaje Rsync.
Jeśli jednak Twój system jest zainstalowany na Btrfs (jak ma to miejsce domyślnie w Fedorze czy openSUSE), warto sięgnąć po natywny tryb Btrfs. Migawki tworzone są w ciągu ułamka sekundy i niemal nie obciążają dysku, co sprawia, że można je wykonywać znacznie częściej.
| Sytuacja | Zalecany tryb |
|---|---|
| System na ext4 lub xfs | Rsync |
| System na Btrfs | Btrfs |
| Backup na zewnętrzny dysk | Rsync |
| Częste snapshoty, mało miejsca na dysku | Btrfs |
| Dostęp do plików kopi | Rsync |
Nie rezygnuj z Rsync nawet na Btrfs
Można też wybrać tryb Rsync nawet przy systemie plików Btrfs — jeśli chcesz wykonywać kopie zapasowe na zewnętrzny dysk lub serwer NAS.
Dalsze kroki dotyczą wyłącznie metody Rsync — wybranie trybu Btrfs kończy kreator konfiguracji.
Krok 2 – Wybór lokalizacji migawek
Po przejściu do następnego kroku kreator wyświetli wszystkie dostępne dyski i poprosi o wybranie jednego z nich jako miejsca docelowego dla migawek.
Po wybraniu dysku zostanie na nim automatycznie utworzony katalog timeshift.

Krok 3 – Harmonogram automatycznych migawek
W tym kroku możemy ustawić, kiedy mają być tworzone migawki oraz ile z nich ma być przechowywanych. Po zapisaniu konfiguracji Timeshift automatycznie tworzy w katalogu /etc/cron.d/ plik timeshift-boot (dla migawek tworzonych przy starcie systemu, z dziesięciominutowym opóźnieniem od jego uruchomienia) lub timeshift-hourly (obsługujący pozostałe interwały: godzinne, dzienne, tygodniowe i miesięczne). Zasadniczo proces przebiega tak samo: polecenia te wywołują Timeshifta z flagami –check –scripted, aby samodzielnie zweryfikował, czy w grafiku wypada moment na zaplanowaną migawkę. Jeżeli nadszedł właściwy czas, pliki systemu zostają zarchiwizowane, w przeciwnym wypadku usługa po cichu kończy swoje działanie.

Migawki są wykonywane według następującego harmonogramu:
- Rozruchowe – około 10 minut po uruchomieniu systemu
- Godzinowe – co godzinę, o pełnej godzinie (np. 13:00, 14:00…)
- Dzienne – codziennie o 00:00
- Tygodniowe – w niedzielę o 00:00
- Miesięczne – pierwszego dnia miesiąca o 00:00
Uwaga: jeśli komputer był wyłączony w wyznaczonej godzinie, migawka nie zostanie nadrobiona po ponownym uruchomieniu — zostanie po prostu pominięta.
Krok 4 – Katalogi użytkownika
Timeshift domyślnie chroni tylko pliki systemowe (katalog /). Pliki osobiste (/home) nie są uwzględniane w domyślnej konfiguracji, aby Timeshift brał je pod uwagę, trzeba je ręcznie dodać. W tym kroku mamy do wyboru dwie opcje:
Tylko ukryte pliki — czyli wszystkie pliki i katalogi, których nazwy zaczynają się od kropki i nie są widoczne na pierwszy rzut oka w menedżerze plików, np. .config, .var, .ssh.
Wszystkie pliki — Timeshift uwzględnia wtedy cały katalog /home, łącznie z dokumentami, zdjęciami i innymi plikami osobistymi.

Wstępna konfiguracja jest gotowa. Zamknij konfigurator, klikając „Zakończ“.

Tworzenie pierwszej migawki
Przez interfejs graficzny (GUI)
Po zakończeniu pracy kreatora konfiguracji zostaniesz przeniesiony do głównego okna programu. Aby utworzyć pierwszą migawkę, kliknij duży przycisk „Utwórz” w lewym górnym rogu.

lub użyć komendy w terminalu:
sudo timeshift --create --comments "test" --tags OPrzy tworzeniu migawki możesz użyć jednego z poniższych tagów, aby określić kiedy została wykonana:
M (Monthly) – migawka miesięczna
O (Online) – migawka zrobiona podczas działającego systemu
B (Boot) – migawka rozruchowa, zrobiona przy starcie systemu
H (Hourly) – migawka godzinowa
D (Daily) – migawka dzienna
W (Weekly) – migawka tygodniowa

Pierwsze tworzenie migawki może zająć od kilku do kilkudziesięciu minut — czas zależy od rozmiaru danych na dysku oraz liczby zainstalowanych programów. Dzieje się tak dlatego, że Timeshift musi wykonać pełną kopię całego systemu. Cały postęp operacji możesz śledzić na bieżąco w oknie programu.

Każda kolejna migawka tworzona jest znacznie szybciej, ponieważ Timeshift nie kopiuje ponownie wszystkich plików (zamiast tego zapisuje jedynie różnice względem poprzedniej migawki, czyli tylko te pliki, które zostały zmienione lub dodane od ostatniej kopii). Mechanizm ten (tzw. twarde dowiązania — hard links) sprawia, że zarówno czas tworzenia, jak i zajętość dysku są znacznie mniejsze niż w przypadku pełnej kopii.

Po zakończeniu procesu nowa migawka pojawi się na liście dostępnych kopii zapasowych w głównym oknie programu.
Przywracanie systemu
Metoda 1: Przywracanie przez interfejs graficzny
Aby przywrócić system do wybranego punktu, otwórz Timeshift i z listy dostępnych migawek wybierz tę, do której chcesz wrócić. Zwróć uwagę na datę, godzinę oraz oznaczenie typu migawki, aby wybrać właściwy punkt przywracania. Po zaznaczeniu migawki kliknij przycisk „Przywróć” w górnym pasku narzędzi.

Timeshift wyświetli ekran, na którym możesz sprawdzić, na jakich partycjach zostaną przywrócone dane. W większości przypadków nie musisz nic zmieniać. Kliknij „Dalej“, aby kontynuować.

Program może wyświetlić ostrzeżenie, że operacja nadpisze obecny stan systemu, potwierdź chęć kontynuowania. Proces przywracania przebiega podobnie do tworzenia migawki i jego postęp możesz śledzić na bieżąco w oknie programu.




Uwaga: po zakończeniu przywracania Timeshift automatycznie uruchomi ponownie system. Upewnij się wcześniej, że zapisałeś wszystkie otwarte dokumenty i zamknąłeś ważne aplikacje.
Metoda 2: Przywracanie przez terminal
Wylistuj dostępne migawki
sudo timeshift --listPrzywróć konkretną migawkę (podaj jej nazwę z listy)
sudo timeshift --restore --snapshot 2024-03-15_10-00-01Przywracanie z Live USB (gdy system się nie uruchamia)
- Uruchom system w trybie Live USB swojej dystrybucji.
- Zamontuj partycję systemową
- Zainstaluj Timeshift na Live USB
- Użyj poniższego polecenia lub uruchom aplikację w trybie GUI.
sudo timeshift --restoreTimeshift automatycznie wykryje dostępne migawki i przeprowadzi Cię przez proces przywracania.
Konfiguracja filtrów
W ustawieniach można skonfigurować filtry, które określają, jakie pliki będą brane pod uwagę podczas tworzenia migawki. Poniżej znajduje się przykładowa lista filtrów — dostosuj ścieżki do swojej nazwy użytkownika:
– /home/UŻYTKOWNIK/.var/app/*/cache/***
– /home/UŻYTKOWNIK/.cache/***
+ /home/UŻYTKOWNIK/**
– /dev/***
– /proc/***
– /sys/***
– /tmp/***
– /run/***
– /mnt/***
– /home/UŻYTKOWNIK/.local/share/Trash/***

Wpisy zaczynające się od – wykluczają dany katalog z migawki. Wpis + /home/UŻYTKOWNIK/** włącza pliki domowe użytkownika (wymaga ustawienia katalogu /home w Kroku 4 kreatora).
Automatyczne migawki
Automatyczne migawki przed aktualizacjami (tylko dla systemów opartych na Arch Linux)
Zainstaluj timeshift-autosnap — wtyczkę dla menedżera pakietów pacman, która automatycznie tworzy migawkę systemu przed każdą aktualizacją. Dzięki temu w razie problemów po aktualizacji możesz szybko przywrócić system do poprzedniego stanu.
Możesz go zainstalować za pomocą menedżera AUR, używając poniższej komendy:
yay -S timeshift-autosnaplub
paru -S timeshift-autosnap
Od tej pory migawka będzie tworzona automatycznie przed każdym wywołaniem pacman -Syu.
Automatyczne migawki przez systemd lub przez skrypt (wszystkie dystrybucje)
Jeśli nie odpowiada wam domyślny harmonogram, możecie wywołać wykonywanie migawek za pomocą poniższych sposobów.
Metoda 1: Automatyczne migawki przez systemd
Utwórz timer systemd:
sudo nano /etc/systemd/system/timeshift-daily.service[Unit]
Description=Timeshift – dzienna migawka
[Service]
Type=oneshot
ExecStart=/usr/bin/timeshift --create --comments "Automatyczna migawka dzienna" --tags DUtwórz plik timera:
sudo nano /etc/systemd/system/timeshift-daily.timer[Unit]
Description=Timeshift – timer dzienny
[Timer]
OnBootSec=1h
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.targetAktywuj timer:
sudo systemctl enable --now timeshift-daily.timerMetoda 2: Automatyczne migawki przez skrypt i cron
Jeśli wolisz nie używać systemd, możesz skorzystać z poniższego skryptu:
#!/bin/bash
# ==============================================================================
# Skrypt kopii zapasowej systemu z użyciem Timeshift
# Tworzy snapshot oraz usuwa migawki starsze niż 7 dni
#
# Użycie: sudo ./timeshift-backup.sh
# Cron: 0 3 * * * root /usr/local/sbin/timeshift-backup.sh
# ==============================================================================
set -euo pipefail
# ------------------------------------------------------------------------------
# Konfiguracja
# ------------------------------------------------------------------------------
readonly LOGFILE="/var/log/timeshift-backup.log"
readonly TIMESHIFT="/usr/bin/timeshift"
readonly RETENTION_DAYS=7
readonly SNAPSHOT_TAG="D"
readonly SNAPSHOT_COMMENT="Codzienna kopia zapasowa (cron)"
# ------------------------------------------------------------------------------
# Funkcje pomocnicze
# ------------------------------------------------------------------------------
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}
log_section() {
echo
echo "========================================"
log "$*"
echo "========================================"
echo
}
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "BŁĄD: Skrypt musi być uruchomiony jako root (sudo)." >&2
exit 1
fi
}
check_timeshift() {
if [[ ! -x "$TIMESHIFT" ]]; then
log "BŁĄD: Timeshift nie znaleziony pod ścieżką: $TIMESHIFT" >&2
exit 1
fi
}
# ------------------------------------------------------------------------------
# Inicjalizacja
# ------------------------------------------------------------------------------
# Przekierowanie wyjścia do logfile (stdout + stderr)
exec >> "$LOGFILE" 2>&1
log_section "Rozpoczynanie procesu kopii zapasowej"
check_root
check_timeshift
# ------------------------------------------------------------------------------
# Usuwanie starych migawek
# ------------------------------------------------------------------------------
log_section "Sprawdzanie migawek starszych niż ${RETENTION_DAYS} dni"
# Oblicz próg czasowy raz — unikamy wielokrotnych wywołań date w pętli
CUTOFF_EPOCH=$(date -d "${RETENTION_DAYS} days ago" +%s)
# Parsuj listę migawek — wyciągnij nazwy w formacie RRRR-MM-DD_GG-MM-SS
mapfile -t snapshots < <(
"$TIMESHIFT" --list --scripted 2>/dev/null \
| grep -oP '\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}' \
|| true
)
if [[ ${#snapshots[@]} -eq 0 ]]; then
log "Brak migawek do sprawdzenia."
else
log "Znaleziono ${#snapshots[@]} migawek. Sprawdzam wiek..."
echo
deleted=0
errors=0
for snap in "${snapshots[@]}"; do
# Wyciągnij samą datę (pierwsze 10 znaków: RRRR-MM-DD)
snap_date="${snap:0:10}"
# Konwertuj datę migawki na epoch; pomiń jeśli format nieprawidłowy
if ! snap_epoch=$(date -d "$snap_date" +%s 2>/dev/null); then
log "OSTRZEŻENIE: Nie można sparsować daty migawki: $snap — pomijam."
continue
fi
if (( snap_epoch < CUTOFF_EPOCH )); then
log "Usuwanie starej migawki: $snap (data: $snap_date)"
if "$TIMESHIFT" --delete --snapshot "$snap" --scripted; then
log "✓ Usunięto: $snap"
(( deleted++ )) || true
else
log "✗ BŁĄD: Nie udało się usunąć migawki: $snap"
(( errors++ )) || true
fi
else
log " Zachowuję: $snap (data: $snap_date — w okresie retencji)"
fi
done
echo
log "Usuwanie zakończone. Usunięto: ${deleted}, błędy: ${errors}."
fi
# ------------------------------------------------------------------------------
# Tworzenie nowej migawki
# ------------------------------------------------------------------------------
log_section "Tworzenie nowego snapshotu Timeshift"
if "$TIMESHIFT" --create \
--tags "$SNAPSHOT_TAG" \
--scripted \
--comments "$SNAPSHOT_COMMENT"; then
log "✓ Snapshot Timeshift utworzony pomyślnie."
else
log "✗ BŁĄD: Nie udało się utworzyć snapshotu Timeshift!"
exit 1
fi
log_section "Kopia zapasowa zakończona pomyślnie"
Następnie dodaj skrypt do crona za pomocą tej komendy:
sudo crontab -e Następnie dodaj wpis do crona (dostosuj ścieżkę do swojego skryptu):
@reboot sleep 3000; /home/romek/Skrypty/System/backup-pakietow.shPowyższy wpis uruchamia skrypt automatycznie przy każdym starcie systemu, jednak z opóźnieniem wynoszącym 3000 sekund (około 50 minut). Dzięki temu system ma wystarczająco dużo czasu na pełne uruchomienie się przed wykonaniem kopii zapasowej.
Podstawowe polecenia CLI
| Polecenie | Opis |
|---|---|
sudo timeshift --create | Utwórz migawkę |
sudo timeshift --list | Wyświetl listę migawek |
sudo timeshift --restore | Przywróć (interaktywnie) |
sudo timeshift --delete --snapshot 'NAZWA' | Usuń migawkę |
sudo timeshift --check | Sprawdź, czy czas na nową migawkę |
sudo timeshift --help | Wyświetl wszystkie dostępne opcje |
Wskazówki i dobre praktyki
Rób migawki przed:
- Aktualizacją systemu (sudo apt upgrade, sudo dnf upgrade itp.)
- Instalacją nowego oprogramowania
- Modyfikacją plików konfiguracyjnych systemowych
- Zmianą konfiguracji GRUB lub jądra
Przechowywanie migawek:
- Używaj osobnego dysku jako lokalizacji migawek — jeśli dysk systemowy ulegnie awarii, migawki na nim również przepadną
- Regularnie sprawdzaj dostępne miejsce (df -h)
- Nie trzymaj wielu migawek
Czego Timeshift NIE robi:
- Nie tworzy kopii zapasowej plików z
/home(domyślnie) - Nie jest zamiennikiem pełnej kopii zapasowej to narzędzie do przywracania systemu, nie danych osobistych
- Nie chroni przed awarią sprzętową dysku
Rozwiązywanie problemów:
- Brak uprawnień: zawsze uruchamiaj z sudo
- Brak miejsca: usuń stare migawki lub zmień lokalizację przechowywania
- Błąd BTRFS: sprawdź, czy woluminy mają właściwy układ (@ dla
/i @home dla /home)
Timeshift to jedno z najprzydatniejszych narzędzi w arsenale każdego użytkownika Linuksa — proste w konfiguracji, a potrafiące uratować system w krytycznym momencie. Mam nadzieję, że ten poradnik pomógł Ci zrozumieć, jak działa i jak w pełni wykorzystać jego możliwości.
Jeśli chcesz dowiedzieć się więcej, zajrzyj do kategorii Poradniki oraz Linux — znajdziesz tam wiele innych przydatnych artykułów. Do zobaczenia w następnym poradniku.
Bez komentarza! Bądź pierwszy.