[devel] разбивалка диска (почему-то было: Шаги инсталлятора)

Anton Farygin rider на basealt.ru
Пт Июн 22 08:04:09 MSK 2018


21.06.2018 22:03, Leonid Krivoshein пишет:
>
> 21.06.2018 11:17, Michael Shigorin пишет:
>> On Wed, Jun 20, 2018 at 12:50:21AM +0300, Leonid Krivoshein wrote:
>>> Поизучав исходники Каламариса, посмотрев на инсталляторы в других
>>> дистрибутивах, неоднократно выслушав пожелания иметь ещё и текстовый
>>> инсталлятор, имея собственное желание объединить систему массового
>>> развёртывания с инсталлятором в единое целое, поговорив с отдельными
>>> товарищами на эту тему, решил пока сильно шашкой не размахивать, а
>>> осилить "маленький, но важный кусочек", связанный с разбивкой диска,
>> Это ни разу не "маленький", а САМЫЙ (с большим отрывом) сложный
>> кусок инсталятора для разработчика и для пользователя тоже.
>
> Потому и в кавычках. :) Надо же с чего-то начать.
>
>
>> Его сложность обусловлена, с одной стороной, огромным наследием
>> самых разных устройств и вариантов организации данных на них,
>> а с другой -- риском потери этих данных лёгким движением руки.
>>
>> Известных мне работающих "машинок состояния", которые умеют
>> "держать в уме" нюансы устройств/разбивок/ФС -- ровно два:
>> libevms (апстрим давно умер) и libparted (который, помнится,
>> сделали из партеда дебианщики для своего инсталятора).
>
> Посмотрел много кода, в том числе linux-utils со всеми библиотеками, 
> evms, код dm/md в ядре. libfdisk, используемый всеми *disk'ами, тоже 
> ничего не меняет до последнего, но я бы не назвал её "машиной 
> состояния". Равно как libparted, она не поможет в случае md, lvm, dm, 
> и др... evms, подобно ядру и linux-utils, имеет описания множества 
> структур метаданных, но, в отличии от апстрима, там некому приводить 
> это в актуальное состояние. В результате чем дальше, тем хуже. 
> Достаточно сравнить структуры суперблока пресловутой ext2. Я нашёл 
> способ не использовать знания о размере и расположении метаданных, о 
> внутренней их структуре, а также дешёвый способ штатными методами 
> обеспечить сохранение состояния, комит и откат при необходимости. А 
> для тех, у кого достаточно лишней оперативки или на время инсталляции 
> (развёртывания) есть возможность выделить небольшой кусок реального 
> диска, можно будет предложить фичу "инсталляция в режиме --dry-run" с 
> возможным применением всех изменений только в самом конце. Но это я 
> опять скатился к обсуждению инсталлятора.
>
>
Глядя на всё это выглядит разумным стать апстримом для libevms. В 
принципе там не так уж много и менять надо.



Подробная информация о списке рассылки Devel