'' Загрузочный раздел EFI '' и '' biosgrub '' раздел

21

Зачем мне это нужно? Я установил Ubuntu без UEFI (основной загрузочной записи) и установил Ubuntu без 'biosgrub', и он работает нормально, тогда как в других случаях меня просят сделать раздел 'biosgrub'. Я понятия не имею, почему иногда мне это нужно, а другим - нет (оба они были в одной системе).

И то же самое происходит, когда я использую UEFI (GUID Partition Table). Единственная разница в том, что меня просят создать «загрузочный раздел EFI», но, как и в случае с «biosgrub», иногда меня просят сделать это, а иногда меня не просят сделать это.

Для моей текущей установки меня попросили сделать один, но я не сделал, и моя система в порядке. Там нет изменений в системе, том же оборудовании, BIOS и т. Д ... Может ли кто-нибудь пролить свет на это?

GhostMotleyX
источник
2
Вы должны быть последовательны в загрузке. Только если в режиме загрузки UEFI вам понадобится раздел efi, и только в режиме загрузки BIOS с разделом gpt вам понадобится раздел bios_grub. Если вы используете UEFI, но загрузите Boot-Repair в режиме BIOS и попытаетесь установить grub в режиме BIOS, он попросит вас создать раздел bios_grub.
oldfred

Ответы:

34

Существует четыре условия (BIOS против EFI и MBR против GPT), но два из них имеют идентичные потребности (и одно из них чрезвычайно редко):

  • На традиционном компьютере на базе BIOS с традиционной таблицей разделов MBR исполняемый код GRUB распространяется как спагетти, брошенные ребенком. Некоторые из них находятся в разделе загрузочного кода MBR, некоторые из них находятся в секторах после MBR, которые официально не распределены, а некоторые - в разделе Linux /boot. Это настоящий беспорядок, и он работает только потому, что у разработчиков были буквально десятилетия, чтобы создавать умные хаки и обрабатывать (почти) все изгибы.
  • На традиционном компьютере с BIOS с новой таблицей разделов GUID (GRT) код GRUB аналогичен предыдущему; однако секторы, следующие непосредственно за MBR, не являются нераспределенными; они используются самой GPT. GPT не предлагает аналогичного места для захвата GRUB, поэтому разработчики GRUB остановились на загрузочном разделе BIOS (который GParted и partedидентифицируется с помощью bios_grubфлага) для хранения кода, который будет помещаться в секторах после MBR на диске MBR. На самом деле это безопаснее и чище, чем подход MBR, поскольку он служит для защиты кода GRUB от других программ, которые могут попытаться использовать это нераспределенное пространство.
  • На компьютере с более новым EFI, а не BIOS, загрузчики не хранятся в MBR, в официально нераспределенных секторах после MBR или в загрузочных разделах BIOS; вместо этого загрузчики находятся в виде обычных файлов в разделе FAT, известном как системный раздел EFI (ESP) . ( Смущает, что установщики Debian и Ubuntu называют ESP именем «Загрузочный раздел EFI», но это имя нестандартно. GParted и partedидентифицирует ESP как имеющее »bootустановлен флажок, хотя эта терминология означает что-то совершенно другое на дисках MBR.) ESP может существовать на диске GPT или на диске MBR, но первый гораздо более распространен на компьютерах на основе EFI. Подход EFI намного безопаснее и гораздо более гибкий, чем подход BIOS, поскольку он не убирает необработанный код в странных местах: загрузчики находятся в файлах, как и программы уровня ОС. Это облегчает их идентификацию и манипулирование (OTOH, EFI также хранит данные на загрузчиках в NVRAM, что создает вторую точку отказа в процессе загрузки. Новизна EFI также означает, что он не так хорошо протестирован, что объясняет множество проблем, специфичных для EFI.)

GhostMotleyX, ваш комментарий к ответу LiveWireBT показал, что «лучший» способ установки - это BIOS / MBR. Конечно, это субъективно, но я не согласен с такой оценкой. Подход BIOS / MBR является наименее безопасным и наиболеенеуклюжий из трех подходов, которые я только что изложил. Подход EFI - самый безопасный и самый гибкий подход. Я подозреваю, что вы зациклены на том факте, что для подходов GRUB / GPT и EFI требуются отдельные разделы, но это не имеет большого значения. Помимо настройки системы или обслуживания разделов, эти разделы будут в значительной степени невидимы для вас и обеспечат вам большую гибкость. В отличие от MBR, GPT не ограничивается четырьмя основными разделами, так что вам не нужно копить свои основные разделы, как гном, хранящий его золото.

