Процесс загрузки - почему два этапа для отдельных приложений refind и GRUB

У меня есть Macbook с OSx и Xubuntu16.04, но, похоже, я ничего не понимаю о процессе загрузки.

Я просто хотел выбрать при загрузке, какую ОС я начал, OSx или Xubuntu - но случается, что выбор представляется мне дважды - сначала в графическом интерфейсе с переделкой, а во-вторых, в виде текстового выделения с помощью GRUB.

Как выбрать один вариант? И предпочтительнее переустановить?

Спасибо

2
задан 25 April 2017 в 13:08

3 ответа

Решение

Вы можете удалить меню GRUB одним из двух способов:

Переконфигурировать GRUB - вы можете сказать GRUB скрыть свое меню (в этом случае GRUB будет по-прежнему но его меню просто исчезнет). См. Этот вопрос и его ответы, чтобы узнать больше об этом подходе. Использование загрузочного устройства EFI - в вашем меню может быть загрузочный загрузчик EFI; эта деталь неясна из вашего описания. Если это так, вы можете просто выбрать его для запуска таким образом, минуя GRUB и его меню. Если вы не видите такой вариант, вы можете получить их, добавив драйвер файловой системы EFI. Самый простой способ сделать это - это, вероятно, переустановка rEFInd. При запуске в OS X скрипт установки ищет разделы Linux и, если он найден, автоматически устанавливает драйвер ext4fs. При запуске в Linux сценарий установки добавляет драйвер для файловой системы, которая содержит ядро, если этот драйвер доступен. (rEFInd поставляется с драйверами для ext2 / 3fs, ext4fs, ReiserFS и Btrfs, но не для XFS или JFS.) Если вы можете заставить систему загружаться с загрузчиком EFI stup, возможно, вы оставите два способа загрузки Ubuntu от rEFInd - загрузчик EFI и GRUB. Я рекомендую оставить оба на месте, поскольку избыточность может оказаться полезной, если возникнет проблема с одним подходом в будущем; однако, если вы хотите скрыть его, вы можете сделать это с опциями dont_scan_dirs или dont_scan_files в refind.conf; или если вы загружаетесь через GRUB в режиме BIOS, вы можете раскомментировать параметр scanfor и убедиться, что hdbios не входит в число опций. См. Эту страницу документации rEFInd - прочитайте раздел «Скрывать и отображать загрузочные устройства EFI» или найдите dont_scan на странице.

Фоновая информация: Объяснение (tl; dr)

rEFInd - менеджер загрузки, что означает, что он представляет вам меню параметров загрузки и позволяет выбрать один из вариантов. Это контрастирует с загрузчиком, который загружает ядро ​​ОС в память и запускает его. Всякий раз, когда запускается rEFInd, он сканирует компьютер для загрузчиков EFI, которые попадают в две или три категории, в зависимости от того, как вы рассчитываете:

Переконфигурирование GRUB - вы можете сказать GRUB скрыть свои (в этом случае GRUB по-прежнему будет использоваться, но его меню просто исчезнет). Подробнее см. Этот вопрос и его ответы. Реконфигурация GRUB - все они запускаются одинаково, но rEFInd включает код, который делает общий случай и особый случай внутри Эта категория: Обычные файлы .efi. Большинство загрузчиков EFI входят в файлы с именами, которые заканчиваются на .efi, например grubx64.efi, который является версией GRUB в режиме EFI. Для большинства этих файлов rEFInd просто запускает их без параметров. (Есть некоторые исключения из этого правила, но вы не должны беспокоиться о них.) Возможно, это то, что вы видите при запуске Ubuntu из rEFInd. Ядра Linux. Начиная с версии 3.3.0, ядро ​​Linux предоставило функцию, называемую загрузчиком stub EFI, которая превращает ядро ​​Linux в свой собственный загрузчик EFI - его можно запустить как программу EFI. Таким образом, rEFInd ищет общие имена файлов Linux Linux (vmlinuz-* в случае Ubuntu), и, если беглый чек делает их похожими на исполняемые EFI-программы, добавляет их в свое меню. rEFInd также может находить совпадающие файлы начального RAM-диска (initrd) и может передавать параметры, которые необходимо загружать ядру, либо путем извлечения данных из файлов, таких как Linux /etc/fstab, либо с помощью специального файла конфигурации refind_linux.conf, что установочный скрипт rEFInd генерируется, чтобы идти вместе с ядрами. Критически, rEFInd может найти ядра Linux только в файловых системах, которые он может читать. Большинство EFI могут читать только файловые системы FAT, но ядра Linux обычно идут на ext2 / 3 / 4fs, Btrfs или какую-либо другую файловую систему Linux. Таким образом, вы увидите опции загрузки ядра Linux в меню rEFInd, только если вы скопируете ядра в файловую систему FAT или добавите драйверы файловой системы EFI к установке rEFInd.

