From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=tnIE4KYYI5YgwSfOZiSd7WEzGGsnw/nA8R6UI+4MJ7o=; b=aH6IFv68D6JVRHtoU7Bk+P8Q40PHWF8bqpKQOTRXDRadHQbug+WZvx2tV/YejDVj3+ OXsXhiG+9W/owy1HT0/aaUZfhHWbB7JWOzz8Fx8LG/KHzCbMk6lZIVPrnZkFLMBHPUua LQj7jbkBQPw65INMoWCMcL+dvLRj1eiGRlHfT4U6jW6FcHYwpcfGcigZlBinp2Rs4fg+ LtfZ9QaMnrPMfemgiuMYau/HS/sUXDxoSemeglKsNnerNWNtgzIu+d5v3CV/6PBcCCn1 J048dbrx5lFg7bgXiSVvvwmpfrMKfq2T21S0p+4DegP7RYTjxaVyjKx0Q7BHmqW7U60r Eq0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=tnIE4KYYI5YgwSfOZiSd7WEzGGsnw/nA8R6UI+4MJ7o=; b=GyMZnRbmL3QknOVv6NkDE4k4JG5vgNg8RZxQJ/NPn1/bSOcTA40QS1Fzqm7U7kUF1Z ptyF57rUD6tl3DOpYScI6ER2hboWfUHa5KqXd4J6nA1ZN/29dz7SpDNa0BEce3bkTl4L iFzfAL8CtCWaV0RB3h78uWxy3HG0lwcMsXaAUKWQq45mJiYVD42E5WCDgVr5mKTz3O6I Ffl9d61w0K0/vC1is5TWr0qpujMNM923kfb38N7Q4g6BT22MOSCKCp3mhSqsZVDlUI/a Vk7V0YBNd+GLrmLf7YtHEp1C0b6AgjdvNfuBA/g0/JY5fRoH9WgmSoamrWojwsWU5+gZ 3zIw== X-Gm-Message-State: AOAM533mSE0O4rv3LqnsywIFhT1M9hghNVDBT1CvMCvzAlubJ/4JDDqz PommgVViVpuPCM503cfHSrhaI7kzZoE= X-Google-Smtp-Source: ABdhPJwB/mqjTvTn+zqllZb2K8WvnISt4aGKkf73j45yV7+mQgsekz4cPmumEDC3XGJNsmutSXlDmg== X-Received: by 2002:a2e:9310:: with SMTP id e16mr3023026ljh.226.1617820152121; Wed, 07 Apr 2021 11:29:12 -0700 (PDT) To: make-initrd@lists.altlinux.org References: <20210406082842.pg3rejmmnxuxvddf@example.org> <20210407125739.jeenqyplba3v6itn@example.org> From: Leonid Krivoshein Message-ID: Date: Wed, 7 Apr 2021 21:29:10 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20210407125739.jeenqyplba3v6itn@example.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [make-initrd] Fwd: [#269003] TESTED make-initrd.git=2.14.1-alt1 X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2021 18:29:15 -0000 Archived-At: List-Archive: 07.04.2021 15:57, Alexey Gladkov пишет: > On Wed, Apr 07, 2021 at 04:51:15AM +0300, Leonid Krivoshein wrote: >> 06.04.2021 11:28, Alexey Gladkov пишет: >>> Это сразу наложит ограничение на использование запятой в аргументе. А она >>> уже используется как разделитель например в опциях монтирования. Недавно я >>> предлагал вариант передачи дополнительных параметров монтирования: >>> >>> pipeline=waitdev,mountfs \ >>> waitdev=/dev/sda \ >>> mountfs=/dev/sda:nodev,noexec,mode=620 >>> >>> Я на нём не настаиваю, но как будет выглядеть тоже самое в твоём >>> синтаксисе ? >> Вроде как есть два варианта реализации, я склоняюсь ко второму: >> >> 1. Использовать register_pipe с разделителем "|" вместо register_string для >> pipeline=... или парсить токены не по запятым, а по "|", тогда проблемы с >> запятыми и двоеточиями отпадают: >> >> pipeline=waitdev=/dev/sda|mountfs=/dev/sda:nodev,noexec,mode=620 >> >> >> 2. Сохранить полностью нынешний синтаксис, добавив в него возможность в >> простых случаях (где в значении отсутствуют запятые и двоеточия) >> использовать символ "=" для отделения имени шага от его параметров, >> разделяемых символом ":" или ";": >> >> pipeline=waitdev=/dev/sda,mountfs mountfs=/dev/sda:nodev,noexec,mode=620 >> >> >> Первый вариант решает сразу много проблем, но создаёт проблему совместимости >> (которой, впрочем, можно пренебречь), а также создаёт не всегда интуитивно >> соответствующее восприятие происходящего, поскольку запятые отражают >> последовательность запускаемых шагов (их перечисление), тогда как "|" >> показывает кто-кому передаёт сделанное, а это, как мы выяснили, не всегда >> будет соответствовать написанному. >> >> Второй вариант кажется хорошим компромиссом для экономии байтов в >> /proc/cmdline и не ломает совместимость. В приведённом выше примере экономия >> небольшая, но на больших реальных цепочках она будет ощутимей, например: >> >> pipeline=waitdev=/dev/sda,mountfs=:/root,ram=/root/rescue,mountfs=:,live=rw,rootfs >> vs >> pipeline=waitdev,mountfs,ram,mountfs,live,rootfs waitdev=/dev/sda >> mountfs=:/root ram=/root/rescue mountfs=: live=rw > А ещё можно не заниматься метапрограммированием и для сложных случаев > генерировать файлик с массивом и параметрами. Или же совсем иной синтаксис > придумать и прицеплять его к initrd, оставив cmdline для переопределения > того, что сохранено внутри. > > Кстати, так сейчас работает root=. При создании initrd текущие параметры > прописываются в внутренний /etc/fstab, а параметры root= из cmdline просто > переопределяет эту запись. Тут я был неправ. Второй вариант не получится так реализовать из-за register_array и индексов переменных. -- Best regards, Leonid Krivoshein.