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=20210112; t=1680773401; x=1683365401; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=3eu1IbZIQklLtDLmkWjdHVdjZV9rq3owtKSGpiBKZos=; b=PGZVay75UTlOw0evuQLRkfyMVHI3ZHwY5sS62yL/56j83/sPb6rX5lAqHBu6uP1cTV S9BE1OhVuZl6YMhqj6mVmWrzRYUb7X5WyzPRUtEtrDgdIaTZ68nXkReAXOM8I+ibnViz 0d42N3w98s/3wwEbLkEcNB2TNmgF+pLeKBnrP2J8S23uG6Ecf3IH5iBLndBq/7WgXZt0 EDe8BXdShohpnxRH/ipQxvpZ+/65P+kcCNf5eLdPoxdRVUpAD1IhboPOi+Z/qkV628Ts ZxdH8Gzo0LrMfHyC92rlPTXc5ANQv5gGwac7A2/a34HHjxhrgcwIc6G2LUclUxMi3Lr6 o8gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680773401; x=1683365401; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3eu1IbZIQklLtDLmkWjdHVdjZV9rq3owtKSGpiBKZos=; b=GurYo9yzIr9MqdrZ0kD8sl3lbNCtjPdbifBbYlV8BzwD6bu2u1DO9yVnKsHdNSjqQk zKm2SXIj/Wg+88TDhNz1ZT2qSUDUgVtX7+kqXz0tr2/3hTWy5/vzPT7BLf2p9TUGWk4w xWsz6RTeVHDKMUqiNRMFhd6bK7D73i8NGj+DqcrHPcJm9GSvS83LL8iMe3DiQCjc6aZY egHquogx9GWOnVA6WEZtDyWjJxYRxQx7HKez8BUy7lNHHPdF+KQgmwO61RPptq9LNLEO iweJTWfLkotV1uOeahqGSA9Wxj/a9GAQztftpXV38ZZJEQOujfOndE5ZNJW08Qp9HPWZ FtEg== X-Gm-Message-State: AAQBX9c/RCKkoHczgmzpKW3nnC2wLUU4zib0TDnP+XyouBUSAXU8TYMG fluPc3xStMAS/u8ADRH/4xsvaV5vPrs= X-Google-Smtp-Source: AKy350ZvlaznY2m4GD1wuvT6iukID4fy+H2aZOBog+ogxmC+u6aHLhxo5I7VY+D5lkwy9fYCBik4Eg== X-Received: by 2002:a17:907:d603:b0:946:c265:7931 with SMTP id wd3-20020a170907d60300b00946c2657931mr6865801ejc.59.1680773401085; Thu, 06 Apr 2023 02:30:01 -0700 (PDT) Date: Thu, 6 Apr 2023 11:29:55 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: References: <7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7d19288d-96a9-186c-768d-95a09b02c225@basealt.ru> Subject: Re: [make-initrd] =?utf-8?b?cG9sbGQg0Lgg0L/RgNC+0LLQtdGA0LrQsCDQvdCw?= =?utf-8?b?0LvQuNGH0LjRjyAvcm9vdC9zYmluL2luaXQ=?= 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: Thu, 06 Apr 2023 09:30:08 -0000 Archived-At: List-Archive: On Thu, Apr 06, 2023 at 08:28:20AM +0700, Антон Мидюков wrote: > Здравствуйте > > Предыстория: https://bugzilla.altlinux.org/44111 > > Заглавный вопрос: "в каком случае может быть так, что init в смонтированном корне в первые секунды нет, а потом оно чудесным образом появляется?" > > Мне кажется, ответ найден: "При распараллеливании процесса монтирования корня (из сквоша, как минимум) на медленном сетевом соединении или достаточно медленном локальном накопителе". > Сейчас проблема стала хорошо воспроизводиться на ядре 6.2 при подключении по nfs или загрузке через ventoy и монтировании сквоша (без предварительной загрузки сквоша в память) на многоядерных процессорах. > Если ядро одно, то проблемы нет (проверено в виртуалке). > В ядре включили алгоритм монтирования оверлея CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU, и это проблему усугубило. > Но проблему крайне редко можно было поймать и раньше. > > Отсюда выводы: > 1. Факт монтирования корня недостаточное условие, существует переходный процесс монтирования > 2. Обнаружение /sbin/init также не является достаточным условием, что можно продолжать загрузку, переходный процесс может оказаться длинным Для обычных систем обнаружения INIT необходимое и достаточное условие. initramfs ничего не знает о системе, кроме того, что там должен быть INIT. Для более сложных случаев можно указать свой boot method: /lib/initrd/boot/method/SOMETHING/check /lib/initrd/boot/method/SOMETHING/action echo SOMETHING > /etc/initrd/method > Гипотеза о переходном процессе основана на сопоставлении двух логов chaind.log и polld.log > Ошибка об отсутствии /sbin/init была выдана на 1 секунду раньше, чем было завершено монтирование оверлея (оно занимало две секунды). > > И другая проблема, вытекающая из этих: > bootchain после монтирования /sbin/init совершает ещё действия, поэтому нужно дождаться его выполнения. > В случае bootchain было бы надёжным запускать polld только тогда, когда он завершил свою работу. > Такое в принципе возможно? В новой версии make-initrd у pipeline будет шаг останавливающий или запускающий сервисы. В bootchain вы может сделать такой же шаг. Хотя я считаю более правильным сделать свой boot method с нужными дополнительными проверками. -- Rgrds, legion