Предлагаю несколько вольный перевод программиста Gentoo о правильном способе загрузке на ноутах с EFI вместо BIOC-а на борту.
Мне недавно купили Macbook Pro 13.3 дюйм и я решил поставить на нём Gentoo Linux.
Сказано — сделано. В целом инсталляция прошла успешно, не считая маленьких недоразумений вроде неработающей клавы из под LiveCD, ядро видит консоль только с
Единственное, что немного меня напрягало, это эмуляция BIOS-а. Маки используют для загрузки интеловский EFI, а для остальных ОС Apple добавило уровень эмуляции BIOS-а. Именно так Ubuntu и грузится на Маках.
Мне же это показалось неверным в техническом плане и в принципе. Я немного поднапрягся и мне удалось запустить ядро Linux из под EFI без всяких эмуляций. Документации достаточно мало, поэтому хочу поделиться своим способом.
Можно использовать
Инструкции по установке EFI образа
Конечно же надо выставить в ядре поддержку EFI, но на этом уже всё. Теперь вы осознаете с некоторым маниакально-навязчивым удовлетворением, что не должны подключать лишнее звено для поддержки еще одного проприетарного интерфейса, находящегося за пределами вашей видимости и контроля.
Мне недавно купили Macbook Pro 13.3 дюйм и я решил поставить на нём Gentoo Linux.
Сказано — сделано. В целом инсталляция прошла успешно, не считая маленьких недоразумений вроде неработающей клавы из под LiveCD, ядро видит консоль только с
vesafb
.Единственное, что немного меня напрягало, это эмуляция BIOS-а. Маки используют для загрузки интеловский EFI, а для остальных ОС Apple добавило уровень эмуляции BIOS-а. Именно так Ubuntu и грузится на Маках.
Мне же это показалось неверным в техническом плане и в принципе. Я немного поднапрягся и мне удалось запустить ядро Linux из под EFI без всяких эмуляций. Документации достаточно мало, поэтому хочу поделиться своим способом.
- EFI стартует при загрузке.
- Запускает rEFIt, программа, которая расширяет возможности дефолтного загрузчика, добавляя нормальное загрузочное меню, командную строку, и т. п.
- Сканирует
FAT/HFS
разделы (ext* не поддерживаются) ища загрузочный, который содержал бы каталог/efi/
; и загрузочные образы. - Запускает образ
Grub2
EFI сFAT
раздела. - Загружает ядро Linux с
/boot
(+initrd/initramfs
если задано). - Ядро, как обычно, загружается с корневого раздела, можно выбрать любую файловую систему.
Можно использовать
elilo
, но Grub2
(точнее Grub 1.97.1
) справляется лучше, вернее это единственное, что хоть как-то работает с небольшими модификациями (добавить в ebuild USE флаг efi
через --with-platform=efi
). У меня получилось настроить /boot
раздел на файловую систему FAT, но от этого падает installkernel
скрипт запускаемый из директории исходников ядра, который создает символические ссылки на новый и предыдущий образы ядра.Инструкции по установке EFI образа
Grub2
тут. Установите образ EFI в директорию, что-то наподобие /efi/grub
(обязательно должен быть путь /efi
). Команды bless
можно пропустить, они для OS X. Можете создать простенький конфиг-файл командой grub-mkconfig
и затем модифицировать его. Однако, для того, чтобы сделать По Уму™ вручную отредактируйте файлы из /etc/grub.d/
.Конечно же надо выставить в ядре поддержку EFI, но на этом уже всё. Теперь вы осознаете с некоторым маниакально-навязчивым удовлетворением, что не должны подключать лишнее звено для поддержки еще одного проприетарного интерфейса, находящегося за пределами вашей видимости и контроля.