[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