ALT Linux Distributions development
 help / color / mirror / Atom feed
* [devel-distro] How to build bootable iso with mkimage
@ 2024-11-29  8:44 Eugene Prokopiev
  2024-11-29 12:23 ` Eugene Prokopiev
  0 siblings, 1 reply; 6+ messages in thread
From: Eugene Prokopiev @ 2024-11-29  8:44 UTC (permalink / raw)
  To: Discussion of distributions <i>development</i>

Здравствуйте!

Подскажите, а как сейчас с помощью mkimage (без m-p) изготовить
загрузочный iso? Добавляю в верхнеуровневый Makefile:

MKI_PACK_RESULTS = hybrid-grubpc-grub-efi:live.iso

ISOHYBRID = yes
BOOT_VOLI = live
BOOT_TYPE = grub-pc-boot grub-efi
EFI_BOOTLOADER = grub-efi
EFI_CERT = altlinux

...

all: ... pack-image ...

При сборке получаю:

...
mkimage: Processing 'pack-image' ...
find: './.work/chroot/boot': Permission denied
...
find: './.work/chroot/etc/tcb': Permission denied
mki-pack-hybrid-grubpc-grub-efi: /.image/boot/grub/bios.img: not found
make: *** [/usr/share/mkimage/targets.mk:152: pack-image] Error 1

Что такое boot/grub/bios.img и как он должен оказаться в .image?

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-distro] How to build bootable iso with mkimage
  2024-11-29  8:44 [devel-distro] How to build bootable iso with mkimage Eugene Prokopiev
@ 2024-11-29 12:23 ` Eugene Prokopiev
    0 siblings, 1 reply; 6+ messages in thread
From: Eugene Prokopiev @ 2024-11-29 12:23 UTC (permalink / raw)
  To: Discussion of distributions <i>development</i>

пт, 29 нояб. 2024 г. в 11:44, Eugene Prokopiev <eugene.prokopiev@gmail.com>:

> all: ... pack-image ...

вот тут перед pack-image нужен copy-grubpcboot

> mki-pack-hybrid-grubpc-grub-efi: /.image/boot/grub/bios.img: not found

теперь bios.img оказывается на месте и iso-образ собирается, но не
загружается, пытаюсь понять куда подложить grub.conf и что в него
написать ...

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-distro] How to build bootable iso with mkimage
  @ 2024-12-03 11:38     ` Eugene Prokopiev
  2024-12-03 11:44     ` Anton Midyukov
  2024-12-03 21:19     ` Leonid Krivoshein
  2 siblings, 0 replies; 6+ messages in thread
From: Eugene Prokopiev @ 2024-12-03 11:38 UTC (permalink / raw)
  To: Discussion of distributions <i>development</i>

вт, 3 дек. 2024 г. в 14:33, Eugene Prokopiev <eugene.prokopiev@gmail.com>:

> Если я пытаюсь загрузить linux/initrd в grub shell вручную, то я
> получаю kernel panic

Ровно такой же kernel panic я получаю при загрузке образа, собранного
из https://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?a=tree;h=refs/heads/isolinux-boot-kernel-panic

В этом случае isolinux загружает kernel/initrd, но корректно собрать
initrd с bootchain мне не удается

Вроде бы все необходимые для загрузки в qemu модули в наличии - что же
еще я мог забыть?

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-distro] How to build bootable iso with mkimage
    2024-12-03 11:38     ` Eugene Prokopiev
@ 2024-12-03 11:44     ` Anton Midyukov
  2024-12-03 21:19     ` Leonid Krivoshein
  2 siblings, 0 replies; 6+ messages in thread
From: Anton Midyukov @ 2024-12-03 11:44 UTC (permalink / raw)
  To: devel-distro

03.12.2024 14:33, Eugene Prokopiev пишет:
> пт, 29 нояб. 2024 г. в 15:23, Eugene Prokopiev <eugene.prokopiev@gmail.com>:
> 
>> ... iso-образ собирается, но не загружается, пытаюсь понять куда подложить grub.conf и что в него написать ...
> 
> Не загружается он в том смысле, что вместо загрузки linux/initrd я
> получаю grub shell, а в нем в ответ на set вижу root=`memdisk` и
> prefix=`(memdisk)/boot/grub` - т.е. при сборке iso-образа нужно
> каким-то образом явно указать загрузочное устройство аналогично тому
> как мы это делаем при grub-install? как и где это описано в m-p?
> 

Вероятно у вас отсутствует .disk/info
Для grub-pc:
https://github.com/legionus/mkimage/blob/0d59791883a889028fb2a2560099ac1a00061e3c/tools/mki-copy-grubpcboot#L40C39-L40C49
Для grub-efi:
https://github.com/legionus/mkimage/blob/0d59791883a889028fb2a2560099ac1a00061e3c/tools/mki-copy-grub-efi-chrooted#L168

Также можно задать переменную UUID_ISO
https://github.com/legionus/mkimage/blob/0d59791883a889028fb2a2560099ac1a00061e3c/docs/Makefile.md?plain=1#L218

Будет создан файл в корне iso образа, а сама isofs будет иметь этот uuid.

Загрузочное меню grub формируется фичей grub из кусочков конфига:
https://github.com/altlinux/mkimage-profiles/tree/master/features.in/grub/cfg.in

