From: "Антон Мидюков" <antohami@basealt.ru> To: Distributions development <devel-distro@lists.altlinux.org> Subject: [devel-distro] mkimage-profiles: Выполнение mki-copy-$BOOTLOADER дважды Date: Fri, 22 Jan 2021 15:43:02 -0000 Message-ID: <5cc96bc6-0eb4-32f7-d5dd-4b453c2a9dd6@basealt.ru> (raw) In-Reply-To: <20210122151535.GS6142@imap.altlinux.org> Полтора года назад заметил, что 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@ > -- в смысле если ты не против, то отвечай сразу туда. > -- С уважением, Антон Мидюков <antohami@basealt.ru>
next parent reply other threads:[~2021-01-22 15:43 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-22 15:43 ` Антон Мидюков [this message] 2021-01-22 15:44 ` Антон Мидюков
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5cc96bc6-0eb4-32f7-d5dd-4b453c2a9dd6@basealt.ru \ --to=antohami@basealt.ru \ --cc=devel-distro@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Distributions development This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \ devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com public-inbox-index devel-distro Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel-distro AGPL code for this site: git clone https://public-inbox.org/public-inbox.git