Когда вы используете rEFInd либо с загрузчиком BIOS-режима, либо с обычным загрузчиком EFI-режима, например GRUB, rEFInd передает управление этому загрузчику, который может взаимодействовать с пользователем. GRUB, в частности, является менеджером , загрузчиком и менеджером загрузки, поэтому вы, вероятно, увидите меню GRUB после запуска rEFInd. Большинство других ОС имеют гораздо более простые загрузчики, чем GRUB; эти загрузчики запускают свои ОС без необходимости предлагать меню параметров, за исключением, возможно, если что-то пойдет не так.

Загрузочный загрузчик EFI - гораздо более простой загрузчик, чем GRUB; он не представляет свое собственное меню менеджера загрузки. Таким образом, когда вы используете rEFInd для запуска ядра Linux через его загрузчик EFI, вы не увидите последующего меню.

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

1
ответ дан 22 May 2018 в 23:15
  • 1
    Ничего себе, фантастическая информация здесь Род, спасибо большое. Много чтения и понимания для меня, чтобы продолжать. Очень признателен. – John 25 April 2017 в 18:09
  • 2
    Превосходный ответ, как обычно. На моем Macbook я решил, что мне действительно нужно удалить загрузчик из раздела, и я обрезал загрузочный код из загрузочной записи. Таким образом, ваше удивительное программное обеспечение не будет перечислять GRUB как запись, а только ядра. Это было сделано, потому что я все еще хотел обнаружить устаревшие загрузчики на внешних USB-накопителях, поэтому я не хотел полностью отключать сканирование загрузочного сектора. – Andrea Lazzarotto 27 April 2017 в 01:07
  • 3
    @Andrea, обратите внимание, что rEFInd позволяет обнаруживать или игнорировать загрузчики BIOS-режима отдельно для внутренних, внешних и оптических устройств. Для этого раскомментируйте и отредактируйте строку scanfor: hdbios активирует обнаружение загрузчика диска BIOS, biosexternal применяется к внешним дискам, а cd относится к оптическим дискам. (Опции internal, external и optical делают то же самое для загрузок в EFI-режиме.) Тем не менее, уничтожение нежелательного загрузчика режима BIOS с помощью dd также выполнит эту работу. Однако это более рискованный подход. – Rod Smith 28 April 2017 в 20:32
  • 4
    Ах, я этого не знал. Спасибо! Это очень хорошо знать. Я также скептически относился к вытиранию всего PBR. IIRC Я просто запустил байты команд байта машинного кода или что-то в этом роде, поэтому он не выглядел как исполняемый файл. – Andrea Lazzarotto 29 April 2017 в 01:04
  • 5
    BTW @John IMHO лучший «опыт». чтобы получить то, что вы хотите, скрывает GRUB от rEFInd, как объяснил Род, а затем использовать записи одного ядра для загрузки. Это то, что я лично делаю, и это очень чисто при загрузке Mac, с минимальной темой вы можете получить только две большие значки и немного больше. :) Конечно, это зависит и от вашего вкуса. – Andrea Lazzarotto 29 April 2017 в 01:05

Решение

Вы можете удалить меню GRUB одним из двух способов:

Переконфигурировать GRUB - вы можете сказать GRUB скрыть свое меню (в этом случае GRUB будет по-прежнему но его меню просто исчезнет). См. Этот вопрос и его ответы, чтобы узнать больше об этом подходе. Использование загрузочного устройства EFI - в вашем меню может быть загрузочный загрузчик EFI; эта деталь неясна из вашего описания. Если это так, вы можете просто выбрать его для запуска таким образом, минуя GRUB и его меню. Если вы не видите такой вариант, вы можете получить их, добавив драйвер файловой системы EFI. Самый простой способ сделать это - это, вероятно, переустановка rEFInd. При запуске в OS X скрипт установки ищет разделы Linux и, если он найден, автоматически устанавливает драйвер ext4fs. При запуске в Linux сценарий установки добавляет драйвер для файловой системы, которая содержит ядро, если этот драйвер доступен. (rEFInd поставляется с драйверами для ext2 / 3fs, ext4fs, ReiserFS и Btrfs, но не для XFS или JFS.) Если вы можете заставить систему загружаться с загрузчиком EFI stup, возможно, вы оставите два способа загрузки Ubuntu от rEFInd - загрузчик EFI и GRUB. Я рекомендую оставить оба на месте, поскольку избыточность может оказаться полезной, если возникнет проблема с одним подходом в будущем; однако, если вы хотите скрыть его, вы можете сделать это с опциями dont_scan_dirs или dont_scan_files в refind.conf; или если вы загружаетесь через GRUB в режиме BIOS, вы можете раскомментировать параметр scanfor и убедиться, что hdbios не входит в число опций. См. Эту страницу документации rEFInd - прочитайте раздел «Скрывать и отображать загрузочные устройства EFI» или найдите dont_scan на странице.

