[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
Загрузочный образ диска grub.iso для загрузки в EFI режиме с включенным secureboot.
dy
Особенности:
grldr - версия 0.4.6а от 10.04.2016
bootx64 подписан на основе shim.efi;
bootia32 взят из debian 8.4, для загрузки grub.cfg в файловой системе сд/двд
Возможная структура iso образа:
$root\boot\grub\grub.cfg
$root\boot\grub\menu.lst
$root\boot\grub\i386-efi
$root\boot\grub\x86_64-efi
1 - файл конфигурации меню grub2efi - обязательный файл
2 - файл конфигурации меню grub4dos - обязательный файл
3 - папка с модами для конфигурации efi32
4 - папка с модами для конфигурации efi64

Пример grub.cfg:

loadfont /boot/grub/unicode.pf2
prefix=($root)/boot/grub
locale_dir=$prefix
set gfxpayload="800x600"
set lang=ru_RU
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
set menu_color_normal=light-gray/black
set menu_color_highlight=white/light-gray
set pager=1
set default=0
menuentry "Boot HardDisk" --class opensuse --class os {
set oldroot=$root
if [ search --set=root -f /efi/Microsoft/Boot/bootmgfw.efi ] ; then chainloader /efi/Microsoft/Boot/bootmgfw.efi;
elif [ search --set=root -f /efi/grub/grub.efi ] ; then chainloader /efi/grub/grub.efi;
elif [ search --set=root -f /bootmgr ] ; then chainloader /bootmgr;
elif [ search --set=root -f /ntldr ] ; then chainloader /ntldr;
else echo "No suitable bootloaders found."; sleep 5; set root=$oldroot;
fi
}

Пример menu.lst:

default 0
timeout 10
pager 2
title Boot HardDisk
find --set-root --ignore-floppies --ignore-cd /bootmgr || find --set-root --ignore-floppies --ignore-cd /ntldr
map (hd0) ()
map () (hd0)
rootnoverify (hd0)
chainloader (hd0)+1
Вложение

Упакован в архив.

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
23284Можно поподробнее, что с этим делать?
Создаем файлы конфигурации в блокноте grub.cfg для EFI и menu.lst для Legacy соответственно в каталоге:
$root\boot\grub\
Примеры вложил.
Подробнее по синтаксису можно погуглить. В iso образ можно записать многое, например wim-файлы, krd 10, образы live-дисков, efi загрузчики и др., и затем производить их загрузку средствами grub.
Линуксовые файлы и файлы конфигурации размещаем в iso образе и грузим...
Например так для grub4dos:
title Acronis Disk Director 12.0
kernel /boot/add12/1.krn vga=791 quiet
initrd /boot/add12/1.fs
Например так для grub2efi:
menuentry "Acronis Disk Director Home 12.0 (EFI X64)" {
linux /boot/add12/2.krn vga=791 quiet
initrd /boot/add12/2.fs
}
Забыл добавить что iso-образ редактируется средствами UltraISO или редактора iso-образов.
Пока что выявлена одна проблемка:
При загрузки boot.efi от майкрософт в системе EFI через grub2efi в ISO не находится файл конфигурации bcd. Хотя в каталоге $root\EFI\Microsoft\Boot\ этот файл присутствует.
Не знаю с чем это связано, возможно надо мод подгрузить какой-то.
Через флешку если загружать такой проблемы нет.
В grub4dos такой ошибке нет и в ISO и в FAT32.

[Цитировать]

    sanek-van
  • 86
  • Стаж: 10 лет
  • Сообщений: 21
  • Репутация:0

    [+] [-]
Доброго времени суток. Скажите а где брать эти файлы-
grldr - версия 0.4.6а от 10.04.2016
bootx64 подписан на основе shim.efi;
bootia32 взят из debian 8.4, для загрузки grub.cfg в файловой системе сд/двд
или я что то не то скачал

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
23313а где брать эти файлы-
grldr - версия 0.4.6а от 10.04.2016
bootx64 подписан на основе shim.efi;
bootia32 взят из debian 8.4
Они уже вшиты в iso образ. В образе только требуется обязательно разместить свои файлы конфигурации
$root\boot\grub\grub.cfg
$root\boot\grub\menu.lst
И то что будем грузить через них ab

[Цитировать]

    sanek-van
  • 86
  • Стаж: 10 лет
  • Сообщений: 21
  • Репутация:0

    [+] [-]
удалено


Последний раз редактировалось: sanek-van (2016-04-19 12:46), всего редактировалось 1 раз

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
23313При загрузки boot.efi от майкрософт в системе EFI через grub2efi в ISO не находится файл конфигурации bcd. Хотя в каталоге $root\EFI\Microsoft\Boot\ этот файл присутствует.
Не знаю с чем это связано, возможно надо мод подгрузить какой-то.
Через флешку если загружать такой проблемы нет.
В grub4dos такой ошибке нет и в ISO и в FAT32.
Кто-нибудь может придумать решение этой проблемы?

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет
  • Сообщений: 598
  • Репутация:45

    [+] [-]
  • Откуда: Омск
23621
23313При загрузки boot.efi от майкрософт в системе EFI через grub2efi в ISO не находится файл конфигурации bcd. Хотя в каталоге $root\EFI\Microsoft\Boot\ этот файл присутствует.
Не знаю с чем это связано, возможно надо мод подгрузить какой-то.
Через флешку если загружать такой проблемы нет.
В grub4dos такой ошибке нет и в ISO и в FAT32.
Кто-нибудь может придумать решение этой проблемы?
Для того что бы у вас загрузился файл bcd, у вас должна быть структура папок такая \EFI\Boot - в папке Boot должен лежать файл bootx64.efi, а в \EFI\Microsoft\Boot\ должен лежать файл bcd, так же можно положить файлы bootx64.efi и bcd в одну папку. Если держаться стандартной структуре папок для загрузки EFI то у вас должно быть так if [ search --set=root -f /efi/Boot/bootх64.efi ] ; then chainloader /efi/Boot/bootх64.efi;

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Приветствую Господа. aa
Так , мысли в слух:
Насколько помню для загрузки Windows в режиме UEFI с CD\DVD по пути \EFI\Microsoft\Boot\ должны лежать еще cdboot.efi и cdboot_noprompt.efi (второй не обязателен вроде, утверждать не буду)


Последний раз редактировалось: puhpol (2020-02-04 18:16), всего редактировалось 1 раз

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
Это само собой все лежит.
Хорошая идея! Попробую

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
Не видит все равно. Пробовал и
\EFI\Microsoft\Boot\BCD
\EFI\Microsoft\Boot\bootx64.efi
\EFI\Microsoft\Boot\cdboot.efi
\EFI\Microsoft\Boot\cdboot_noprompt.efi
и
\EFI\Boot\BCD
\EFI\Boot\bootx64.efi
\EFI\Boot\cdboot.efi
\EFI\Boot\cdboot_noprompt.efi
через команды и:
menuentry "Windows 8/10 (EFI X64)" {
set root=(cd0);
if [ search --set=root -f /efi/Microsoft/Boot/bootx64.efi ] ; then chainloader /efi/Microsoft/Boot/bootx64.efi ;
fi
}
и:
menuentry "Windows 8/10 (EFI X64)" {
chainloader /efi/Microsoft/Boot/bootx64.efi
}
и чего только не пробовал...


Последний раз редактировалось: User85 (2016-04-18 20:17), всего редактировалось 1 раз

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
23639--class opensuse
aa Это к чему?? К линуксу opensuse? Просто решил обратить внимание...

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
Опечатался... Подправил. Возможно дело в том что ищет на дискете fd1. хотя root меняю... И повторюсь что такой проблемы в grub4dos нет и bootmgr находит файл BCD

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
так UEFI вообще отдельная кухня, особенно с включенным SecureBoot. Тут работоспособность grub4dos (тоесть обычный BIOS) не при чём. Может еще где глобальные пути используются? (как на счёт всего конфига под спойлером выложить, вдруг знающие подскажут)

[Цитировать]

    User85
  • 1698
  • Стаж: 9 лет 2 месяца
  • Сообщений: 78
  • Репутация:0

    [+] [-]
loadfont /boot/grub/unicode.pf2
prefix=($root)/boot/grub
locale_dir=$prefix
set gfxpayload="800x600"
set lang=ru_RU
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gzio
insmod gettext
insmod ext2
insmod chain
insmod ntfs
insmod xfs
insmod fat
insmod iso9660
insmod part_msdos
insmod part_gpt
insmod usbms
insmod gfxterm
insmod gfxmenu
insmod png
insmod jpeg
set menu_color_normal=light-gray/black
set menu_color_highlight=white/light-gray
set pager=1
set default=0
if sleep --interruptible 0 ; then
timeout=10
fi
menuentry "Windows 7/8/10 (EFI X64)" {
chainloader /EFI/Microsoft/Boot/bootx64.efi ;
}
Структура:
$root\EFI\Microsoft\Boot\BCD
$root\EFI\Microsoft\Boot\bootx64.efi
$root\boot\grub\grub.cfg
$root\boot\grub\menu.lst
$root\boot\grub\i386-efi
$root\boot\grub\x86_64-efi

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет
  • Сообщений: 598
  • Репутация:45

    [+] [-]
  • Откуда: Омск
User85, Уберите точку с запятой, попробуйте вот так
menuentry "Windows 7/8/10 (EFI X64)" {
search --set -f /EFI/Microsoft/Boot/bootx64.efi
chainloader /EFI/Microsoft/Boot/bootx64.efi
}

Страница 1 из 3


Показать сообщения:    

Текущее время: 13-Дек 13:38

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы