Установка Ubuntu на BTRFS + Timeshift + Autosnap apt и GRUB-BTRFS

2022-01-24 6242 комментарии
Рассмотрим инструкцию по установке Ubuntu с файловой системой BTRFS, а также настройку и установку инструментов Timeshift + Autosnap apt и GRUB-BTRFS

Содержание

Что такое файловая система BTRFS

Файловая система BTRFS, представляет собой файловую систему, основанную на механизме копирования при записи (COW).

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

Вместо этого новые данные записываются в другом месте. После завершения операции записи файловая система просто указывает на более новые блоки данных (при этом старая информация со временем перерабатывается).

COW также предотвращает такие проблемы, как частичная запись, которая может произойти из-за сбоя питания или проблемы с ядром и потенциально повредить всю вашу файловую систему. При наличии COW запись либо произошла, либо не произошла, промежуточного значения нет.

Основные функции файловой системы BTRFS:

  • Подтома (часть файловой системы со своей независимой иерархией файлов/каталогов)
  • Контрольные суммы данных и метаданных (crc32c, xxhash, sha256, blake2b)
  • Прозрачное сжатие (ZLIB, LZO, ZSTD)
  • Встроенная поддержка RAID
  • Высокая скорость
  • Изменение размера и дефрагментация примонтированного раздела или диска
  • Моментальные снимки (snapshots) с возможностью записи, моментальные снимки только для чтения. Снимки - копия всего подтома BTRFS, сделанная в определенный момент времени. Снимки отображаются как обычные каталоги, и вы можете получить доступ к снимку, как и к любому другому каталогу. Моментальные снимки с возможностью записи позволяют откатить файловую систему до предыдущего состояния. Вы можете сделать моментальный снимок, выполнить обновление системы и перезагрузиться в моментальный снимок, если обновление вызовет проблемы. Все моментальные снимки по умолчанию доступны для записи, но у вас также есть возможность создавать моментальные снимки только для чтения.

Именно функцию моментальных снимков мы детально рассмотрим в данной статье. Создание и восстановление снимков с помощью графической утилиты Timeshift. В качестве программы для создания снимков также популярен и другой инструмент - snapper и его графический интерфейс Snapper Gui, однако мы воспользуемся программой Timeshift.

Кроме того, мы установим инструмент timeshift-autosnap-apt, который является скриптом для автоматического создания снимков системы перед использованием утилиты apt для обновления, установки или удаления пакетов.

А также установим GRUB-BTRFS в котором будут отображаться наши снимки системы. С помощью GRUB-BTRFS мы сможем выполнить загрузку в выбранный снимок состояния даже в том случае, если система не загружается.

Статья написана на основе видеообзора Ubuntu: BTRFS & Snapshots:

Установка Ubuntu на BTRFS с поддержкой снимков Timeshift

Программа Timeshift не поддерживает создание снимков в файловой системе BTRFS с расположением томов, которые предлагаются по умолчанию. По этой причине мы займемся настройкой файловой системы до начала установки системы. Кроме того, такая настройка проще чем настройка файловой системы из уже установленной системы.

Пусть вас не пугает настройка, на самом деле она не сложная и занимает мало времени.

  • При загрузки установочного образа Ubuntu выберите вариант Попробовать Ubuntu.

  • Откройте приложение Настройки – Клавиатура – нажмите на плюс и добавьте английскую (американскую) клавиатуру. Смените раскладку клавиатуры на английскую.
  • Откройте терминал и выполните следующую команду:
sudo gedit  /usr/lib/partman/mount.d/70btrfs
  • Строку под номером 24, которая содержит параметр options отредактируйте следующим образом (для дисков SSD):
options="${options:+$options,}[email protected],ssd,noatime,space_cache,compress=zstd,discard=async"
  • Для дисков HDD:
options="${options:+$options,}[email protected],noatime,space_cache,compress=zstd,autodefrag"
  • В строке под номером 31, которая также содержит параметр options, отредактируйте значение, добавив те же параметры, которые указали чуть выше:
  • Для дисков SSD:
options="${options:+$options,}[email protected],ssd,noatime,space_cache,compress=zstd,discard=async"
  • Для дисков HDD:
options="${options:+$options,}[email protected],noatime,space_cache,compress=zstd,autodefrag"

Сохраните изменения и закройте редактор.

  • Отредактируем файл btrfs. Откройте терминал и выполните следующую команду:
