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

0

Я запускаю 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 без потери существующих установок ОС?

    
задан Benjamin Daines 01.09.2013 в 23:00
источник

2 ответа

1

Попробуйте следующее:

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

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

Если это работает, и если вы не выполняете тройную загрузку с Windows, вы можете:

  • Измените /EFI/refind/refind.conf , раскомментируйте строку scanfor и убедитесь, что hdbios отсутствует. Это приведет к тому, что старый GRUB BIOS-режима будет отображаться как параметры загрузки rEFInd.
  • Удалите гибридный MBR с вашего жесткого диска. Вы можете сделать это, отредактировав таблицу разделов с помощью parted или GParted (просто сделайте какие-либо тривиальные изменения) или установив пакет gdisk , запустив gdisk на вашем диске, набрав x , чтобы попасть в меню экспертов , набрав n для создания нового защитного MBR и набрав w , чтобы сохранить ваши изменения. Удаление гибридного MBR уменьшит вероятность того, что это вызовет проблемы в будущем.
ответ дан Rod Smith 02.09.2013 в 01:29
источник
1

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

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

  1. В Linux загрузите и установите любым способом, которым вы предпочитаете пакеты mactel-boot и hfsprogs .
  2. Используйте GParted, например, чтобы изменить размер существующей схемы разделов и создать место для нового крошечного раздела, скажем, 100 Мбайт или меньше, который вы отформатируете как файловую систему HFS +. Если вы установили hfsprogs, это можно сделать легко с помощью графического интерфейса GParted или, альтернативно, с помощью команды mkfs.hfsplus /dev/sdaX , где X - номер вновь созданного раздела (я бы предположил 7 в вашем случае, т.е. / dev / sda7 ).
  3. Установите новый раздел HFS + в любую точку монтирования, которую вы можете пожелать. Это совсем не важно. В конце процесса вы даже можете отредактировать файл fstab, чтобы предотвратить автоматическое монтирование этого раздела при входе в систему.
  4. Скопируйте свое активное ядро в этот раздел. Вам не нужно копировать все, только vmlinuz-x.y.z-whatever.efi.signed и initrd-x.y.z-whatever.img. ВАЖНЫЙ! Ядро должно быть переименовано в нечто, заканчивающееся на «efi», иначе прошивка Apple откажется выполнять свой код. Вы можете переименовать его в vmlinuz-x.y.z-whatever.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 тихий всплеск и т. д.).
  6. Благослови вновь скопированное ядро командой hfs-bless "<MountPoint of your HFS+ partition>\vmlinuz.efi" (например, hfs-bless "/mnt/pureEfiBoot/vmlinuz.efi"
  7. Готово. Перезагрузитесь и наслаждайтесь.

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

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

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

ответ дан Caraffande 21.12.2015 в 15:07