Intereting Posts
SSH не работает с одного компьютера Поиск простой панели X Window / док-станции с функцией «привязки» значка от Windows 7 Sed – заменить символ в соответствующей строке на месте? ZSH: путь удаления, имя файла и расширение из списка файлов для соединения команды Клавиши смены терминала Пользовательский графический интерфейс без среды рабочего стола Как выполнить команду внутри сценария оболочки без открытия новой оболочки Добавить переменную среды для выполнения задачи «Сделать» Не удается запустить приложение, которое зависит от X как службы systemd Обнаружение массива MDADM Замедление загрузки – почему? как узнать тип симметричного шифрования, используемый ssh? Почему mac os x не устанавливает бит uid для / usr / bin / passwd Маршрутизация пакетов между сетями IPv4 и IPv6 на разных интерфейсах Команда SSH с перенаправлением файлов не работает Как разрешить Page Up на экране GNU?

Как я могу с двумя загрузками FreeBSD и PC-BSD – с GRUB2 в MBR?

У меня есть компьютер с несколькими операционными системами, установленными на разных разделах:

  1. FreeBSD
  2. PC-BSD
  3. Solaris
  4. Расширенный раздел
  5. / -разборка для Linux-Mint
  6. Обмен для Linux-Mint
  7. / home для Linux-Mint
  8. / -partition (и все) для Linux CentOS

Моя основная ОС – Linux-Mint, производный Ubuntu.

У меня GRUB2 установлен в MBR, и он (GRUB) использует данные из установки Linux-Mint (/ boot / grub и т. Д.).

В FreeBSD и PC-BSD каждый из них имеет свой собственный загрузочный загрузчик 2-го этапа в своем разделе. Solaris имеет собственную GRUB-установку в своем разделе (который выполняет роль загрузчика 2-го этапа, позволяя мне выбирать между различными ядрами Solaris). Linux-Mint и CentOS загружаются GRUB в MBR.

+++

Моя проблема – FreeBSD и PC-BSD – они просто не будут хорошо играть с афоризмой! Несмотря на то, что я указал разные корневые разделы и т. Д. В записях GRUB для двух BSD-инсталляций; загружается тот же самый (либо FreeBSD, либо PC-BSD), независимо от того, выбран ли я из FreeBSD или PC-BSD из меню GRUB.

Загрузка * BSD представляется трехэтапным процессом: MBR-загрузчик (1-й этап) загружает 2-й этап в BSD-разделах, который, наконец, загружает фактическое ядро ​​(3-й этап).

Наконец, опустившись до RTFM о загрузке в * BSD, я обнаружил следующую лакомый кусочек о BSD-загрузчике 2-го этапа (который был установлен на обоих моих BSD-разделах):

  • Если BSD-раздел не помечен как активный (загрузочный) в таблице разделов, тогда загрузчик начнет загрузку 3-го этапа BSD-ядра, застывшего в 1-м разделе BSD на диске, независимо от того, из какого BSD-раздел загружен 2-й этап. В моем случае он всегда будет загружать FreeBSD (поскольку он первый).
  • Если, с другой стороны, BSD-раздел помечен как активный (загрузочный), это будет BSD-ядро, которое будет загружено как 3-й этап. В моем случае я либо всегда получаю FreeBSD, либо всегда получаю PC-BSD.

Неужели это должно быть каким-то образом ?! Возможно, каким-то образом пропустите 2-й этап, и GRUB загрузит ядро ​​третьей ступени напрямую, а затем различные ядра в зависимости от моего выбора … Или, возможно, некоторые специальные аргументы или конфигурации для второго этапа – или, возможно, альтернативный загрузчик второй стадии? Кто-то здесь сталкивался с подобной проблемой и решил ее?

PS: Установка GRUB в MBR, перезапись загрузочного загрузчика 1-го этапа, установленного FreeBSD (и PC-BSD). Я уверен, что использование первого этапа FreeBSD решило бы мою проблему, поскольку проблема заключается в загрузке второго этапа (AFAIK).

Во-первых, я бы не использовал MBR, потому что у вас там 4 ОС, и это далеко не удастся. Вы должны иметь / boot-раздел как основной, а не расширенный. Таким образом, вы либо выбрасываете установку Solaris, либо Linux. Загрузка в FreeBSD (или PC-BSD … независимо от того, что не имеет значения) с GRUB2 проста. Вы просто определяете свой «set root = …», а затем говорите «kfreebsd / boot / loader», и там вы идете. Для вашего типа я бы использовал таблицу разделов GUID / GPT, там вы также можете разбить все разделы на нее, тогда вам не нужно иметь дополнительные BSD-фрагменты.