Содержание
- Что такое файловая система BTRFS
- Установка Ubuntu на BTRFS с поддержкой снимков Timeshift
- Установка Timeshift, Timeshift + Autosnap apt и GRUB-BTRFS
- Установка Timeshift-Autosnap apt
- Установка GRUB-BTRFS
- Доступен пользовательский ISO-образ Ubuntu 21.10 с настроенным BTRFS и предустановленным Timeshift
Что такое файловая система 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,}subvol=@,ssd,noatime,space_cache,compress=zstd,discard=async"
- Для дисков HDD:
options="${options:+$options,}subvol=@,noatime,space_cache,compress=zstd,autodefrag"
- В строке под номером 31, которая также содержит параметр options, отредактируйте значение, добавив те же параметры, которые указали чуть выше:
- Для дисков SSD:
options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,compress=zstd,discard=async"
- Для дисков HDD:
options="${options:+$options,}subvol=@home,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,}subvol=@home,ssd,noatime,space_cache,compress=zstd,discard=async"
- Строка 32, диск SSD:
options="${options:+$options,}subvol=@,ssd,noatime,space_cache,compress=zstd,discard=async"
- Строка 37, диск SSD:
options="${options:+$options,}subvol=@home,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 перед восстановлением создается снимок.
Linux: обзоры и обновления
• Анонсирован Wine 10.0-rc1: улучшения для поддержки DirectX 12 и новый драйвер Bluetooth
• Valve работает над новой Steam Machine?
• Обновление NVIDIA Graphics Driver 565.77 Beta для Linux
• Mozilla ускоряет загрузку и установку Firefox в Linux
• Поддержка графики Xe2 для Intel Lunar Lake и Battlemage включена в Linux 6.12 по умолчанию
• Как настроить Comss.one DNS в Linux