Mint 19 и Timeshift: введение

Алексей Федорчук

Как было сказано в прошлой заметке, самое впечатляющее в 19-м релизе Mint’а — его «Машина времени» aka Timeshift, которая заслуживает подробного рассмотрения. Однако прежде чем заняться оным, необходимо остановиться на двух вопросах: что такое Timeshift вообще и его реализация в последнем релизе Mint’а — в особенности.

На первый вопрос официальный сайт проекта отвечает так:

TimeShift для Linux — это приложение, которое… защищает вашу систему, выполняя инкрементные снимки файловой системы через равные промежутки времени. Эти снимки могут быть восстановлены позднее, чтобы отменить все изменения в системе.

Снимки получаются посредством программы rsync и создания жестких ссылок. Общие файлы входят во все моментальные снимки, что экономит дисковое пространство. Каждый снимок представляет собой полную резервную копию системы, которую можно просмотреть с помощью файлового менеджера.

TimeShift… предназначен для защиты только системных файлов и настроек. Пользовательские файлы, такие как документы, изображения и музыка, исключаются. Это гарантирует, что они остаются неизменными при восстановлении системы до более ранней по времени.

Всё сказанное в этой цитате — правда, чистая правда и ничего, кроме правды. Однако это — ещё не вся правда. Во-первых, TimeShift — не только средство резервирования и восстановления системы. Его можно использовать и для своего рода ротации моментальных снимков, сохранённых ранее. Нечто подобное было реализовано когда-то в OpenSolaris в виде IPS (Image Packaging System — Система Упаковки Образов). Там это обеспечивалось врождённой функцией её файловой системы ZFS, которая поддерживает создание снапшотов сама по себе, без всяких дополнительных средств. Впрочем, создавать снапшоты можно и в ZFS on Linux. Однако, насколько я знаю, «системы искаропки», подобной IPS, на её базе (ещё?) никто не сконструировал.

Однако в Linux имеется и собственная файловая система, поддерживающая снапшоты — BTRFS. Которая тоже может быть задействована в TimeShift для создания моментальных снимков, о чём говорится в другом материале проекта — Timeshift BTRFS, имеющемся и в русском переводе. Читая оба, впрочем, надо помнить, что упоминаемого там пакета timeshift-btrfs больше нет, он объединён с пакетом timeshift.

Так что на самом деле в TimeShift можно выбирать между двумя механизмами создания моментальных снимков. Правда, если механизм RSYNC можно использовать для всех нативных файловых системах Linux (Ext2/3/4, XFS — а есть ли ещё какие, сохраняющие актуальность?), то механизм BTRFS — только для одноимённой. И, следовательно, выбо между этими механизмами следует сделать заранее, при установке системы.

Далее, в цитате говорится, что TimeShift предназначен для создания снимков только системы, но не пользовательских данных. И по умолчанию это действительно так. Однако, как будет показано в следующем очерке, это можно изменить с помощью соответствующих настроек, подключая или отключая как отдельные файлы и подкаталоги из домашнего каталога пользователя, так и весь целиком весь /home. Разумеется, если последний лежит на том же разделе, что и корень файловой иерархии: ведь инкрементность моментальных снимков обеспечивается жёсткими ссылками, которые «действительны» только в пределах раздела.

Ответ на второй вопрос следует предварить замечанием, что Timeshift — преложение, не специфичное для дистрибутива Mint. Некогда (вот тут мне подсказывают — ещё в 12-м году) оно было разработано для Ubuntu в рамках проекта TeeJeeTech. И поддерживается рамках PPA-репозитория, доступного всем «законным» клонам Ubuntu. Для други «чистых» клонов Debian’а на странице GitHub’а можно найти deb-пакеты. Там же есть и *.run-файлы, предназначенные для запуска в произвольной Linux-системе.

Хотя Linux Mint и является клоном Ubuntu, в нём используются пакеты TimeShift не из PPA-репозитория, а из собственного, штатного. Разумеется, никаких различий между сборками из этих источников нет (да и быть не может, ввиду идентичности исходников). Это лишь показатель того, что разработчики Mint’а рассматривают TimeShift как приложение, «родное» для своего дистрибутива. Которое, кстати, имеется и в репозитории дистрибутива LMDE 3, выход которого под именем Cindy обещан и ожидается с конца первого квартала (надеюсь, что это не будет тем случаем, когда ждут три года).

И действительно, TimeShift плотно интегрирован в структуру релиза Linux Mint 19 «Tara» (хотя впервые появился в предыдущей версии, 18.3). В частности, на нём целиком базируется нынешний Менеджер обновлений, что сделало автоматический апдейт системы (в том числе её ядра и прочих критически важных компонентов) доступным не только для «продвинутых» применителей, но и для простых советских людей.

Именно поэтому настройка TimeShift стоит первым пунктом в списке Первых шагов приветственного экрана, возникающего при первом запуске системы. Если же этим шагом пренебречь — при каждой попытке обновить систему будет появляться предупреждение о необходимости его сделать. Что на самом деле легко — TimeShift в любой момент можно вызвать из одноимённого пункта секции Администрирование главного меню Cinnamon (или аналогов в рабочих других средах). Однако мы последуем совету резонных людей из проекта Mint, и займёмся настройкой TimeShift сразу.

Mint 19 и Timeshift: введение: 2 комментария

  1. Алексей, попробуйте создать образ Linux Mint 19 с установленным TimeShift при помощи, например, Systemback. Предполагаю, что это будет непросто, а может и невозможно.

  2. Спасибо автору за информативную статью!

    Есть уникальные онлайн курсы по обучению администрирования linux и инструментов системы автоматизированной разработки DevOps.

    Ссылка на 1-ый курс изучения linux https://linuxtrainingcenter.com/lpic-101-final-here/, который по темам схож с LPIC-1.

    Обучение Linux проходит на базе Linux Ubuntu и CentOS

    Преимущества данных курсов в том, что обучение проходит на русском языке и с выполнением практических заданий.

    После прохождения обучения, Вы сможете работать в it по специальностям:
    – Junior/Middle системный администратор Linux;
    – Junior/Middle QA тестировщик, выполняющий тестирование ПО, связанных с Linux;
    – Junior/Middle Support engineers (суппорт инженеры или техническая поддержка);
    – Junior Security Specialist;
    – Junior/Middle Devops инженер.
    – Cloud Engineer

    Будет здорово, если кому-то станут полезны данные курсы! :)

Добавить комментарий