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=-4.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 To: Distributions development References: <20210118202647.GF10121@imap.altlinux.org> <2d5c0646-000f-7128-25af-1987f3ce85e1@basealt.ru> <20210122151535.GS6142@imap.altlinux.org> From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= Message-ID: <5cc96bc6-0eb4-32f7-d5dd-4b453c2a9dd6@basealt.ru> 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 X-Mailman-Approved-At: Wed, 17 Mar 2021 20:21:45 +0300 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: , Date: Fri, 22 Jan 2021 15:43:02 -0000 X-Original-Date: Fri, 22 Jan 2021 22:42:51 +0700 X-List-Received-Date: Fri, 22 Jan 2021 15:43:02 -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@ > -- в смысле если ты не против, то отвечай сразу туда. > -- С уважением, Антон Мидюков