Род Смит
источник
Спасибо всем, кто откликнулся, действительно полезная информация; особенно Род Смит.
GhostMotleyX
Таким образом, в системе загрузки EFI вам все еще нужен только один маленький раздел? Загрузочный сектор MBR EF02и содержимое (или эквивалент) раздела gdisk могут храниться в файлах в системном разделе EFI в формате FAT (с типом gdisk EF00)?
Питер Кордес
Питер, да, это в основном правильно; Загрузчики EFI - это файлы, хранящиеся в ESP, а не в загрузочных секторах диска или раздела.
Род Смит
Что если я хотел бы поддержать как загрузку UEFI, так и загрузку BIOS? Буду ли я иметь две копии grub, одну в EFI System Partitionдругой, а другую в BIOS boot partition?
Привет, мир,
Hello World, вам понадобится один EFI-режим и один BIOS-загрузчик. Им не обязательно быть GRUB. Фактически, я рекомендую, чтобы по крайней мере один из них не был, так как это могло бы стать довольно запутанным. Однако такая конфигурация довольно бессмысленна для загрузки одной ОС. Это может быть необходимо для некоторых сценариев двойной загрузки - скажем, если в одной ОС отсутствует загрузчик в режиме EFI, а другой по какой-то причине требуется загрузка в режиме EFI (например, если это Windows и ваш диск превышает 2 ТБ, вам потребуется GPT для поддержки его полного размера).
Род Смит
7

Вам необходимо создать раздел biosgrub на многораздельном диске GPT при настройке устаревшей загрузки или загрузочный раздел EFI (для многораздельного GPT или MBR) при настройке загрузки UEFI.

  • GRUB требует, чтобы загрузочный раздел BIOS (2 МБ, без файловой системы, EF02код типа в gdisk или флаг bios_grub в GNU Parted) в системах BIOS для встраивания своего core.imgфайла из-за отсутствия пробела встраивания после MBR в GPT-дисках . [...]

https://wiki.archlinux.org/index.php/GPT#Bootloader_Support

LiveWireBT
источник
1
Спасибо, я думаю, что теперь понимаю; если я устанавливаю Ubuntu не-UEFI на MBR-диск, мне не понадобится biosgrub. Если я устанавливаю Ubuntu под UEFI на диске GPT, тогда мне нужно создать раздел EFI. И затем возникла несогласованность, когда я установил Ubuntu не-UEFI на GPT-диск, а также UEFI с MBR. Поэтому лучший теоретический способ установки Ubuntu - это не-UEFI с таблицей разделов MBR или UEFI с таблицей разделов GPT.
GhostMotleyX
@GhostMotleyX Это правильно.
LiveWireBT
даже 1MiB более чем достаточно. Мне нравится помещать его перед первым «нормальным» разделом с размером 1MiB, как я объяснил в последнем абзаце en.wikipedia.org/wiki/BIOS_boot_partition#Overview (который я только что отредактировал). Я не решил, буду ли я лучше использовать команду gdisk sortдля перенумерации разделов в порядке начального сектора, или я хочу оставить его как sdc4или w / e. Вероятно, сортировка не так уж странна, поэтому мои разделы всегда будут sdX1.
Питер Кордес
3

Я дам один дополнительный пункт / мотив для того, чтобы и EFI и BIOS grub.

Флешка для загрузки петли Live SystemRescueCD.iso из Grub2.

Зачем? Простой ответ: он будет загружаться на многих компьютерах, некоторые имеют UEFI, некоторые имеют только 32-битный BIOS и т. Д.

Реальный сложный мотив: по возможности используйте передовое аппаратное обеспечение (UEFI).

Пример реального использования:

  • Флешка (отформатированная в режиме GPT) с четырьмя разделами
  • Первый раздел (видимый из Windows 7 и выше) в NTFS с остальным размером флешки
  • Второй раздел для файла Grub2 и SystemRescueCD.iso, по крайней мере, 1 ГБ (лучше, если 2 ГБ, чтобы вы могли переносить две версии SystemRescueCD.iso одновременно, только для тестирования новой версии перед заменой старой), я обычно использую файловую систему Ext4 для этого
  • Третий раздел для EFI (который Windows называет ESP), отформатированный как Fat32, по крайней мере с 512 МБ (я видел некоторые ПК, которые при меньшем использовании не показывают USB-накопитель в качестве загрузочного носителя)
  • Четвертый раздел для BIOS_Grub (без формата, но очищается при создании)

Одна важная вещь: я видел 8GiB LG USB stric (тот, который у меня есть), который отказывается быть перечисленным при физической загрузке UEFI PC, если разделы не выровнены по цилиндрам, но видны на других компьютерах UEFI, а также на VirtualBOX с загрузкой UEFI режим активирован ... при разбиении его, если он выровнен по MiB, он использует все пространство, нет неразделенного пространства около 1 МБ в конце, но при выравнивании по цилиндрам последний неполный MiB не используется ... если я делаю MiB, имея это в виду (другими словами, я выполняю ручное выравнивание цилиндров), оно работает, но, как я уже сказал, оно все еще выравнивается по цилиндрам (я делаю это вручную, вместо того, чтобы позволить инструменту разбиения сделать это за вас).

