Алексей Федорчук
В первой заметке про «освежённый» Antargos было сказано, что в нём была обещана поддержка ZFS в инсталляторе, именуемом Cnchi. Однако, вчитавшись, я понял: обещание это касалось светлого будущего, некоторой перспективы, ибо формулировалось буквально следующими словами:
Добавление модулей ядра для ZFS, подготовленных к поддержке ZFS в Cnchi v0.14.
Что, разумеется, следовало скорее понимать так: поддержка ZFS появится в инсталляторе грядущей версии 0.14 (текущая его версия, на момент сборки «освежёбраза» — 0.12).
Увидеть любой дистрибутив Linux’а, устанавливаемый на zpool штатным его инсталлятором, без шума и пыли, стало голубой мечтой моей старости с того момента, как я узнал о существовании проекта ZFS on Linux http://zfsonlinux.org/. Поэтому я не мог пройти мимо возможности поглядеть, насколько приблизились к её реализации майнтайнеры Antergos’а.
Правда, будучи знакомым с обещаниями такого рода в некоторых других дистрибутивах (например, в Sabayon’е), которые при детальном рассмотрении оказывались несколько преувеличенными, я осуществил этот погляд в Virtualbox’е. И не в Antergos’е, где виртуалку ещё предстояло установить и настроить, а в LM 17.3 Rosa, где, как и во всех Ubuntu’идах, и то, и другое выполняется — проще некуда, даже если бы хотелось (о чём говорится в соответствующем цикле).
Далее я создал и настроил виртуальную машину, включив EFI:
И в live-режиме присобачил к ней ещё один, новосозданный, диск (как добавить диск уже существующий, было описано ранее):
Каковой и появляется в списке устройств при повторном запуске виртуальной машины в live-режиме:
Ибо ZFS показывает себя во всём блеске именно в многодисковых конфигурациях.
Меню начальной загрузки в EFI-режиме выглядит так:
Если стразу же после загрузки Live-среды запустить инсталлятор — никакого намёка на поддержку ZFS в нём, разумеется, не обнаружится. Что и не удивительно — в виртуальной системе не имеется ни spl-, ни zfs-модулей. Хотя соответствующие пакеты имеются в официальном репозитории, где их можно отыскать и отметить для установки через Pamac:
Кстати, запускать Pamac лучше всего таким образом:
$ sudo pamac-manager
Команда sudo
в live-режиме Antergos’а беспарольна. А вот при установке через Pamac, запущенный обычным образом, пароль будет запрошен. А каков он, этот пароль, я так и не нашёл. Да, честно говоря, особенно и не искал…
В общем, после нажатия соответствующей кнопки выводится список пакетов, подлежащих установке:
А потом они буквально мгновенно оказываются помеченными как установленные. Однако искать бинарные модули там, где им положено располагаться (то есть в /lib/modules/4.2*
), бесполезно (да и не успели бы они откомпилироваться за такое короткое время). Вместо этого в каталоге /usr/src
обнаруживаются исходники и spl-, zfs-модулей и сопутствующих утилит.
Разумеется, из исходников этих можно как-нибудь собрать бинарники, тем более что инструкции для этого прилагаются. Однако это вызывает в памяти финальную фразу дамы из известного анекдота:
Как-нибудь я и с мужем могу.
И заниматься этим в live-режиме, то есть по определению «на один раз», ни малейшего желания не возникает. Тем более, что по том всё равно систему на zpool тоже придётся устанавливать «как-нибудь», и это «как-нибудь» многократно описывалось ранее для разных дистрибутивов, в том числе и для Archlinux’а.
В общем, остаётся констатировать, что светлое будущее, в котором реализуется моя голубая мечта, по прежнему остаётся в отдалённой перспективе. Хотя, казалось бы, никаких принципиальных сложностей для её осуществления не видно. Более того, это можно сделать двумя путями.
Первый путь прост — в наглую забить на несовместимость лицензий ядра Linux и ZFS, и включить бинарные модули поддержки последней в установочные образы дистрибутивов. Да, это значит не просто поступиться принципами, но и в ступить «с законами в конфликт». Хотя и согласуется со здравым смыслом.
Однако в своё время Брайан Беллендорф придумал ловкий финт ушами для преодоления этого противоречия в мировом масштабе — распространение исходников для сборки модулей поддержки ZFS отдельно от исходников ядра. А в масштабе одного отдельно взятого дистрибутива можно пойти дальше. И просто встроить в инсталлятор скрипт, вызываемый при выборе ZFS в списке доступных файловых систем. И выполняющий те же действия, которые мы проделываем при включении поддержки ZFS в загруженной live-среде или уже установленной системе. После чего автоматизировать процессы создания ZFS-пула и datasets на нём — как это проделывается для BTRFS с её subvolumes в инсталляторах некоторых дистрибутивов (например, openSUSE).
Я понимаю, что на пути технической реализации этой принципиально простой схемы, вероятно, встретится немало сложностей. Однако, как мне кажется, дело того стоит, не так ли?