How to keep grub independent of all the OSes?

I currently have the following partition scheme.

300MB    NTFS          Recovery  
100MB    FAT32         LOOKS LIKE IT IS THE EFI BOOT PARTITION  
128MB    Other         This is empty and thus I suspect it to be the padding partition
150GB    NTFS          Windows
700GB    NTFS          Data partition
80.53GB  Unallocated

I want to install в lot of different Linux distros over украл (some of them май be uninstalled in the process, some overwritten) and want в bootloader configuration that would be able to keep up and not break.

I have read about chainloading them and about в dedicated grub2 partition and also the scheme where people install ubuntu and delete the / partition but keep the/boot to использовал туз grub.

I was looking for the pros and cons of each of these.

Also, I wanted to ask if I хан make the dedicated grub2 partition in the start or end of the unallocated space? I think I will go with the dedicated grub setup. I read about rEFInd bootloader somewhere and it looks like в no-maintainance required tool. Совместимый Would it be with every Linux distro out there?

PS: I am fairly new to bootloaders and the deepest I have been was editing some grub.cfg поля to move the Windows entry to the top and to переямс the entries.

PPS: Some background info: I had installed both Ubuntu and Ubuntu GNOME (both 15.04) in the unallocated space using 40GB for each. I then wanted to keep only Ubuntu GNOME but I had installed Убунту Унити after I had installed Ubuntu GNOME. So deleting Убунту Унити would make the grub disappear. I want to avoid these kind of scenarios by keeping GRUB2 independent of every other thing.

1
задан 2 December 2015 в 19:36

2 ответа

Проблема с конфигурацией нескольких-дистрибутивов-Linux состоит в том, что Вы закончите с несколькими установками GRUB, который избыточен и сбивает с толку. Каждое распределение настроит свой собственный GRUB как значение по умолчанию и настроит его или к chainload ЛИЧИНКИ других дистрибутивов или загружать их ядра непосредственно (или возможно делать обе вещи). Существуют проблемы с этим:

  • при начальной загрузке распределения, GRUB которого является не основной и обновляет свое ядро, возможности являются конфигурацией GRUB управления, не будет обновлен. Если GRUB управления загружает ядра других дистрибутивов непосредственно и если обновления ядра происходят достаточно часто, распределение с обновленными ядрами может прекратить загружаться, потому что исходные ядра закончатся. Даже если распределение продолжит загружаться, то это будет через более старое ядро, которое может иметь безопасность или другие проблемы. Необходимо будет тогда перейти к распределению, GRUB которого является главным и работает update-grub (или что-то эквивалентное) для получения его работающий снова. chainload конфигурация более устойчива против таких проблем, поэтому если у Вас есть выбор, это - то, как я настроил ее.
  • После обновления их собственных пакетов GRUB, много дистрибутивов попытаются сбросить свои собственные ЛИЧИНКИ как значение по умолчанию. Результат может состоять в том, что то, которое GRUB загружает сначала, изменится время от времени. Если Вы делаете лучшее задание, чем другие, необходимо будет тогда использовать efibootmgr для сброса приоритетов загрузки время от времени.
  • при удалении распределения, GRUB которого запускается по умолчанию, возможности являются его GRUB, прекратит работать. (Это не всегда имеет место, так как это зависит от того, где GRUB хранит свои конфигурационные файлы, но это - способ, которым большинство дистрибутивов настраивает вещи.) Можно обойти эту проблему при помощи встроенного диспетчера начальной загрузки встроенного микропрограммного обеспечения, но это - все еще неприятность - и серьезная проблема для пользователей, которые не знают, как использовать диспетчер начальной загрузки встроенного микропрограммного обеспечения. (После того, как первая начальная загрузка, когда это происходит, необходимо было бы установить другое распределение или использование efibootmgr для устанавливания другого GRUB по умолчанию, чтобы избежать необходимости использовать диспетчер начальной загрузки встроенного микропрограммного обеспечения.)