sudo gedit  /usr/lib/partman/fstab.d/btrfs
  • В строках 30,36,40 значение для pass= укажите 0 (pass=0)
  • В строке 55 укажите значение в 0 0:
echo "$home_path" "$home_mp" btrfs "$home_options" 0 0
  • Для строк 31,32 и 37 добавляем те же параметры монтирования, которые указывали выше в зависимости от используемого диска, SSD или HDD:
  • Строка 31, диск SSD:
home_options="${options:+$options,}[email protected],ssd,noatime,space_cache,compress=zstd,discard=async"
  • Строка 32, диск SSD:
options="${options:+$options,}[email protected],ssd,noatime,space_cache,compress=zstd,discard=async"
  • Строка 37, диск SSD:
options="${options:+$options,}[email protected],ssd,noatime,space_cache,compress=zstd,discard=async"
  • Для дисков HDD заменяем в тех же строках на соответствующие параметры. Вместо ssd,noatime,space_cache,compress=zstd,discard=async, добавляем
noatime,space_cache,compress=zstd,autodefrag

  • Сохраняем изменения и запускаем установщик ubiquity.
  • На этапе установки – Тип установки, выбираем Другой вариант, чтобы была возможность создания разделов и указания точек монтирования.

  • В отличие от файловой системы ext4 мы укажем файловую систему btrfs и не будем создавать отдельный раздел home (только корень /). В остальном эта стандартная разбивка разделов. Если у вас UEFI, то вам нужно создать Системный раздел EFI. При необходимости создаем раздел swap, затем создаем раздел btrfs и указываем точкой монтирования корень /. Раздел home не создаем.

Продолжаем установку.

После загрузки установленной системы проверяем наличие подтомов:

sudo btrfs subvolume list /

Также можете посмотреть опции монтирования в fstab:

cat /etc/fstab

Установка Timeshift, Timeshift + Autosnap apt и GRUB-BTRFS

Для создания моментальных снимков BTRFS и восстановления из созданных копий установим утилиты Timeshift, Timeshift +Autosnap apt и GRUB-BTRFS.

Установка Timeshift и необходимых инструментов для сборки остальных утилит:

sudo apt install timeshift git make -y

Запускаем Timeshift. Тип снимков – BTRFS, раздел BTRFS. Подраздел @home добавляю для резервного копирования.

Установка Timeshift-Autosnap apt

Инструмент timeshift-autosnap-apt доступен в репозитории GitHub. Данный инструмент является скриптом для автоматического создания моментальных снимков Timeshift, который запускается перед использованием следующих команд apt: update|install|remove с использованием хука DPkg::Pre-Invoke в APT. Для установки выполняем следующие команды:

git clone https://github.com/wmutschl/timeshift-autosnap-apt.git

cd timeshift-autosnap-apt/

sudo make install

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

Расположение конфигурационного файла: /etc/timeshift-autosnap-apt.conf

Установка GRUB-BTRFS

Для установки GRUB-BTFRS выполните следующие команды:

git clone https://github.com/Antynea/grub-btrfs.git

cd grub-btrfs/

sudo make install

Раскомментируем строку GRUB_BTRFS_SUBMENUNAME (уберем значок #) и изменим название на используемый дистрибутив:

sudo gedit /etc/default/grub-btrfs/config

Строка под номером 9 будет выглядеть следующим образом:

GRUB_BTRFS_SUBMENUNAME="Ubuntu snapshots"

Создать моментальный снимок можно как с помощью программы Timeshift, так и с помощью команды

sudo timeshift-autosnap-apt

Данная команда также обновит Grub для обнаружения новых снимков.

Если у вас UEFI, то меню Grub будет отображаться. Однако, если у вас MBR, то вам нужно включить отображения меню Grub. Выполняем команду:

sudo gedit  /etc/default/grub

Редактируем следующие строки:

GRUB_TIMEOUT_STYLE=menu

GRUB_TIMEOUT=5

Строка GRUB_TIMEOUT=5 отвечает за время отображения меню (в секундах).

Обновляем параметры Grub:

sudo update-grub

При выборе снимка из меню Grub, вам также будет предложено выбрать ядро для загрузки. Выбираете самую новую версию ядра (с большим номером).

При использовании программы Timeshift перед восстановлением создается снимок.

© . Анатолий Гусляков

Комментарии и отзывы

Добавляя комментарий, ознакомьтесь с Правилами сообщества

Нашли ошибку?