Моя идея состоит в том, чтобы создать USB-загрузочную флешку с Lubuntu, которая может загружаться на старом ноутбуке с BIOS и более новых системах UEFI.
Это было бы довольно легко, когда Stick был бы настроен как устаревшее загрузочное устройство, но я хочу, чтобы это было устройство с поддержкой UEFI.
- Это имеет хоть какой-то смысл ?! Или я неправильно понял концепцию UEFI?
- При необходимости возможны две разные установки Linux (одна для UEFI, одна для устаревшего, но обе на одном диске)
- Загрузите устройство GPT на устаревшем BIOS - это сработает?
Я не вижу ясности, возможно, было бы лучше иметь отдельную устаревшую загрузочную флешку Linux, но мне любопытно изучить границы :)
Итак, возможна ли моя идея гибридной linux-uefi-boot-usb-stick, которая будет работать с устаревшими BIOS?
(3) представляется возможным для Linux с Grub http://www.rodsbooks.com/gdisk/booting.html
Кроме того, у меня есть готовый раздел EF00, кроме свопа, Fat32 и двух разделов Ext4.
(1) тоже возможно http://www.rodsbooks.com/bios2uefi/
Эта инструкция, однако, с 2012 года, прошло некоторое время с тех пор - есть ли у кого-нибудь рабочий пример, который легче?
Для других исследователей этой темы:
Загрузка Windows 7 с GPT-диска на материнской плате без EFI. Есть ли способ загрузить Windows 7/8 с помощью BIOS на GPT?
http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/
ОБНОВИТЬ:
Мне удалось создать часть UEFI, включающую безопасную настройку загрузки с помощью rEFInd.
Следуя данному совету, я использовал dd
для копирования gptmbr.bin
на свой диск, который теперь, по-видимому, делает что-то в BIOS-системе: «Это не загрузочный диск»
Тем не менее, я последовал совету и установил pmbr
флаг для диска и legacy boot
флаг gpt - все еще получаю эту ошибку, есть идеи?
Мой раздел ESP является вторым разделом на диске и настроен с файлами EFI.
Настройка:
- 64 ГБ пространства
- GPT Partitiontable
- На диске установлен флаг pmbr
- 1-й раздел начинается с 16 МБ и составляет около 45 ГБ, основной FAT32 для данных
- 2-й раздел начинается с 45 ГБ и представляет собой систему EFI (fat32) с рабочей настройкой rEFInd
- 3–5-й раздел - это домашний (ext4), swap и root (ext4) моего рабочего Lubuntu 14.04.1
Используя, dd
я скопировал gptmbr.bin
мой скомпилированный 6.02 Syslinux в первые 440 байтов.
Под Parted 3.2 можно видеть , что мой раздел 2 имеет boot
и legacy_boot
флаг.
Во время загрузки я не могу найти загрузочный диск - если я установлю 5-й вместо 2-го раздела, legacy_boot
я получу отсутствующую ОС
Оно живое!
(Как мой старый вопрос был удален /ubuntu//q/516730/319747 )
Я предполагаю, что мне нужно скопировать некоторые из этих
*.c32
файлов и другие в папку syslinux на моем EFI (где ?!) или в моем корневом разделе (/boot/syslinux
?!), Чтобы заставить его работать - я прав? Какие файлы необходимы?Кроме того, я думаю, мне тоже понадобится этот
syslinucx.cfg
файл - верно?
Моей целью будет хотя бы прямая загрузка системы lubuntu в корневой раздел ext4.
Обновить:
Хотя я понятия не имею почему, у меня все заработало - но не с ручной установкой.
pmbr
флаг был плохим и запретил мою систему UEFI от загрузки палки , как UEFIlegacy_boot
флаг был необходим для моего 5 - я раздела (Linux корневого)- Я должен был использовать
extlinux --install /path/to/root/parition
- Мне пришлось создать
syslinux.cfg
в папке syslinux при загрузке моего корневого разделаЯ сделал все это на вторую меньшую флешку, затем попытался скопировать только папку syslinux, но безуспешно - это
extlinux --install
кажется обязательным.Кто-нибудь знает, что именно
extlinux --install
делает? Можно ли это сделать вручную или как еще можно установить более новую версию, например 6.02, не устанавливая ее в свою систему?
Получил мою работу с разделами, упомянутыми в BIOS, UEFI и UEFI SecureBoot, чертовски непросто, многому научился, чуть не убил 2TB с расставанием, будь осторожен и удачи.
Ответы:
Это возможно, и очень часто это делается как с внешними USB-накопителями, так и с внутренними накопителями.
Относительно типов таблиц разделов:
BIOS обычно не требует таблицы разделов. Его интересует только часть кода начальной загрузки, которая является первыми 440 байтами вашей MBR. (Хотя есть исключения. Некоторые реализации BIOS действительно ломаются, если они не могут найти MBR с одним из обычных типов разделов. Надеемся, что они редки.)
Таблица разделов GPT физически не заменяет MBR - она всегда начинается в секторе 1, в то время как MBR находится в секторе 0 - поэтому диск может иметь и то, и другое. На самом деле, большинство GPT дисков у есть «защитный MBR» , содержащего только один раздел , который охватывает весь диск, чтобы предотвратить старые MBR только разбиения на разделы инструментов от случайного уничтожения данных.
Например, вы можете установить загрузочный сектор Syslinux в MBR, и он загрузится. (
syslinux-install_update
Сценарий сделает это за вас, но вы можете найти егоgptmbr.bin
в пакете syslinux, чтобы сделать это вручную.)Как и флаг «active» на разделах MBR, Syslinux будет искать флаг «legacy BIOS boottable» на разделах GPT (бит 2 - спецификация 2.4 UEFI, раздел 5.3.3, таблица 20); вышеупомянутый скрипт также устанавливает этот флаг автоматически, если у вас установлен
sgdisk
(из gptfdisk).Можно также использовать GRUB, но это немного раздражает. Поскольку GRUB 2 хочет «встроить» свои части в традиционно неиспользуемые сектора 1–62, он перезапишет GPT, хранящийся в том же месте. Поэтому вам может потребоваться создать выделенный раздел размером 2–4 МБ и пометить его как загрузочный BIOS, чтобы
grub-install
он оказался местом для встраивания.С другой стороны, спецификация UEFI делает требуется поддержка типов MBR разделов (раздел 12.3.1) и присвоить тип MBR раздела
0xEF
в системный раздел EFI (раздел 5.2.2).Поэтому, если по какой-то причине вы не можете заставить свой диск работать с GPT, вы все равно можете создать системный раздел EFI на MBR, и он будет использоваться, если у него правильная файловая система и все необходимые файлы (раздел 12.3.1.3):
Что касается операционных систем, Linux, как правило, не заботится ни о том, загружается ли он из BIOS сегодня или из UEFI завтра. Мне пришлось перезагрузить свой ноутбук из режима UEFI в режим «совместимости с BIOS» и обратно, возможно, сто раз на этой неделе, пытаясь найти ошибку в поддержке UEFI 3.17 ...
Обратите внимание, что статья «Преобразование BIOS в UEFI» - это совсем другое. В нем описывается, как установить сам UEFI - реализацию UEFI под названием «DUET» - для запуска из системы только с BIOS. Это не имеет ничего общего с загрузкой операционной системы непосредственно из BIOS.
источник
mbr
кажется, в порядке, но не находит мойEFI System
раздел. Проблема в том, что это второй раздел на диске, начинающийся с 45 ГБ на диске? Должен ли я настроить спектральную секцию на EFI в дополнение к настройке EFI, работающей на Alreadz?Да, это возможно
Основная идея состоит в том, чтобы разделить GPT на USB-накопителе следующим образом:
1686148-6449-6E6F-744E-656564454649
) - 1 МБ, без файловой системыC12A7328-F81F-11D2-BA4B-00A0C93EC93B
) - 200 МБ, файловая система VFAT0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - 1 ГиБ, файловая система ext40FC63DAF-8483-4772-8E79-3D69D8477DE4
) - оставшееся пространство, файловая система XFS или BtrfsТакое разбиение позволяет нам загружаться на устаревших системах, поскольку в GPT все еще есть место для MBR (из соображений обратной совместимости), а у Grub2 достаточно места для установки некоторой средней ступени в загрузочный раздел BIOS. Устаревшие BIOS не заботятся о схеме разбиения, и у ядра Grub2 / Linux нет проблем с пониманием GPT в устаревших системах.
В системах UEFI прошивка UEFI игнорирует MBR и использует системный раздел EFI в качестве точки входа.
Например, с Fedora вам в основном нужно сделать следующее:
Убедитесь, что файловая система Linux Boot смонтирована,
/boot
а файловая система EFI -/boot/efi
.(Повторно) Установите как старые, так и UEFI загрузчики:
(Повторно) Создайте конфигурационные файлы grub как для устаревшей, так и для загрузки UEFI:
В зависимости от того , ваша система загружается в наследство или в режиме UEFI , вы должны установить либо первый или второй файл и заменить
(linux|initrd)16
с(linux|initrd)efi
или наоборот.Установите grub в MBR:
Вуаля.
источник