Эти проблемы весьма преодолимы, но они - неприятности. При установке один диспетчер начальной загрузки как значение по умолчанию обходит эти проблемы, но обычно требует ручной конфигурации, это, вероятно, приложит больше усилий, чем это делает для преодоления проблем, которые я только что описал. повторно найдите (который я поддерживаю), разработан для обхода этих проблем, будучи менее зависящим от конфигурационных файлов. В частности, повторно найдите, не нуждается в конфигурации на ядро, в которой действительно нужен любой загрузчик Linux, о котором я знаю. Вместо этого повторно найдите, полагается на конфигурационный файл, который предоставляет возможности, которые относятся каждый ядро в данном каталоге. Это требует некоторой явной первичной конфигурации, когда Вы устанавливаете распределение, но это - вопрос выполнения одного сценария, который идет, повторно находят (mkrlconf). После этого при обновлении ядра повторно найдите, не нуждается в реконфигурировании; это просто выбирает старые варианты и применяет их к новому ядру. (Обратите внимание, что GRUB действительно нужно реконфигурирование после обновления ядра. Ubuntu скрывает это под управлением сценариями, чтобы сделать реконфигурирование как часть обновления/процесса установки ядра - но, как отмечено ранее, эти сценарии обновляют всего конфигурацию одного GRUB, которая не могла бы быть той, которая должна быть обновлена.)

, Если Вы устанавливаете, повторно находят, у Вас все еще будет проблема каждого распределения, пытающегося установить его собственный GRUB по умолчанию. Обычно существуют пути вокруг этого, все же. Для Ubuntu, вместо того, чтобы загрузить носитель установки и выбрать опцию установить непосредственно, необходимо загрузиться к "попытке прежде, чем установить" режим, открыть Окно терминала и затем тип ubiquity -b. Это запустит установщик и скажет его не GRUB установки. Тот же прием может, очевидно, также использоваться, если Вы хотите, чтобы GRUB некоторого другого распределения обработал все. Для начальной загрузки после установки таким образом перенаходка, должно быть, была уже установлена; или Вы могли загрузиться с перенаходкой на карте флэш-памяти с интерфейсом USB или CD-R и установить его тогда.

можно хотеть выяснить, как легкий это должно отключить GRUB в каждом распределении, которое Вы планируете установить. Используя ту информацию, в сочетании с Вашими собственными планами и приоритетами, можно решить, какой (s) Вы хотите установить и которые Вы хотите обойти.

Другая опция ко всему этому состоит в том, чтобы использовать виртуализацию, как VirtualBox. Если у Вас есть достаточно памяти, можно выполнить полдюжины дистрибутивов одновременно в виртуальных машинах, в то время как другой управляет компьютером в целом. Этот подход обходит конфликты загрузчика, делая конфигурацию намного более простой - каждая ОС полностью отвечает за свой собственный "компьютер".

3
ответ дан 7 December 2019 в 12:42

Как @oldfred и @Wilf указали в комментариях, GRUB2 назрел много и может обработать ситуации, которые я упомянул удобно. Решение следовать:

  1. Берут резервное копирование Вашего ESP или EFI или Раздела начальной загрузки (раздел FAT32).
  2. Установка дистрибутивы Linux Вы хотите разделить разделы (можно легко установить весь дистрибутив на сингле / раздел вместо того, чтобы заставить отдельный / загрузиться)
  3. дистрибутив, который мы установим последнее, будет ведущее устройство, и его личинка будет использоваться.
  4. В случае, если Вы хотите, можно вручную отредактировать grub.cfg в каталоге EFI/distro на разделе EFI для управления всеми загрузчиками.

Объяснение того, как это работает:

GRUB2 устанавливает себя на / начальной загрузке дистрибутива и делает grub.cfg в подкаталоге в разделе EFI который тогда chainloads фактическая личинка.

0
ответ дан 7 December 2019 в 12:42

Другие вопросы по тегам:

Похожие вопросы: