[make-initrd] Release make-initrd 2.14.0
Leonid Krivoshein
klark.devel at gmail.com
Sat Apr 3 14:31:22 MSK 2021
03.04.2021 14:09, Alexey Gladkov пишет:
> On Fri, Apr 02, 2021 at 09:37:41PM +0300, Leonid Krivoshein wrote:
>> 01.04.2021 12:02, Alexey Gladkov пишет:
>>> Я бы предложил синтаксис аналогичный ip=, где разные поля разделены
>>> двоеточиями т.е. mountfs=<device>[:<fstype>[:<mountopts>]]
>> И ещё FSTYPE=... по аналогии можно сделать:
>>
>>
>> diff --git a/data/bin/initrd-sh-functions b/data/bin/initrd-sh-functions
>> index a56e872..0e433c6 100644
>> --- a/data/bin/initrd-sh-functions
>> +++ b/data/bin/initrd-sh-functions
>> @@ -33,10 +33,26 @@ get_dev() {
>>
>> case "$name" in
>> '')
>> return 1
>> ;;
>> + CDROM:*)
>> + [ "${ID_CDROM-}" = "1" ] || [ "${ID_FS_TYPE-}" =
>> "iso9660" ] ||
>> + return 1
>> + name="${name#CDROM:}"
>> + name="${name:-/dev/sr0}"
>> + ;;
>> + FSTYPE=*:?*)
>> + name="${name#FSTYPE=}"
>> + value="${name%%:*}"
>> + [ "${ID_FS_TYPE-}" = "$value" ] ||
>> + return 1
>> + name="${name#*:}"
>> + ;;
>> + esac
>> +
>> + case "$name" in
>> UUID=*)
>> [ "${ID_FS_UUID-}" = "${name#UUID=}" ] ||
>> return 1
>> ;;
>> LABEL=*)
>>
> $ git grep '\<get_dev '
> data/lib/uevent/filters/mountdev:21: get_dev dev "$fsdev" ||
> data/lib/uevent/filters/resume:8:get_dev devresume "${RESUME-}" ||
> features/luks/data/lib/uevent/filters/luks:31: get_dev devluks "$dev" &&
> features/luks/data/lib/uevent/filters/luks:35: get_dev devluks "$DEVNAME" ||
> features/luks/data/lib/uevent/filters/lukskeys:26: get_dev realdev "$keydev" ||
> features/luks/data/lib/uevent/handlers/085-luks:32: get_dev realdev "$luksdev"
> features/luks/data/lib/uevent/handlers/085-luks:70: get_dev "$luksdev" ||
> features/pipeline/data/lib/uevent/filters/pipeline-waitdev:13: if [ -n "$spec" ] && get_dev dev "$spec"; then
>
> Ты правда хочешь, чтобы во всех этих фичах появилась поддержка cdrom:* ?
Пока CDROM нужен лишь одной фиче (последняя строка), но, вдруг ещё где
потребуется? Соответственно, варианта только два:
- либо предусмотреть в get_dev() возможность указывать префиксы a.k.a
CDROM: , FSTYPE: для всех, кто запрашивает get_dev().
- либо сделать обёртку типа get_pipeline_dev() и вызывать из неё
get_dev(), а обёртку вызывать из pipeline-waitdev:13
Мне больше нравится первый вариант, но я же советуюсь. По идее на
перечисленных "клиентов" эта "возможность" влиять не должна. Префиксы
позволяют дополнительно ограничить спецификацию, но никто же не
заставляет использовать эти префиксы там, где они не требуются. Но можно
и заюзать, например, так: resume=FSTYPE=swap:/dev/sdb3 и в таком случае
devresume получит значение только в том случае, если /dev/sdb3 является
SWAP-разделом. Таких префиксов можно и больше напридумывать.
--
Best regards,
Leonid Krivoshein.
More information about the Make-initrd
mailing list