Multi загрузочная флешка

Не ругайте и не пинайте, хочу освоить EFI на флэшках и понять смысл, чтобы все дошло, а потому опишу все мои мысли и сомнения подробно.
Но по порядку.
jim945
Не имеет значения
Смотря какой BIOS, есть BIOS (так называемые ошибочные BIOS), которые проверяют установлен ли boot flag, точнее ищут в нужном месте наличие кода 0x80 и если его не находят, то игнорируют устройство для загрузки.
У меня на ноутбуке такой BIOS. Есть загрузочная флэшка
sudo fdisk -l /dev/sdb
Устр-во начало Конец Секторы Размер Тип
/dev/sdb1    2048 4014045 4011998   1,9G Microsoft basic data
/dev/sdb2      34     161     128    64K BIOS boot
/dev/sdb3     162    2047    1886   943K EFI  …. но efi не установлен
на которой раздел 1, имеет 4011998 секторов, по смещению 0x1be расположен байт, который определяет наличие boot flag - если этот байт имеет код 0x80, то флэшка загружается, а если этот байт имеет код 0x00, то флэшка не загружается.
Посмотрим 16 байт, которые описывают этот раздел
sudo hexdump -C -s 446 -n 16 /dev/sdb
000001be  80 21 03 00 07 26 ea f3  00 08 00 00 de 37 3d 00  |.!...&.......7=.|
то, что это тот самый раздел, потдверждает количество секторов - последние 4 байта в конце
de 37 3d 00 --- 003d37de --- 4011998 ……( echo $((16#003d37de)) = 4011998 )
Повторюсь, если убрать этот boot flag (заменить код 0x80 на 0x00), то флешка не грузится.

jim945
На современных материнках оба варианта будут работать
То что работать будут, не спорю, интересна была причина, почему именно fat16?
Все советуют по разному: одни и на диске и на флэшке FAT32, другие на диске FAT32, а на флэшках или FAT12 или FAT16.
Вот и хотел выяснить почему именно выбрано FAT16. Хотя предположение имеется, вот и хотел уточнить. А предположение такое - иногда при форматировании раздела в FAT32 выскакивает ошибка
WARNING: Not enough clusters for a 32 bit FAT!
и отказывается форматировать. Правда в таких случаях это можно обойти
If you get the message … WARNING: Not enough clusters for a 32 bit FAT! ..., reduce cluster size with mkfs.vfat -s2 -F32 ... or -s1, otherwise the partition may be unreadable by UEFI.
Правда, опять же, есть случаи, когда и это не помогает, приходится дополнительно вписывать размер - mkfs.fat -F32 -S 4096 -s 1 ...
Потому и спросил причину.

jim945
Чтобы не путаться просто запускай две команды
Одну с –target=i386-pc
Другую с –target=x86_64-efi
В части установки загрузчика - все таки плохо понимаю написанный текст - при загрузке из BIOS
scorpid
а. Для целевых систем с BIOS есть два варианта установки GRUB, в зависимости в какой режиме вы сами сейчас загружены:
grub-install –boot-directory=/mnt/data/boot /dev/sdX
- если вы загружены в BIOS системе.
здесь нет упоминания efi …. хотелось бы поподробнее - привести конкретную команду (одну или две) для установки загрузчика из системы ArchLinux, загруженной из BIOS.
Насколько я понимаю, при установке загрузчика выпоняется следующее
- в раздел 2 (BIOS boot partition) прописывается core.img …. это мной проверено и точно на 100%.
- в раздел 3 (EFI System) прописывается core.efi (называют еще BOOTX64.EFI) --- в чем я не совсем уверен, так как не могу проверить … а писать команды не понимая сути, не для меня - вот поэтому то и хочу уточнить эти команды.

И в итоге, повторюсь - хотелось бы поподробнее - привести конкретную команду (одну или две) для установки загрузчика из системы ArchLinux, загруженной из BIOS.

А также хочу прояснить выражение - для целевых систем - что это означает?
scorpid
б. Для целевых систем с EFI один вариант установки GRUB, поскольку вы также загружены в этом режиме:
grub-install –boot-directory=/mnt/data/boot –efi-directory=/mnt/efi –target=x86_64-efi –removable
Ошибки не исчезают с опытом - они просто умнеют
Если кто делал флэшки по этой методе и ставил загрузчик из системы, загруженной в BIOS и у него все получилось, то есть загрузка идет как и с BIOS, так и с EFI, прошу написать эти команды. .... просто на данный момент нет компьютера с нормальным UEFI и не могу проверить ... а потому нужны эти правильные команды, чтобы не экспериментировать и понять нужное.

PS - и еще на флэшке, как я понял, появится раздел efi или я не прав? ... если такой раздел все-таки имеется, то что в нем находится.
Ошибки не исчезают с опытом - они просто умнеют
vasek, на скрине ниже, флешка с установленным арчем и двумя grub для bios, и efi загрузки.


Команда установки grub для bios загрузки grub-install /dev/sdX
Команда установки grub для efi загрузки grub-install --target=x86_64-efi --removable
vasek
PS - и еще на флэшке, как я понял, появится раздел efi или я не прав? … если такой раздел все-таки имеется, то что в нем находится.
Всё раздела ты создаёшь сам заранее
Lupus pilum mutat, non mentem.
вопрос по WindowsPE на мультизагрузочной флэшке от conty9:

/2k10/WinPE/W8x86PE.WIM и прочие WindowsPE в BIOS-режиме загружаются без проблем, но не загружается до конца из режима EFI, возможно из-за отсутствия подписи grub-загрузчика?
RusWolf, спасибо, так себе и представлял, но не ставил для efi, хотел быть уверенным на все 100. Смущало то, что для efi ничего не указано - выходит определяет автоматом куда прописывать .... во что я и не верил.
Придется очистить одну старую флэшку и помучать ее и посмотреть что куда встало (посмотреть байтики).
Ошибки не исчезают с опытом - они просто умнеют
jim945
Всё раздела ты создаёшь сам заранее
это я неправильно выразился - имел ввиду не раздел, а директорию efi и какие там будут файлы. Помнится как то пробовал раньше на спех (проверить то загрузку все равно не могу), в раздел efi прописалось, а вот директория efi на флэшке была пустая, а потому и засомневался, что то делаю не то.
Ошибки не исчезают с опытом - они просто умнеют
vasek
выходит определяет автоматом куда прописывать …. во что я и не верил.
Пути надо указывать, если ты ставишь не с chroot, а с другой загружённой системы.
Dobrov
но не загружается до конца из режима EFI, возможно из-за отсутствия подписи grub-загрузчика?
Так попробуй отключить secureboot
Какие-то wim-ки запускал. Работали без проблем
Lupus pilum mutat, non mentem.
vasek, вот установка grub из под bios.
 
Зарегистрироваться или войдите чтобы оставить сообщение.