Ръководел съм се от: https://www.youtube.com/watch?v=VfziwN5pigw Клипа е на руски, затова ще се постарая да го публикувам на разбираем език. Ще ползваме както команден ред за създаване и възстановяване на снимки на системата така и графичен интерфейс. До тук имаме: - Инсталиран Archlinux с btrfs файлова система. - Инсталирана графична среда KDE. Задачата ни е да създадем временна снимка на системата и да я възстановим до момента на временната снимка. Ще ползваме два варианта. През команден ред и втори вариант, графична среда. Ще ползваме приложението Timeshift. За начало трябва да го инсталираме.
sudo pacman -S timeshift
Започваме с първия вариант. Ще работим през конзола. Да проверим какво имаме до тук:
sudo timeshift --list First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/1157/backup' Selected default snapshot device: /dev/nvme0n1p3 Device : /dev/nvme0n1p3 UUID : f9c7549c-214d-4667-a9d2-d76677627558 Path : /run/timeshift/1157/backup Mode : BTRFS Status : No snapshots on this device First snapshot requires: 0 B No snapshots found
Нямаме създадена снимка до момента. Снимката ще се прави във формат BTRFS. Пътя до снимката ще е /run/timeshift/1157/backup. Има още важни неща, които можете да ги видите от горния екран. Конфигурацията на Timeshift можете да я видите на:
sudo nano /etc/timeshift/timeshift.json { "backup_device_uuid" : "", "parent_device_uuid" : "", "do_first_run" : "true", "btrfs_mode" : "false", "include_btrfs_home" : "false", "stop_cron_emails" : "true", "schedule_monthly" : "false", "schedule_weekly" : "false", "schedule_daily" : "false", "schedule_hourly" : "false", "schedule_boot" : "false", "count_monthly" : "2", "count_weekly" : "3", "count_daily" : "5", "count_hourly" : "6", "count_boot" : "5", "snapshot_size" : "0", "snapshot_count" : "0", "exclude" : [ ], "exclude-apps" : [ ] }
Няколко забележки! Понякога временна снимка през btrfs става по доста сложен начин. Тогава ползвайте rsync. Когато демонстрираме графичната част ще засегнем този момент. Можете да правите автоматични снимки, като периодичността се дефинира в горния файл. Има и още опции но в графичната част се виждат по-нагледно. За сега само ще знаем, че Timeshift се конфигурира през /etc/timeshift/timeshift.json.
sudo timeshift --create --comments "after update" --tags D First run mode (config file not found) Selected default snapshot type: BTRFS Using system disk as snapshot device for creating snapshots in BTRFS mode Mounted '/dev/nvme0n1p3' at '/run/timeshift/1245/backup' Creating new backup...(BTRFS) Saving to device: /dev/nvme0n1p3, mounted at path: /run/timeshift/1245/backup Created directory: /run/timeshift/1245/backup/timeshift-btrfs/snapshots/2025-06-09_12-59-40 Created subvolume snapshot: /run/timeshift/1245/backup/timeshift-btrfs/snapshots/2025-06-09_12-59-40/@ Created control file: /run/timeshift/1245/backup/timeshift-btrfs/snapshots/2025-06-09_12-59-40/info.json BTRFS Snapshot saved successfully (0s) Tagged snapshot '2025-06-09_12-59-40': ondemand ------------------------------------------------------------------------------ btrfs: Quotas are not enabled
Да проверим:
sudo timeshift --list First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/1306/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/nvme0n1p3 Device : /dev/nvme0n1p3 UUID : f9c7549c-214d-4667-a9d2-d76677627558 Path : /run/timeshift/1306/backup Mode : BTRFS Status : OK 1 snapshots, 49.8 GB free Num Name Tags Description ------------------------------------------------------------------------------ 0 > 2025-06-09_12-59-40 D after update
Първата снимка е създадена. Номера и е 0, а името after update. По принцип снимки се правят преди да започнете нещо което е рисково. Примерно обновяване на системата, инсталиране на някоя рискова програма и нещо от този род.
sudo timeshift --delete --snapshot '2025-06-09_12-59-40' First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/1422/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/nvme0n1p3 ------------------------------------------------------------------------------ Removing snapshot: 2025-06-09_12-59-40 Deleting subvolume: @ (Id:261) Deleted subvolume: @ (Id:261) Deleted directory: /run/timeshift/1422/backup/timeshift-btrfs/snapshots/2025-06-09_12-59-40 Removed snapshot: 2025-06-09_12-59-40 ------------------------------------------------------------------------------
Отново да проверим.
sudo timeshift --list First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/1470/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/nvme0n1p3 Device : /dev/nvme0n1p3 UUID : f9c7549c-214d-4667-a9d2-d76677627558 Path : /run/timeshift/1470/backup Mode : BTRFS Status : No snapshots on this device First snapshot requires: 0 B No snapshots found
За това упражнение ни е необходима временна снимка. Идеята е да върнем системата до момента на създаване на снимката. Създаваме наново временна снимка.
sudo timeshift --create --comments "temporary photo" --tags D sudo timeshift --list First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/1895/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/nvme0n1p3 Device : /dev/nvme0n1p3 UUID : f9c7549c-214d-4667-a9d2-d76677627558 Path : /run/timeshift/1895/backup Mode : BTRFS Status : OK 1 snapshots, 49.8 GB free Num Name Tags Description ------------------------------------------------------------------------------ 0 > 2025-06-09_14-58-27 D temporary photo
Сега да инсталираме нещо което го няма до сега. Примерно screenfetch.
sudo pacman -S screenfetch screenfetch -` .o+` cccp@My-PC `ooo/ OS: Arch Linux `+oooo: Kernel: x86_64 Linux 6.14.10-arch1-1 `+oooooo: Uptime: 2h 17m -+oooooo+: Packages: 251 `/:-:++oooo+: Shell: bash 5.2.37 `/++++/+++++++: Disk: 5.4G / 146G (4%) `/++++++++++++++: CPU: AMD Ryzen 7 3700X 8-Core @ 4x 3.593GHz `/+++ooooooooooooo/` GPU: VMware SVGA II Adapter ./ooosssso++osssssso+` RAM: 545MiB / 3871MiB .oossssso-````/ossssss+` -osssssso. :ssssssso. :osssssss/ osssso+++. /ossssssss/ +ssssooo/- `/ossssso+/:- -:/+osssso+- `+sso+:-` `.-/+oso: `++:. `-/+/ .` `/
Сега да се върнем до състояние преди да сме инсталирали screenfetch. Това е времето когато създадохме снимката.
sudo timeshift --restore --snapshot '2025-06-09_14-58-27' First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/nvme0n1p3' at '/run/timeshift/2189/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/nvme0n1p3 ****************************************************************************** To restore with default options, press the ENTER key for all prompts! ****************************************************************************** Press ENTER to continue... Enter ====================================================================== WARNING ====================================================================== Data will be modified on following devices: Device Mount ----------------- ----- /dev/nvme0n1p3(@) / Please save your work and close all applications. System will reboot after files are restored. ====================================================================== DISCLAIMER ====================================================================== This software comes without absolutely NO warranty and the author takes no responsibility for any damage arising from the use of this program. If these terms are not acceptable to you, please do not proceed beyond this point! Continue with restore? (y/n): y Mounted '/dev/nvme0n1p3' (subvol=@) at '/run/timeshift/2189/restore/' Mounted '/dev/nvme0n1p3' at '/run/timeshift/2189/restore/.snapshots' Mounted '/dev/nvme0n1p1' at '/run/timeshift/2189/restore/boot' Mounted '/dev/nvme0n1p3' at '/run/timeshift/2189/restore/home' ****************************************************************************** Backup Device: /dev/nvme0n1p3 ****************************************************************************** ****************************************************************************** Snapshot: 2025-06-09_14-58-27 ~ temporary photo ****************************************************************************** Creating pre-restore snapshot from system subvolumes... Created directory: /run/timeshift/2189/backup/timeshift-btrfs/snapshots/2025-06-09_15-08-15 Moved system subvolume to snapshot directory: @ Created control file: /run/timeshift/2189/backup/timeshift-btrfs/snapshots/2025-06-09_15-08-15/info.json Created pre-restore snapshot: 2025-06-09_15-08-15 ------------------------------------------------------------------------------ Restored system subvolume: @ Restore completed Snapshot will become active after system is rebooted. ------------------------------------------------------------------------------ E: Failed to remove directory Ret=256
Забележете! Системата трябва да се рестартира за да влезе в сила върнатата снимка. Да проверим:
sudo reboot sudo screenfetch sudo: screenfetch: command not found
Върнахме се до състояние преди инсталацията на screenfetch. Сега ще покажа и още един вариант на връщане на снимка.
sudo timeshift --restore --snapshot 0 --target /dev/nvme0n1p5
В случая /dev/nvme0n1p5 не съществува. Това е примерна команда как да върнем снимката на друг дял. Има и още една разлика. В първия вариант върнахме снимката като коректива беше името на снимката (2025-06-09_14-58-27). Във втория вариант върнахме снимката по номера на създаване, в случая номера е 0. Ако пък не сте сигурни нито в името нито в номера на снимката можете да ползвате командата:
sudo timeshift --restore
Ще последват редица от уточняващи въпроси преди да се върне снимката. Не забравяме, за да влязат промените от връщане на снимката, системата трябва да се рестартира.
Демонстрацията ще се прави на друга виртуална машина, с инсталирана графична среда KDE. Графичната среда няма значение каква е. Отново трябва да има инсталиран TimeShift.
sudo pacman -S timeshift
Стартираме програмата в графичен режим.
Можете да потърсите програмата чрез комбинацията Alt+F2. След това изписвате името или част от името.
Вкарваме паролата на потребителя с който работим. В моя случай потребителя е cccp и ползвам неговата парола.
Предлага варианти на правене на моментните снимки. В случая ползваме файлова система BTRFS и е нормално да ползваме нейните преимущества. Ако ползвахме примерно ext4 то бихме използвали RSYNC. Последната може да се ползва и при BTRFS. Всеки сам решава. Винаги можете да преобразувате на по-късен етап от BTRFS на RSYNC.
Указваме къде ще се помещават снимките. Това е лошото на BTRFS, че където е системата там се правят и снимките. Но затова пък са много малки по размер и се правят моментално.
Дефинираме автоматично да се правят снимки. В случая ползвам 1 снимка всеки ден. 2 снимки за седмицата. 1 снимка всеки месец. Така на практика ще имаме винаги актуално копие за месеца. Даже и нещо да се счупи можете да се върнете в някой вариант от месеца.
Казваме да се прави снимка и на домашната папка. Все пак когато работим част от информацията се помещава в домашната папка.
Завършваме с конфигурацията на TimeShift.
Правим първата моментна снимка. Натискаме бутона Create.
За много кратко време се прави снимката и се изобразява на прозореца. Съответно от бутоните Delete, трием моментната снимка. От бутона Restore, връщаме състоянието на системата до момента на снимката. Интересен е бутона Settings. От там може да се преконфигурира TimeShift.
Този път метода на правене на снимки ще е чрез RSYNC.
В раздела Location избираме диска на който ще се прави снимката. В случая имаме само един диск, затова само той се показва. Ако имахме повече, то снимката можеше да се направи на друг диск. В това отношение е по-добър този метод от BTRFS.
Раздела Schedule е същия както при BTRFS. Отново снимките са 1 всеки ден, 2 седмично и 1 месечно.
Раздела Users се различава от BTRFS. Можем да кажем снимка да се направи на потребител който определим. Съответно какво да включва снимката. В случая съм избрал и двата потребителя и снимката да включва всичко в себе си.
Много интересен раздел. В случая казваме да прави снимка на домашните папки на root и cccp. + койот е най-отпред означава да включим всичко вътре. Можем и да филтрираме определена папка или файл чрез обозначаването му и маркираме -.
В този раздел се виждат снимките които са направени преди това.
Да направим нова снимка, чрез метода RSYNC.
Първо се прави проверка дали може да се направи снимка.
Започва създаването на временна снимка. Процеса е много бавен. Проверява за налично свободно място, дали файловете и папките са достъпни и т.н. След като проверката мине започва създаването на снимката.
Това е малко по-особен случай. Представете си, че искате да направите пълно копие на системата, а SWAP-а е във вид на файл. Може и да е в субволюм. Решите да ползвате BTRFS. Ще възникне грешка именно заради SWAP-a. Няколко решения. 1. Ползвайте отделен дял за SWAP-a. 2. Деактивирайте SWAP-a и тогава правете снимка на системата.