Главная
» LINUX
»
Как использовать снимки состояния (Snapshots) в openSUSE с помощью Snapper
Как использовать снимки состояния (Snapshots) в openSUSE с помощью Snapper
Snapper управляет снимками файловой системы в openSUSE. В поддерживаемой конфигурации с корневым каталогом Btrfs он может сравнивать изменения, восстанавливать выбранные системные файлы или откатываться к заведомо исправному снимку. Снимки остаются на той же файловой системе, поэтому они могут помочь восстановиться после неудачного обновления, но не являются резервными копиями, созданными вне устройства, и могут не включать домашний каталог или отдельные подтома.
В примерах используется rootконфигурация по умолчанию, которая охватывает только корневую файловую систему.
Проверьте, настроен ли Snapper.
Откройте терминал и проверьте, смонтирована ли файловая система по адресу /, затем выведите список конфигураций Snapper:
findmnt -no FSTYPE /
sudo snapper list-configs
Пример команды: проверить, доступна ли корневая конфигурация Snapper.
Если первая команда выдает сообщение, btrfsа вторая — результат root, /вы можете продолжить с приведенными ниже примерами. Если корневая конфигурация отсутствует, не создавайте ее вслепую. В документации openSUSE для корневой файловой системы Btrfs с поддерживаемой структурой описывается ее создание с помощью команды sudo snapper -c root create-config /. Затем проверьте конфигурацию с помощью команды sudo snapper -c root get-config. Это не относится к корневой файловой системе Ext4, а возможность отката зависит от структуры Btrfs и загрузчика системы.
Оставляйте место для снимков в той же файловой системе. Btrfs совместно использует неизмененные блоки, но измененные данные сохраняют старые блоки в рабочем состоянии; снимки могут разрастаться и занимать свободное место.
Создайте снимок состояния вручную перед внесением изменений.
Прежде чем менять драйвер, редактировать конфигурацию системы или тестировать рискованные изменения на системном уровне, создайте именованный единый снимок:
Пример команды: присвоить созданному вручную снимку описание, которое вы сможете узнать позже.
Один снимок отмечает одну точку во времени. Используйте описание, объясняющее причину его создания, например, «До изменения настроек брандмауэра», вместо общей метки. Чтобы увидеть присвоенный ему номер и другие снимки, выполните команду:
sudo snapper -c root list
Пример команды: вывести список снимков и указать номер и описание того, который вам может понадобиться.
В стандартных конфигурациях Snapper создает парные preснимки postтранзакций YaST и Zypper. Чтобы заблокировать операцию, выполненную вручную, запустите эту команду перед изменением и запишите выведенный идентификатор:
Для сравнения снимка 42 с текущей корневой файловой системой используйте:
sudo snapper -c root status 42..0
Пример команды: вывести список путей, которые отличаются между снимком и текущей системой.
Здесь 42приведен пример номера снимка; замените его номером из вашего собственного списка. В сравнениях Snapper 0обозначает текущее состояние файловой системы. Для пары "до/после" сравните два числа, показанные параметром list -t pre-post. Чтобы проверить разницу в тексте для одного файла, выполните:
sudo snapper -c root diff 42..0 /etc/example.conf
Пример команды: проверить отдельный файл перед его восстановлением.
Если вы хотите восстановить этот файл из снимка 42, используйте undochangeтот же метод сравнения:
Пример команды: восстановить только выбранный файл из предыдущего снимка.
Сначала проверьте состояние и разницу. В корневых снимках могут отсутствовать отдельные или исключенные подтома; для полного отката используйте процедуру создания загрузочного снимка. Snapper не координирует действия с приложениями, записывающими данные, поэтому защищайте базы данных с помощью собственной процедуры резервного копирования.
Откатите систему из загрузочного снимка.
Используйте полный откат системы, если вам нужно отменить более масштабное обновление или изменение системы. Для этого необходимо наличие загрузочных снимков для данной rootконфигурации; не каждая конфигурация Snapper или схема дисков поддерживает это. Сохраните изменения, затем перезагрузите систему:
sudo reboot
Пример команды: перезагрузите систему, затем используйте запись снимка GRUB, если она предусмотрена в вашей установке.
В меню GRUB выберите пункт «Запустить загрузчик из снимка, доступного только для чтения» .
Выберите снимок состояния, сделанный до возникновения проблемы, и загрузите его.
Убедитесь, что система работает должным образом. Представление в виде снимка доступно только для чтения, поэтому это предварительный просмотр восстановления.
Если вас всё устраивает, запустите команду sudo snapper rollback, затем перезагрузите компьютер и выберите стандартный способ загрузки по умолчанию.
Пример команды: зафиксировать тестируемый снимок как новое состояние системы с возможностью чтения и записи.
Если вы решите отказаться от отката, перезагрузите систему, чтобы вернуться к текущему состоянию. На поддерживаемых конфигурациях snapper rollbackсохраняется состояние до отката и создается снимок корневого каталога с возможностью чтения и записи из выбранного состояния; отдельные подтома не откатываются.
Удалите снимки, которые вам больше не нужны.
Сначала перечислите снимки состояния, проверьте их количество и описание, затем удалите только нужный снимок:
sudo snapper -c root delete 42
Замените 42на номер снимка, который вы собираетесь удалить. Удаление снимка удаляет точку восстановления; оно не удаляет работающую систему. Snapper также может применять настроенные политики очистки, поэтому отметьте столбец «Очистка» в списке и сохраняйте важные снимки только тогда, когда они вам необходимы.