Фоновая информация: Объяснение (tl; dr)

rEFInd - менеджер загрузки, что означает, что он представляет вам меню параметров загрузки и позволяет выбрать один из вариантов. Это контрастирует с загрузчиком, который загружает ядро ​​ОС в память и запускает его. Всякий раз, когда запускается rEFInd, он сканирует компьютер для загрузчиков EFI, которые попадают в две или три категории, в зависимости от того, как вы рассчитываете:

Переконфигурирование GRUB - вы можете сказать GRUB скрыть свои (в этом случае GRUB по-прежнему будет использоваться, но его меню просто исчезнет). Подробнее см. Этот вопрос и его ответы. Реконфигурация GRUB - все они запускаются одинаково, но rEFInd включает код, который делает общий случай и особый случай внутри Эта категория: Обычные файлы .efi. Большинство загрузчиков EFI входят в файлы с именами, которые заканчиваются на .efi, например grubx64.efi, который является версией GRUB в режиме EFI. Для большинства этих файлов rEFInd просто запускает их без параметров. (Есть некоторые исключения из этого правила, но вы не должны беспокоиться о них.) Возможно, это то, что вы видите при запуске Ubuntu из rEFInd. Ядра Linux. Начиная с версии 3.3.0, ядро ​​Linux предоставило функцию, называемую загрузчиком stub EFI, которая превращает ядро ​​Linux в свой собственный загрузчик EFI - его можно запустить как программу EFI. Таким образом, rEFInd ищет общие имена файлов Linux Linux (vmlinuz-* в случае Ubuntu), и, если беглый чек делает их похожими на исполняемые EFI-программы, добавляет их в свое меню. rEFInd также может находить совпадающие файлы начального RAM-диска (initrd) и может передавать параметры, которые необходимо загружать ядру, либо путем извлечения данных из файлов, таких как Linux /etc/fstab, либо с помощью специального файла конфигурации refind_linux.conf, что установочный скрипт rEFInd генерируется, чтобы идти вместе с ядрами. Критически, rEFInd может найти ядра Linux только в файловых системах, которые он может читать. Большинство EFI могут читать только файловые системы FAT, но ядра Linux обычно идут на ext2 / 3 / 4fs, Btrfs или какую-либо другую файловую систему Linux. Таким образом, вы увидите опции загрузки ядра Linux в меню rEFInd, только если вы скопируете ядра в файловую систему FAT или добавите драйверы файловой системы EFI к установке rEFInd.

Когда вы используете rEFInd либо с загрузчиком BIOS-режима, либо с обычным загрузчиком EFI-режима, например GRUB, rEFInd передает управление этому загрузчику, который может взаимодействовать с пользователем. GRUB, в частности, является менеджером , загрузчиком и менеджером загрузки, поэтому вы, вероятно, увидите меню GRUB после запуска rEFInd. Большинство других ОС имеют гораздо более простые загрузчики, чем GRUB; эти загрузчики запускают свои ОС без необходимости предлагать меню параметров, за исключением, возможно, если что-то пойдет не так.

Загрузочный загрузчик EFI - гораздо более простой загрузчик, чем GRUB; он не представляет свое собственное меню менеджера загрузки. Таким образом, когда вы используете rEFInd для запуска ядра Linux через его загрузчик EFI, вы не увидите последующего меню.

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

1
ответ дан 18 July 2018 в 14:19

Решение

Вы можете удалить меню GRUB одним из двух способов:

