Система

Диски та знімки Btrfs

Сітка безпеки SkillFishOS: автоматичні знімки й повернення назад просто із завантаження.

Одна з головних думок SkillFishOS — щоб можна було копирсатися без страху. Це уможливлює файлова система Btrfs з автоматичними знімками: кожну важливу зміну зафіксовано, і якщо щось ламається, ви повертаєтеся одним клацанням.

Окремі підтоми

На диску один розділ Btrfs, поділений на окремі підтоми:

  • @ — операційна система;
  • @home — дані користувача;
  • @cache і @log — кеші та журнали, які тримають поза знімками, щоб повернення назад не притягло за собою вчорашні журнали;
  • @games — бібліотека ігор, яка інакше роздула б кожен знімок;
  • @swap — файл підкачки.

Тримати їх окремо конче потрібно: повернення системи назад не чіпає особистих файлів. Ви можете повернутися до «вчорашньої» системи, зберігши сьогоднішні документи, збереження ігор і налаштування.

Автоматичні знімки зі Snapper

SkillFishOS користується Snapper з конфігурацією root і зачепами до і після APT: щоразу, коли ви встановлюєте чи оновлюєте пакунки, знімок створюється сам перед і після. Тож якщо оновлення наробить клопоту, знімок «перед» уже на місці.

Головне з налаштувань:

  • обмеження кількості збережених знімків, щоб диск не переповнився;
  • знімки, збережені на важливих віхах системи;
  • керування з вікна в розділі Знімки Control Center, написаному нами самими.

Скільки їх лишається

П’ять типово: три звичайні (пара до і після кожної дії apt) і два «важливі» — з оновлень, що чіпають ядро або systemd, тобто саме тих, до яких найчастіше хочеться повернутися. Над ними стоїть точка «SkillFishOS — чисте встановлення», яка не застаріває ніколи: шлях назад до системи в тому вигляді, в якому вона вийшла з коробки.

Погодинну шкалу вимкнено. На домашній консолі вона лише з’їдає диск, а в ті знімки все одно ніхто не заглядає. Знімки, створені вручну, не рахуються до тих п’яти й ніколи не вилучаються самочинно: якщо ви зробили його свідомо, він лишається, доки самі його не приберете.

Повернення назад із меню завантаження

Завдяки grub-btrfs знімки з’являються просто в меню GRUB, під пунктом «SkillFishOS snapshots». Перезавантажте, виберіть знімок, зроблений до халепи, — і ви вже в ньому.

Дві речі варто знати, перш ніж на це покладатися:

  • Те, що ви завантажуєте, доступне лише для читання. Це рятувальне середовище: роздивіться, перевірте, чи старіший стан справді був добрий, скопіюйте потрібні файли. Кілька служб повідомлять про помилку під час запуску — вони просто не можуть писати. Так і має бути, це не вада.
  • Меню завантаження оновлюється після кожної дії apt, тож знімок, зроблений перед оновленням, є в списку саме тоді, коли він потрібен.

Як зробити повернення остаточним

Завантаження знімка саме собою нічого не змінює, а snapper rollback тут не зарадить: він міняє типовий підтом, тоді як наш запис у GRUB закріплює subvol=@ і перемагає. Робить справу ось ця команда:

sudo skillfish-rollback --list    # які знімки доступні
sudo skillfish-rollback 12        # знімок 12 стає системою від наступного запуску

Вона відсуває чинну систему вбік — не вилучає її, а робить із неї @-rotto-<дата> — і будує з обраного знімка новий, придатний до запису @, переносячи разом із ним усю історію знімків. Якщо й старіший стан виявиться не тим, sudo skillfish-rollback --undo повертає все назад, а --clean звільняє місце, коли ви вже впевнені.

Це працює і зі звичайної системи, і зсередини знімка, завантаженого лише для читання, — тобто в тому випадку, який важить найбільше: коли машина вже не запускається.

Домашню теку не чіпають ніколи. @home — окремий підтом: система мандрує назад у часі, а ваші файли лишаються теперішніми. Це добре знати — і пам’ятати, перш ніж розраховувати, що повернення назад віддасть вилучений документ. Не віддасть.

Це та сітка безпеки, завдяки якій навіть наймолодші можуть досліджувати систему без страху зламати її безповоротно.

Чому Btrfs, а не Timeshift

SkillFishOS обрав Btrfs + Snapper + grub-btrfs замість рішень на кшталт Timeshift, бо:

  • поєднання з APT автоматичне (знімок за кожної дії з пакунками);
  • знімки рідні для файлової системи (миттєві, copy-on-write, дешеві);
  • повернення назад доступне просто із завантаження, навіть якщо система вже не стартує звичайно.

Джерела