From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Resent-From: Michael Shigorin Resent-Date: Tue, 23 Apr 2019 16:00:02 +0300 Resent-Message-ID: <20190423130002.GG18867@imap.altlinux.org> Resent-To: make-initrd@lists.altlinux.org Envelope-to: ar@cs.msu.ru Delivery-date: Thu, 26 Apr 2018 23:24:12 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=9CGGwE06sC1eaTSwuGYIFMQygpOclf2ru39XZRR4f8I=; b=q6OZ+uHTjrxUgm421WCfh0XY3H96HUXe1BulE2DcTG13hMQIoA7wb/3SmFIVUveMbm +1Uejg9TzUrroHJ3oyQfXxSRldVevuAimyzUv/imgKDtIPyTGgYXGMXZVVwmAxI2DlE/ HmnrmLrEPJqQVi66xoao5TWc54p/bj5A/SCTsd7+NkEpBw7nHxsxHZdug94TyP6kzs07 EqRPTVixm3cM9blzCnutCaBf5gunB0o9d2ZGH8w2N+QsMQVCLPu9xjAFiZSJ2geJazWc Nz5YmCNtPwn5xFW6/7UsGl9Cs0Spq7+07wZewGN9AQtPqDUs0WlLKnsMHZgdQp+ypQKg ijlQ== 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:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=9CGGwE06sC1eaTSwuGYIFMQygpOclf2ru39XZRR4f8I=; b=mHlTY4AYAqC3NBiCcR6Uimm+EHzqfbeZQzOkQ8Ep7UIVCwqaBGfdXNS5s2CgUD1Wq7 G2fEFxk9cNRysBgULWdyRz7PbmaYhgUAI+aPhObwsVpoIL7Xc4xsKfcZg5PDyv0pMofb 2bWHarF9qy9LjEOwxblrEkydgo+TJWdkZfNJWNzwUw3l0GxwYitxd5UN7ksoUWdQuyfD lfdzYvbzBXB7DUnTR8loZO8v5obK2Txj5YMOneGWbRbQ4qaeO8zLbfx+XIdD+7e3e8Jf hc+XU6KnfVeLrYYJeP/00vKfYlv16kft08mIbcKEvObzs18W1QmPHhciv5EPMEWwhLvv Erbw== X-Gm-Message-State: ALQs6tACrDNm8C/Dr5HnW+W3p4fbaYpridRRqiEa8woK0kA7zOYh2aPu n5DbMkdMO3M95mPSXzZRArglRQ== X-Google-Smtp-Source: AB8JxZoTOw5vRaIvq40NOXiI5h8+SAG2lbgNzG19GwoeD+SOkbekFks8glS4YOEWvr50vCjZUx3ZRg== X-Received: by 10.46.136.139 with SMTP id k11mr14819273lji.54.1524774246534; Thu, 26 Apr 2018 13:24:06 -0700 (PDT) To: Alexey Gladkov References: <7d2d1d23-02fe-5e86-4e18-ba1954e2581e@gmail.com> <20180425085417.GA4066@comp-core-i7-2640m-0182e6> <20180425100924.GY4026@imap.altlinux.org> <20180425121231.GB4066@comp-core-i7-2640m-0182e6> <20180425154402.GC4026@imap.altlinux.org> <20180426083554.GE4066@comp-core-i7-2640m-0182e6> <8f210a29-13c8-0714-3bd5-6a69a5f1cb57@gmail.com> <20180426101604.GG4066@comp-core-i7-2640m-0182e6> <20180426102102.GH4066@comp-core-i7-2640m-0182e6> From: Leonid Krivoshein Message-ID: <2220242a-9178-5c89-02a2-0623518585b6@gmail.com> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20180426102102.GH4066@comp-core-i7-2640m-0182e6> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 194.107.17.36 X-SA-Exim-Mail-From: klark.devel@gmail.com X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail.cs.msu.ru X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-SA-Exim-Version: 4.2 X-SA-Exim-Scanned: Yes (on mail.cs.msu.ru) Cc: =?UTF-8?B?0JDQvdC00YDQtdC5INCn0LU=?= =?UTF-8?B?0YDQtdC/0LDQvdC+0LI=?= Subject: Re: [make-initrd] =?utf-8?b?RndkOiBSZTogW2RldmVsXSDQl9Cw0L/RgNC+0YEg?= =?utf-8?b?0L3QsCDRhNC40YfRgyBsaXZlYm9vdCDQsiBtYWtlLWluaXRyZA==?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Tue, 23 Apr 2019 13:00:02 -0000 X-Original-Date: Thu, 26 Apr 2018 23:24:04 +0300 X-List-Received-Date: Tue, 23 Apr 2019 13:00:02 -0000 Archived-At: List-Archive: 26.04.2018 13:21, Alexey Gladkov пишет: > Мне нужна помощь в написании грамотных фичей. Сейчас мне нужна фича > настройки сети так как в make-initrd она ооочень условная и сделана через > утилиту ipconfig из klibc, которая, скажем так, очень стабильная. Уже говорил, что пока более-менее я осилил make-initrd только из p8, надеюсь по фичам там нет больших отличий в v2+? Мне по-любому придётся разбираться с сетью, так что можно будет отталкиваться от моего чернового варианта, сделанного под задачи деплоя на скорую руку. Но на грамотную чистовую реализацию в виде конечной фичи пока не претендую. Если правильно понял, ipconfig лучше не использовать. Согласен, потому что лучше ip из пакета iproute2 -- его одного хватит для всех задач. > Я разговаривал ldv, glebfm, wladmis и пришёл к выводу, что стоит > использовать etcnet в образе. Тоже об этом думал. Чтобы не изобретать велосипед, для более сложных случаев, конечно, можно. Но у нас ни один пакет с таким названием, а как минимум четыре. > Так что, нужно написать фичу для этого, плюс > придумать настройку в рантайме, плюс конвертер параметра `ip=` в > конфигурацию etcnet. Видел готовые реализации в Gentoo. Правда, не под etcnet, но диалоги готовые. Может получится перетащить что-то из этого. См.: http://www.reactivated.net/weblog/archives/2006/06/net-setup-enhancements/ . Стоит сразу определиться: сетевая загрузка корня с NFS/FTP/HTTP возможна даже по вай-фаю, но PXE-загрузка ядра и initrd по вай-фаю невозможна, если не ошибаюсь. Исходя из этого стоит ли тащить в liveboot поддержку Wi-Fi? Что касается параметров ip=... и nfsroot=... -- тут я убеждён в обратном. Их нельзя как-либо использовать в initrd, потому что они предназначены для самого ядра и, если эти параметры указаны, ядро само их парсит и начинает поднимать сеть, искать и пытаться монтировать корень, итд... В случае успеха, до запуска initrd дело вообще не должно дойти. Однако наше ядро собирается без DHCP- и NFS- клиентов, как я полагаю, и поэтому мы можем видеть очень длительную задержку во время запуска и загрузки ядра с любым из этих параметров и с нулевым эффектом на выходе. По этой причине я бы не стал использовать в initrd параметры загрузки с такими названиями. Меня удивило их наличие в скриптах make-initrd после прочтения документации и проверки методом научного тыка. Поправьте, если ошибаюсь. Кроме того, я бы предложил использовать ещё один механизм для передачи параметров -- через соответствующий конфиг. Например, как это сделано тут: http://git.altlinux.org/people/klark/packages/deploy-project.git?p=deploy-project.git;a=blob;f=stage1/etc/deploy.conf -- просто, чтобы была возможность не только системных умолчаний, но и сборочных (при сборке образа initrd), чтобы не тащить большой список параметров в kernel cmdline. > Также нужно посмотреть etcnet на предмет его работы с > утилитами busybox и возможность использования в нём udhcp. Вот в этом мне видится большое противоречие. Для простых случаев достаточно ручного парсинга и утилиты ip, потому что etcnet много чего за собой потянет, особенно etcnet-full. > Открытым остаётся вопрос об использовании nfsmount. Я не знаю насколько > востребован функционал с nfs. Если востребован, то это будет ещё один > пласт работ. С ним не всё хорошо и толком разобраться пока не получилось. Удалось лишь добиться, чтобы хоть как-то по нему грузилось. При этом я могу видеть сегфолты в ядре на стороне сервера. Вообще не уверен, что nfsmount стоит использовать, хотя видел, что к ней вернулись из-за проблем с mount.nfs/mount.nfs4. Но у меня в скриптах сейчас со вторыми проблем меньше, propagator же умеет только nfsmount. Видимо придётся делить на NFSv3 и NFSv4, и разбираться с каждым по отдельности. > Также я занимаюсь анализом init-bottom перед похоронами этого скрипта. Про преемственность я уже говорил. Стоит позаботиться о полном сохранении совместимости для простоты перехода с пропагатора на liveboot, вплоть до полной поддержки его kernel cmdline. Иначе переход на liveboot будет сильно затруднён необходимостью правки неведанного числа пакетов, типа alterator-netinst и задача превратится в нерешаемую. * * * Подытожу. Возможности заняться написанием конкретной фичи в нужном формате в чистовом варианте в ближайший месяц-два у меня точно не будет. По основной работе буду заниматься схожими боданиями с начальной загрузкой по сети, и эти наработки как черновой материал можно будет потом подтащить в make-initrd. Особенно, если они пройдут обкатку в предполагаемом развёртывании на тысячах машин. Разница только в том, что мне нужно сделать хоть как-то по быстрому, чтобы заработало, и в том, что на сетевом ресурсе я ищу не корень stage2, а директорию с файлами, что почти на 95% перекрывает решаемую задачу, если не считать диалогов пропагатора. -- Best regards, Leonid Krivoshein.