Переконфигурировать GRUB - вы можете сказать GRUB скрыть свое меню (в этом случае GRUB будет по-прежнему но его меню просто исчезнет). См. Этот вопрос и его ответы, чтобы узнать больше об этом подходе. Использование загрузочного устройства EFI - в вашем меню может быть загрузочный загрузчик EFI; эта деталь неясна из вашего описания. Если это так, вы можете просто выбрать его для запуска таким образом, минуя GRUB и его меню. Если вы не видите такой вариант, вы можете получить их, добавив драйвер файловой системы EFI. Самый простой способ сделать это - это, вероятно, переустановка rEFInd. При запуске в OS X скрипт установки ищет разделы Linux и, если он найден, автоматически устанавливает драйвер ext4fs. При запуске в Linux сценарий установки добавляет драйвер для файловой системы, которая содержит ядро, если этот драйвер доступен. (rEFInd поставляется с драйверами для ext2 / 3fs, ext4fs, ReiserFS и Btrfs, но не для XFS или JFS.) Если вы можете заставить систему загружаться с загрузчиком EFI stup, возможно, вы оставите два способа загрузки Ubuntu от rEFInd - загрузчик EFI и GRUB. Я рекомендую оставить оба на месте, поскольку избыточность может оказаться полезной, если возникнет проблема с одним подходом в будущем; однако, если вы хотите скрыть его, вы можете сделать это с опциями dont_scan_dirs или dont_scan_files в refind.conf; или если вы загружаетесь через GRUB в режиме BIOS, вы можете раскомментировать параметр scanfor и убедиться, что hdbios не входит в число опций. См. Эту страницу документации rEFInd - прочитайте раздел «Скрывать и отображать загрузочные устройства EFI» или найдите dont_scan на странице.

Фоновая информация: Объяснение (tl; dr)

rEFInd - менеджер загрузки, что означает, что он представляет вам меню параметров загрузки и позволяет выбрать один из вариантов. Это контрастирует с загрузчиком, который загружает ядро ​​ОС в память и запускает его. Всякий раз, когда запускается rEFInd, он сканирует компьютер для загрузчиков EFI, которые попадают в две или три категории, в зависимости от того, как вы рассчитываете:

Переконфигурирование GRUB - вы можете сказать GRUB скрыть свои (в этом случае GRUB по-прежнему будет использоваться, но его меню просто исчезнет). Подробнее см. Этот вопрос и его ответы. Реконфигурация GRUB - все они запускаются одинаково, но rEFInd включает код, который делает общий случай и особый случай внутри Эта категория: Обычные файлы .efi. Большинство загрузчиков EFI входят в файлы с именами, которые заканчиваются на .efi, например grubx64.efi, который является версией GRUB в режиме EFI. Для большинства этих файлов rEFInd просто запускает их без параметров. (Есть некоторые исключения из этого правила, но вы не должны беспокоиться о них.) Возможно, это то, что вы видите при запуске Ubuntu из rEFInd. Ядра Linux. Начиная с версии 3.3.0, ядро ​​Linux предоставило функцию, называемую загрузчиком stub EFI, которая превращает ядро ​​Linux в свой собственный загрузчик EFI - его можно запустить как программу EFI. Таким образом, rEFInd ищет общие имена файлов Linux Linux (vmlinuz-* в случае Ubuntu), и, если беглый чек делает их похожими на исполняемые EFI-программы, добавляет их в свое меню. rEFInd также может находить совпадающие файлы начального RAM-диска (initrd) и может передавать параметры, которые необходимо загружать ядру, либо путем извлечения данных из файлов, таких как Linux /etc/fstab, либо с помощью специального файла конфигурации refind_linux.conf, что установочный скрипт rEFInd генерируется, чтобы идти вместе с ядрами. Критически, rEFInd может найти ядра Linux только в файловых системах, которые он может читать. Большинство EFI могут читать только файловые системы FAT, но ядра Linux обычно идут на ext2 / 3 / 4fs, Btrfs или какую-либо другую файловую систему Linux. Таким образом, вы увидите опции загрузки ядра Linux в меню rEFInd, только если вы скопируете ядра в файловую систему FAT или добавите драйверы файловой системы EFI к установке rEFInd.

Когда вы используете rEFInd либо с загрузчиком BIOS-режима, либо с обычным загрузчиком EFI-режима, например GRUB, rEFInd передает управление этому загрузчику, который может взаимодействовать с пользователем. GRUB, в частности, является менеджером , загрузчиком и менеджером загрузки, поэтому вы, вероятно, увидите меню GRUB после запуска rEFInd. Большинство других ОС имеют гораздо более простые загрузчики, чем GRUB; эти загрузчики запускают свои ОС без необходимости предлагать меню параметров, за исключением, возможно, если что-то пойдет не так.

Загрузочный загрузчик EFI - гораздо более простой загрузчик, чем GRUB; он не представляет свое собственное меню менеджера загрузки. Таким образом, когда вы используете rEFInd для запуска ядра Linux через его загрузчик EFI, вы не увидите последующего меню.

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

1
ответ дан 24 July 2018 в 20:22

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

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