
Итак, у меня есть полностью функциональный файл .img, созданный с помощью grub-mkstandalone. Я поместил его на CD, и он отлично загружается, ISO отлично загружается в VM и т. д.
Теперь я хочу связать существующий grub.cfg с этим файлом .img, как будто это обычная загрузка. Имеет ли это смысл? Например, у меня есть USB-флешка с установленным grub. У меня есть несколько устройств loop, настроенных на загрузку ISO. Все Linux. Однако в этом случае я хочу вместо этого загрузить файл .img (у которого есть свой grub.cfg). Поэтому я хотел бы увидеть меню из этого grub.cfg после загрузки .img и затем загрузить ОС с него.
Я искал ответ несколько дней и читал документацию, но так и не смог его найти.
Дайте мне знать, если вопрос был непонятен, и я уточню. Заранее спасибо.
РЕДАКТИРОВАТЬ:
Например, предположим, у меня есть такой пункт меню:
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
linux (loop)/vmlinuz boot=live toram nomodeset
initrd (loop)/initrd
}
Это работает нормально. Однако я хочу загрузить файл .img, который я создал, вместо загрузки Linux таким образом, чтобы я мог видеть меню grub, которое находится внутри ISO.
Ну что-то вроде этого?
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
.... (loop)/boot/grub/my.img
}
Точки символизируют некую магию, о которой я не знаю и которая заставляет это работать (если это вообще возможно).
решение1
Для образов EFI вы можете использовать chainloader
(но я подозреваю, что вы в то время использовали BIOS; не знаю, сработает ли это):
menuentry 'My OS' {
chainloader (hd0,msdos1)/BOOT/EFI/somedir/somebin.efi
}
Так что я бы попробовал (не проверено!!):
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
chainloader (loop)/boot/grub/my.img
}