grub-mkimage
является ключевым элементом для grub
для создания всех других материалов, когда это необходимо. Например, все grub-[install,mkstandalone,mkrescue]
относятся к использованию grub-mkimage
, поэтому, как только grub-mkimage
будет понято, все будет выглядеть легко.
grub-mkimage
есть 2 способа "прикрепить" конфигурационный файл к его образу:
вариант -c
,--config=File
(встроить ФАЙЛ как ранний конфиг)
опция -m
,--memdisk=file
(встроить ФАЙЛ как мемдиск , содержащий файл конфигурации)
Пример :встроенная конфигурация[$prefix]/boot/grub/[x86_64-efi/]grub.cfg
memdisk — это виртуальное дисковое устройство, просматриваемое grub
, имеющее файловую систему tarfs
; различные модули, находящиеся там, «готовы к использованию», то есть они может быть загружен напрямую с помощью insmod
. Но они не называются напрямую как «предварительно загруженные модули», как в опциях --modules="blah blah...:"
(последние аналогичны драйверам, загруженным в initramfs
в ОС Linux)
Лучшей демонстрацией этого утверждения является использование однострочной команды переделать livecd_only_biosPC_awared
вlivecd_isohybrid_bios_and_efi_awared
xorriso -osirrox on -indev TinyCorePure64-6.0.iso -outdev new.iso \
-cpr efime.img /boot -- \
-rm /boot/isolinux/boot.cat -- \
-mkdir /.disk /boot/grub -- \
-cpr grub.cfg /boot/grub -- \
-cpr info /.disk/info -- \
-as mkisofs -graft-points -volid "tinyefi" -r -J -l -eltorito-boot boot/isolinux/isolinux.bin -eltorito-catalog boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -eltorito-alt-boot -e boot/efime.img -no-emul-boot -isohybrid-gpt-basdat
где
grub.cfg
— это простая конфигурация для воспроизведения isolinux.cfg
оригинального живого ISO Загрузчик efime.img
получается с помощью
grub-mkimage -m memdisk -O x86_64-efi -o grubx64.efi --compression=xz disk part_msdos part_gpt linux linux16 loopback normal configfile test search search_fs_uuid search_fs_file true iso9660 test search_label efi_uga efi_gop gfxterm gfxmenu gfxterm_menu fat ext2 ntfs cat echo ls memdisk tar
Самый простой мемдиск содержит (memdisk)/boot/grub/grub.cfg
как ранний -встроенный файл конфигурации.
Всё об этом скоро появится в виде упражнений на grub -mkBootx64.efi @sourceforge.net/projects/toysbox