Диски та знімки 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, дешеві);
- повернення назад доступне просто із завантаження, навіть якщо система вже не стартує звичайно.
