Незмінюваність (abroot
)
abroot
- це утиліта, яка забезпечує повну незмінюваність та атомарність, виконуючи транзакції між 2 кореневими розділами (A⟺B), вона також дозволяє виконувати транзакції на вимогу за допомогою транзакційної оболонки.
Як це працює
Файлова система Linux - це ієрархічна файлова структура, яка містить кореневий та інші каталоги. Корінь - це основний ієрархічний каталог, який містить усі інші розділи. У незмінних файлових системах кореневий розділ доступний лише для читання, що перешкоджає встановленню необхідних пакунків, таких як драйвери на хості.
Команда abroot
дозволяє встановлювати модулі ядра, драйвери та інші необхідні пакунки, не порушуючи незмінність файлової системи.
Коли команда виконується у abroot
, запускається транзакція у транзакційній оболонці у другому кореневому розділі. Якщо транзакція завершується успішно, зміни застосовуються за допомогою оверлея і синхронізуються з поточним коренем при перезавантаженні. Якщо транзакція завершиться невдало, жодних змін не буде застосовано (через властивість, відому як атомарність). abroot
також дозволяє виконувати транзакції на вимогу за допомогою команди abroot shell
.
У встановленій Vanilla OS створюються кореневий та завантажувальний розділи для обох станів (20 ГБ на кореневий розділ), оскільки це є вимогою для abroot
.
Стани
У abroot
є два стани - поточний і майбутній. Коли ви вперше встановлюєте Vanilla OS, поточним станом є A. При перезавантаженні системи стан автоматично змінюється на B. Коли ви встановлюєте пакунок за допомогою abroot
, його буде встановлено у майбутній кореневий розділ і синхронізовано з поточним кореневим розділом при перезавантаженні.
Оновлення
За допомогою abroot
запускається утиліта vso
, яка дозволяє здійснювати розумні автоматичні оновлення і встановлювати оновлення у фоновому режимі у майбутньому кореневому розділі, заощаджуючи час, оскільки не потрібно оновлювати пакунки під час перезавантаження.
Параметри ядра
Команда abroot
дозволяє встановити власні параметри ядра, якщо цього вимагають драйвери або користувацькі налаштування. За замовчуванням abroot
читає вміст файлу /etc/default/abroot_kargs
, який не можна редагувати. Натомість, для керування параметрами слід скористатися наведеною командою:
sudo abroot kargs edit
Наведена вище команда відкриє файл параметрів у типовому текстовому редакторі командного рядка (за замовчуванням nano
), але ви можете замінити його, використавши перед командою змінну оточення $EDITOR
. Так, наприклад, якщо ви хочете відредагувати аргументи за допомогою vim
, ви можете виконати sudo EDITOR=vim abroot kargs edit
.
Параметри ядра мають бути відокремлені пробілами і НЕ повинні мати розривів рядків між собою. Крім того, не слід видаляти параметри за замовчуванням, якщо ви не знаєте, що робите, оскільки їх зміна може призвести до того, що систему буде неможливо завантажити.
**ПРИМІТКА: Параметри ядра застосовуються лише до вашого майбутнього кореня, тому ви завжди можете вказати попередній корінь, якщо щось піде не так.
Називання
Ім’я ABRoot відноситься до двох взаємодіючих кореневих розділів A і B (A⟺B).
Використання
Автори
Спільнота Vanilla OS
Переклад: Сапуцький Петро