Как конвертировать загрузку Mac BIOS в загрузку EFI?

Я использую Kubuntu 13.04 на своем MacBook Pro (8,2), и я настроил его для загрузки с помощью эмуляции BIOS Apple. Я хотел бы использовать Intel вместо видеокарты ATI. Это означает, что мне нужно будет загрузить систему через EFI. Я не хочу делать чистую установку. Самое большее, что я могу получить, это grub-efi, но я не могу загрузить ядро ​​оттуда.

Моя схема разделов:

/dev/sda1 = EFI
/dev/sda2 = Mac OS
/dev/sda3 = root
/dev/sda4 = boot
/dev/sda5 = home
/dev/sda6 = swap

Как я могу добиться загрузки EFI при установке загрузки BIOS, не теряя при этом мои существующие установки ОС?

0
задан 11 August 2014 в 15:01

2 ответа

Попробуйте это:

  1. Установите повторно находят в OS X. Можно использовать install.sh сценарий, чтобы сделать это.
  2. Ввести sudo mkdir /EFI/refind/drivers_x64 в Окне терминала OS X. (Если Вы используете --esp опция к install.sh, необходимо будет скорректировать путь для создания этого каталога на ESP.)
  3. Установите перенаходку драйвер EFI для любой файловой системы, которую Вы используете для хранения ядер Linux (обычно ext4fs, но иногда не). Для установки драйвера необходимо скопировать его в drivers или drivers_x64 подкаталог каталога установки перенаходки (/EFI/refind по умолчанию в OS X).
  4. В Linux (даже от начальной загрузки режима BIOS), выполнение mkrlconf.sh сценарий, который идет, повторно находит. Это генерирует a /boot/refind_linux.conf файл, который содержит опции ядра, которые повторно находят передачи в Ваше ядро.

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

Если это работает, и если Вы не тройная начальная загрузка с Windows, можно хотеть:

  • Править /EFI/refind/refind.conf, не прокомментируйте scanfor строка, и гарантирует это hdbios не присутствует. Это сохранит старый режим BIOS GRUB от разоблачения как перенаходка параметры загрузки.
  • Удалите гибридный MBR из своего жесткого диска. Можно сделать это путем редактирования таблицы разделов с parted или GParted (просто вносят любое тривиальное изменение), или путем установки gdisk пакет, запускаясь gdisk на Вашем диске, вводя x добираться до меню экспертов, вводя n генерировать новый защитный MBR и ввод w сохранить Ваши изменения. Удаление гибридного MBR уменьшит разногласия, что это вызовет проблемы в будущем.
0
ответ дан 11 August 2014 в 15:01

Здесь у вас есть другая возможность, то есть полностью обойти и grub , и rEFInd. Следуя этим шагам, вы получите систему, которая изначально загружает в Linux в режиме чистого EFI.
Всякий раз, когда вам нужно загрузиться обратно в OsX, просто нажмите и удерживайте кнопку < alt > сразу после звука звонка вы попадете на встроенный загрузочный экран Apple, где вы можете выбрать раздел OsX для загрузки.

Это пошаговое руководство:

  1. После загрузки в Linux загрузите и установите любым способом, который вы предпочитаете, пакетами mactel-boot и [ 1114] hfsprogs .
  2. Используйте GParted, например, чтобы изменить размер существующей схемы раздела и освободить место для нового крошечного раздела, скажем, 100 МБ или меньше, который вы отформатируете как файловую систему HFS +. Если вы установили hfsprogs, это можно легко сделать с помощью графического интерфейса GParted или, альтернативно, с помощью команды mkfs.hfsplus /dev/sdaX, где X - номер вновь созданного раздела (я бы предположил 7, в вашем случае, т.е. / dev / sda7 ).
  3. Смонтируйте новый раздел HFS + в любой точке монтирования, которую вы пожелаете. Это совсем не важно. В конце процесса вы даже можете отредактировать файл fstab, чтобы предотвратить автоматическое монтирование этого раздела linux при входе в систему.
  4. Скопируйте ваше активное ядро ​​в этот раздел. Вам не нужно копировать все, только vmlinuz-x.y.z-what.efi.signed и initrd-x.y.z-what.img. ВАЖНЫЙ! Ядро должно быть переименовано во что-то, заканчивающееся на 'efi', иначе прошивка Apple откажется выполнять свой код. Вы можете переименовать его в vmlinuz-xyz-what.efi или даже просто в vmlinuz.efi
  5. . Теперь создайте новую загрузочную запись в прошивке EFI, введя команду sudo efibootmgr -c -l '\vmlinuz-x.y.z-whatever.efi' -L 'Ubuntu' -p X -u "<kernel parameters> initrd=\initrd-x.y.z-whatever.img", где X - номер раздела вашего нового устройства. HFS + раздел и < параметры ядра > это параметры, взятые из вашего grub.cfg в пункте меню, соответствующем вашей текущей загрузке (например, root = UUID = de4567fd-55aa-AND-SO-ON ro quiet splash и т. д.)
  6. Благослови вновь Я скопировал ядро ​​с помощью команды hfs-bless "<MountPoint of your HFS+ partition>\vmlinuz.efi" (например, hfs-bless "/mnt/pureEfiBoot/vmlinuz.efi"
  7. Готово. Перезагрузите компьютер и наслаждайтесь.

Основным преимуществом этого подхода является невероятно быстрое время загрузки. на экране входа в систему в течение нескольких секунд, в зависимости от скорости вашего оборудования. Вы можете даже устранить 5-секундную задержку по умолчанию, используя sudo efibootmgr -T

С другой стороны, одним из основных недостатков является что каждый раз, когда вы обновляете ядро, вам нужно вручную обновлять (на данный момент скрытый) раздел HFS +. Если вы этого не сделаете, это не сильно повредит, так как вы будете загружаться со старым ядром. Тем не менее, обновление желательно, и оно может быть выполнено автоматически с использованием сценария оболочки некоторой формы.

Другой (потенциальный) недостаток заключается в том, что на некоторых машинах X может не правильно определить y наша графическая карта при загрузке ядра напрямую.

0
ответ дан 11 August 2014 в 15:01

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

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