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=ya.ru; s=mail; t=1611330260; bh=Reno/Q7m/p5bePatWDjQEc5VdcjtwfpE1ny4v6roTDQ=; h=In-Reply-To:To:Subject:From:Message-ID:Cc:Date:References; b=fsmuSizr50lHgx6Zz98LStOMHoKNNch99vU9j3nQVEk6Rn775EIasU2VHWIbg4Mzd 6nYp7nJ1wjm4tTEoU5KfY+6K+tpAzToeia+o/Dkh7L+JGznA7US2yQh6ly60OfWqGJ or0xpeQlwn8+sF1KcrUJ0Kd59/KCI9xErBVwShuo= Authentication-Results: iva6-d2c82ec8bc26.qloud-c.yandex.net; dkim=pass header.i=@ya.ru From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= To: Distributions development References: <20210118202647.GF10121@imap.altlinux.org> <2d5c0646-000f-7128-25af-1987f3ce85e1@basealt.ru> <20210122151535.GS6142@imap.altlinux.org> Message-ID: <9228d205-334e-f8a7-2f61-9c43016e1726@ya.ru> Date: Fri, 22 Jan 2021 22:44:18 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <20210122151535.GS6142@imap.altlinux.org> Content-Type: text/plain; charset=koi8-r Content-Language: ru Content-Transfer-Encoding: 8bit Subject: [devel-distro] =?utf-8?b?bWtpbWFnZS1wcm9maWxlczog0JLRi9C/0L7Qu9C9?= =?utf-8?b?0LXQvdC40LUgbWtpLWNvcHktJEJPT1RMT0FERVIg0LTQstCw0LbQtNGL?= X-BeenThere: devel-distro@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Distributions development List-Id: Distributions development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2021 15:44:22 -0000 Archived-At: List-Archive: Полтора года назад заметил, что mki-copy-isolinux при сборке образов выполняется дважды. Сейчас раскопал это подробнее, делюсь промежуточным результатом. 22.01.2021 22:15, Michael Shigorin пишет: > On Fri, Jan 22, 2021 at 07:41:09PM +0700, Антон Мидюков wrote: >>>>> mkimage-profiles runs mki-copy-efiboot twice if used without mki-copy-isolinux. >>>>> The first time is started, in fact, to copy the kernel. >>>> Вот это был вообще сюрприз... >>> Из mkimage-profiles вызываем copy-$BOOTLOADER, а потом в mki-pack-boot он ещё раз вызывается. >>> Т.е. copy-$BOOTLOADER можно было бы не вызывать, если бы содержимое /boot не пропадало (или восстанавливалось) к моменту вызова mki-pack-boot. >> Теперь конкретика. >> >> В sub.in/stage1/Makefile вызывается build-propagator >> (tools/mki-build-propagator) и copy-$BOOTLOADER >> (tools/mki-copy-$BOOTLOADER). Это стадия stage1. >> Это предпоследняя стадия. >> >> Финалом выполняется >> features.in/build-distro/lib/90-build-distro.mk. В цели >> pack-image выполняется tools/mki-pack-boot. А уже в нём сначала >> tools/mki-copy-$BOOT_TYPE, после mki-pack-<такой-то>. Также там >> мог бы выполняться и mki-build-propagator, если бы в >> features.in/build-distro/scripts.d/00-cleanup не очищалось >> initfs, в /boot не было пусто и главное была переменная >> $PROPAGATOR_MAR_MODULES (ну и сами модули). >> >> Таким образом, я понимаю, что так сделано специально, но >> получается всё равно некрасиво. Лучше было бы где-то сохранять >> ядро с propagator и потом восстанавливать в /boot финального >> chroot. Но как получить доступ к /boot в chroot прям из >> sub.in/stage1/Makefile. Вот только как это сделать? > > Как-то наверняка можно (в sub.in/stage2/scripts.d/99-elf-stats > была эквилибристика на перекликающуюся тему), но надо ли? Надо для того, чтобы mkimage-profiles использовал полноценно mki-pack-boot и не вводил новую сущность $BOOTLOADER, фактически, всегда совпадающую с $BOOT_TYPE. И сейчас это является препятствием для сборки образа только с refind. В mkimage теперь можно, но в mkimage-profiles нельзя. А главное это вводит в неприятное заблуждение читающего логи. Вот вроде нашёл про mki-copy-isolinux, а внизу через пару тысяч строк - продолжение, до которого можешь и не дойти с первого раза. А когда дойдёшь, немножко впадёшь в ступор. > >> Восстанавливать то можно при выполнении scripts.d/ (run-scripts >> в features.in/build-distro/lib/90-build-distro.mk). А вот в >> stage1 cкрипт вставлять уже поздно. Они выполняются до. > > Почитай git log по этим файлам -- если там нет _прямого_ > указания на такую задумку, возможно, это просто мой косяк > (когда постучался об стенку головой, всю картинку в голову > уложить не получалось -- например, дёргают каждые пять минут > по в общем-то важным вещам -- и пришлось оставить сделанное > хоть как-то). > > PS: мне кажется, это стоит документировать в devel-distro@ > -- в смысле если ты не против, то отвечай сразу туда. > -- С уважением, Антон Мидюков