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

Leonid Krivoshein klark.devel на gmail.com
Пт Июн 22 23:18:01 MSK 2018


22.06.2018 08:04, Anton Farygin пишет:
> 21.06.2018 22:03, Leonid Krivoshein пишет:
>> Посмотрел много кода, в том числе linux-utils со всеми библиотеками, 
>> evms, код dm/md в ядре. libfdisk, используемый всеми *disk'ами, тоже 
>> ничего не меняет до последнего, но я бы не назвал её "машиной 
>> состояния". Равно как libparted, она не поможет в случае md, lvm, dm, 
>> и др... evms, подобно ядру и linux-utils, имеет описания множества 
>> структур метаданных, но, в отличии от апстрима, там некому приводить 
>> это в актуальное состояние. В результате чем дальше, тем хуже. 
>> Достаточно сравнить структуры суперблока пресловутой ext2. Я нашёл 
>> способ не использовать знания о размере и расположении метаданных, о 
>> внутренней их структуре, а также дешёвый способ штатными методами 
>> обеспечить сохранение состояния, комит и откат при необходимости. А 
>> для тех, у кого достаточно лишней оперативки или на время инсталляции 
>> (развёртывания) есть возможность выделить небольшой кусок реального 
>> диска, можно будет предложить фичу "инсталляция в режиме --dry-run" с 
>> возможным применением всех изменений только в самом конце. Но это я 
>> опять скатился к обсуждению инсталлятора.
>>
> Глядя на всё это выглядит разумным стать апстримом для libevms. В 
> принципе там не так уж много и менять надо.
>

В нашем evms как минимум три плагина написаны людьми из ALT Linux Team. 
Почему бы и нет? Хотя лично я смыла не вижу, если только для временного 
поддержания на плаву имеющегося инсталлятора. А начать апстриму 
рекомендовал бы с исправления модуля gpt, который все линуксовые разделы 
считает "Microsoft Basic Data": 
http://git.altlinux.org/gears/e/evms.git?p=evms.git;a=blob;f=plugins/gpt/gptsegmgr.c;h=9391f41a1ad1b3e0f43f84d8df8c85e984ca4c3a;hb=02838ccebfe5d253cb6fde06d1ccaba7066c7c19#l51 
:) Инсталлятор вполне бы мог определять по точкам монтирования 
правильный тип в соответствии со спецификацией GUID/GPT, а systemd уже 
умеет подхватывать такую разметку на ранней стадии. Несколько полезных 
пруфов в тему:

https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/
https://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html
http://git.altlinux.org/gears/u/util-linux.git?p=util-linux.git;a=blob;f=util-linux/libfdisk/src/gpt.c;h=024a7695b388a55da939440ca95996e129f5e49d;hb=e866e79228b882bf77232e95dadddd41a327676e#l156


-- 
Best regards,
Leonid Krivoshein.



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