Как получить такую ​​замечательную USB флешку (у нее есть две хитрости):

  1. Выравнивание разделов по цилиндрам (лучшая совместимость для выравнивания по MiB)
  2. Выполните grub-install --target = i386-pc, а затем выполните другую grub-install --target = x86_64-efi в том же разделе grub, поэтому вы используете только один grub.cfg для обоих режимов загрузки.

Как это загружается:

  • а) загрузка из старого BIOS, загрузит MBR, затем Stage2 раздела grub из BIOS_grub, затем core.img из раздела Grub2
  • б) форма загрузки совместима с UEFI, загрузит файл .efi из раздела ESP
  • grub.cfg читается (если существует в разделе grub2)
  • тогда отображается меню grub2
  • затем я выбираю загрузку из цикла SystemRescueCD.iso (с параметром dochace), я установил два параметра, заданных для grub.cfg, один для 32-битных, один для 64-битных (у меня действительно четыре параметра, так как для двух я установил параметр dostartx в загрузиться прямо на GUI).
  • после загрузки я могу извлечь USB-флешку (весь Live Linux находится в ramdrive благодаря такому docache), нет необходимости вводить какую-либо команду, pendrive не монтируется (опять же, благодаря параметру docache).

С помощью этой флешки я могу загружать старый компьютер (если они позволяют загружаться с USB) в 32-битной или 64-битной версии (если они имеют расширение для процессора), но загружаться в режиме BIOS.

С помощью этой флешки я также могу загрузить новый компьютер (если они позволяют загружаться с USB) в 32-битной и 64-битной версиях, но загружается в режиме UEFI (ах, да, он может загружаться в режиме UEFI, а затем просто загружать Linux Live SystemRescueCD в 32-битной версии). режим, а также в 64-битном режиме).

Таким образом, у меня есть все в одном USB-накопителе, загрузочном носителе, способном загружаться практически на всех ПК, современных или старых (нужна только поддержка загрузки через USB), независимо от того, 32 бит или 64 бита, BIOS или UEFI и т. Д ... и я могу выберите то, что я хочу запустить 32 бита или 64 бита.

Более того, я тестировал на ПК, который отказывается устанавливать Windows 64-битную версию (старый 32-битный процессор), но при этом может запускать 64-битную версию Linux Live (поскольку на этом процессоре есть возможность PAE).

Примечание: такой первый раздел, как NTFS, предназначен для хранения данных, которые можно использовать совместно с Windows 7 и более поздними версиями (XP не увидит его, поскольку не поддерживает разбиение GPT) ... он должен быть первым, нет необходимости находиться на начальном часть диска, может находиться где угодно, но, как правило, находится в качестве первой записи в таблице разделов, это вызвано ненавистным режимом Windows для монтирования разделов на съемных, в нем специально запрограммирован код, позволяющий избежать доступа больше, чем к первому разделу, поэтому не может смонтировать остальные одновременно.

Дополнительно для разделов Windows и USB: если вы поменяете местами записи разделов в таблице partitiong, другими словами, вы поместите раздел, к которому хотите получить доступ, как первый в таблице, окна позволят вам получить к нему доступ (если его формат понятен, fat32 и NTFS напрямую, ext2 со специальными драйверами и т. д.), но разрешит доступ только к тому, который находится в первой записи таблицы разделов ... есть инструмент (называемый BootICEx86.exe), который может выполнять такую ​​работу в Windows даже не нужно отключать USB-флешку.

Супер экстра: есть также некоторые pendrives (мне очень повезло, что у меня есть Sony 16GiB), которые можно немного изменить с помощью специальных инструментов (мой с инструментом от lexar), поэтому они представляются Windows как жесткий диск USB вместо USB-накопителя после этого изменения все окна позволят вам удалять, создавать и управлять разделами на нем, также можно смонтировать более одного одновременно, каждое со своей буквой.

Пользователи Linux не беспокоятся об этом, так как Linux рассматривает его как разделяемое блочное устройство и не реализует специальный код для блокировки монтирования разделов и т. Д., Как в Windows.

О, да, этот последний абзац написан на тот случай, если кто-то на M $ прочитает их, поэтому их лицо опускается на пол, я пытаюсь (не пойму никогда, я знаю, что это потерянный объект), чтобы они удалили такие некрасивый код из Windows и позволяет пользователям иметь разделы на флешке в родном виде.

Claudio
источник