-- 
best regards, Anton Midyukov <antohami@altlinux.org>



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-distro] How to build bootable iso with mkimage
    2024-12-03 11:38     ` Eugene Prokopiev
  2024-12-03 11:44     ` Anton Midyukov
@ 2024-12-03 21:19     ` Leonid Krivoshein
  2024-12-04  5:17       ` Anton Midyukov
  2 siblings, 1 reply; 6+ messages in thread
From: Leonid Krivoshein @ 2024-12-03 21:19 UTC (permalink / raw)
  To: devel-distro

Добрый вечер!


Судя по тексту ошибке на скрине, нет модулей поддержки блочного 
устройства (virtio-blk, к примеру) или файловой системы, которая на нём, 
не может смонтировать корень. Возможно ошибка из-за недостачи неявной 
зависимости. Например, в образе есть модуль ext4.ko, но нет 
crc32-generic.ko или чего-нибудь в этом роде.


On 12/3/24 14:33, Eugene Prokopiev wrote:
> пт, 29 нояб. 2024 г. в 15:23, Eugene Prokopiev <eugene.prokopiev@gmail.com>:
>
>> ... iso-образ собирается, но не загружается, пытаюсь понять куда подложить grub.conf и что в него написать ...
> Не загружается он в том смысле, что вместо загрузки linux/initrd я
> получаю grub shell, а в нем в ответ на set вижу root=`memdisk` и
> prefix=`(memdisk)/boot/grub` - т.е. при сборке iso-образа нужно
> каким-то образом явно указать загрузочное устройство аналогично тому
> как мы это делаем при grub-install? как и где это описано в m-p?
>
> Если я пытаюсь загрузить linux/initrd в grub shell вручную, то я
> получаю kernel panic (см. приложенную картинку), при этом:
>
> - вот так собирается initrd -
> https://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?a=blob;f=scripts.d/01-boot
> - вот с такими параметрами загружается linux/initrd -
> https://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?a=blob;f=data/boot/grub/grub.cfg
>
> Разница с мастер-веткой mkimage-profile-live-minimal-example лишь в
> том, что я пытаюсь использовать вроде бы штатный для mkimage способ
> сборки образа вместо usermode-fs-tools
>
>
> _______________________________________________
> devel-distro mailing list
> devel-distro@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel-distro

-- 
WBR, Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-distro] How to build bootable iso with mkimage
  2024-12-03 21:19     ` Leonid Krivoshein
@ 2024-12-04  5:17       ` Anton Midyukov
  0 siblings, 0 replies; 6+ messages in thread
From: Anton Midyukov @ 2024-12-04  5:17 UTC (permalink / raw)
  To: devel-distro

04.12.2024 00:19, Leonid Krivoshein пишет:
> Добрый вечер!
> 
> 
> Судя по тексту ошибке на скрине, нет модулей поддержки блочного устройства (virtio-blk, к примеру) или файловой системы, которая на нём, не может смонтировать корень. Возможно ошибка из-за недостачи неявной зависимости. Например, в образе есть модуль ext4.ko, но нет crc32-generic.ko или чего-нибудь в этом роде.
> 

Можно взять готовый initrd.mk и конфиг bootchain из iso образов регулярок и использовать их:
.disk/initrd.mk
.disk/bootchain

Команда для сборки initrd там же в файле:
.disk/mkinitrd

> 
> On 12/3/24 14:33, Eugene Prokopiev wrote:
>> пт, 29 нояб. 2024 г. в 15:23, Eugene Prokopiev <eugene.prokopiev@gmail.com>:
>>
>>> ... iso-образ собирается, но не загружается, пытаюсь понять куда подложить grub.conf и что в него написать ...
>> Не загружается он в том смысле, что вместо загрузки linux/initrd я
>> получаю grub shell, а в нем в ответ на set вижу root=`memdisk` и
>> prefix=`(memdisk)/boot/grub` - т.е. при сборке iso-образа нужно
>> каким-то образом явно указать загрузочное устройство аналогично тому
>> как мы это делаем при grub-install? как и где это описано в m-p?
>>
>> Если я пытаюсь загрузить linux/initrd в grub shell вручную, то я
>> получаю kernel panic (см. приложенную картинку), при этом:
>>
>> - вот так собирается initrd -
>> https://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?a=blob;f=scripts.d/01-boot
>> - вот с такими параметрами загружается linux/initrd -
>> https://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?a=blob;f=data/boot/grub/grub.cfg
>>
>> Разница с мастер-веткой mkimage-profile-live-minimal-example лишь в
>> том, что я пытаюсь использовать вроде бы штатный для mkimage способ
>> сборки образа вместо usermode-fs-tools
>>
>>
>> _______________________________________________
>> devel-distro mailing list
>> devel-distro@lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/devel-distro
> 

-- 
best regards, Anton Midyukov <antohami@altlinux.org>



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-12-04  5:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-29  8:44 [devel-distro] How to build bootable iso with mkimage Eugene Prokopiev
2024-11-29 12:23 ` Eugene Prokopiev
2024-12-03 11:38     ` Eugene Prokopiev
2024-12-03 11:44     ` Anton Midyukov
2024-12-03 21:19     ` Leonid Krivoshein
2024-12-04  5:17       ` Anton Midyukov

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