- Правильная загрузка ядра linux с EFI на Macbook
- Исправление сломанного раздела EFI на Mac 2021
- ТОП фишек в macOS — для новичков и бывалых!
- Как исправить сломанные разделы EFI с помощью переустановки системного программного обеспечения
- Избавляемся от «EFI Boot» в названии загрузочного диска
- Установка Mac OS X на PC. Часть 19: UEFI-загрузка
- Про EFI, UEFI и Маки
- Что придумали хакинтошники?
- Зачем нужна UEFI-загрузка?
- Какие недостатки имеет UEFI-загрузка?
- Как включить UEFI-загрузку на хакинтоше?
- Как правильно настроить UEFI-загрузку?
Правильная загрузка ядра linux с EFI на Macbook
Предлагаю несколько вольный перевод программиста Gentoo о правильном способе загрузке на ноутах с EFI вместо BIOC-а на борту.
Мне недавно купили 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, но на этом уже всё. Теперь вы осознаете с некоторым маниакально-навязчивым удовлетворением, что не должны подключать лишнее звено для поддержки еще одного проприетарного интерфейса, находящегося за пределами вашей видимости и контроля.
Источник
Исправление сломанного раздела EFI на Mac 2021
ТОП фишек в macOS — для новичков и бывалых!
Хотя это необычное явление, Mac может столкнуться с поврежденным или поврежденным разделом EFI, который обычно препятствует загрузке Mac и загрузке системного программного обеспечения Mac OS. Это обычно демонстрируется в виде экрана загрузки, который прикреплен к логотипу Apple, иногда с курсором ожидания или без него, который вращается бесконечно. Проблема EFI затем подтверждается загрузкой в режиме восстановления и запуском Дисковой утилиты, часто с другого диска.
Поскольку поврежденный раздел EFI может помешать правильному запуску Mac, это может быть проблемой для восстановления. Есть варианты, чтобы попытаться вручную перестроить, создать или восстановить раздел EFI, обычно с помощью fsck, diskutil и сторонних инструментов, таких как got frisk. После недавних проблем с испорченным разделом EFI на Mac я лично нашел самый быстрый и надежный способ исправить раздел EFI и заставить Mac загрузиться снова — это просто переустановить Mac OS X на компьютер . Я возился с другими вариантами, но в конечном итоге простая переустановка системного программного обеспечения Mac OS выполнила работу, с которой я столкнулся.
Это не самое элегантное решение, но переустановка системного программного обеспечения Mac OS должна восстановить сломанный или поврежденный раздел EFI, или, если он отсутствует, он будет воссоздан в процессе установки ОС. Вы можете переустановить Mac OS X любым из трех способов: с помощью загрузочного диска, с помощью Internet Recovery или с помощью обычного режима восстановления, подход которого вы, вероятно, будете зависеть от
Надеемся, что вы сделали полную резервную копию Mac до того, как раздел EFI не удалось начать, в противном случае вам следует выполнить резервное копирование перед попыткой переустановить системное программное обеспечение MacOS.
Как исправить сломанные разделы EFI с помощью переустановки системного программного обеспечения
При загрузке с тома восстановления следует предварительно запустить Дисковую утилиту, чтобы проверить и попытаться восстановить рассматриваемый диск — хотя есть большая вероятность, что вы уже пробовали это, и именно тогда вы обнаружили проблему EFI с самого начала. Если это так, все, что вам нужно сделать, это переустановить Mac OS (или MacOS) как обычно, и это должно быть исправлено в процессе:
- Если Mac не загружается вообще — переустановите Mac OS X с Internet Recovery, для этого требуется стабильное и достаточно быстрое высокоскоростное подключение к Интернету, или вы можете использовать загрузочный диск USB, если он у вас есть.
- Если раздел Mac Recovery работает для загрузки, но не для основной ОС — переустановите Mac OS X с обычным режимом восстановления
Предполагая, что вы решите просто переустановить Mac OS X и не пытаетесь отформатировать диск или делать что-либо еще, тогда будет заменено только системное программное обеспечение Mac OS и раздел EFI будет воссоздан в процессе. Другими словами, никакие личные данные, файлы или приложения не должны быть потеряны в процессе, если все, что вы решите сделать, это переустановить Mac OS X. Если вы идете по пути, отличному от простой переустановки Mac OS X, вы можете потерять данные.
Наконец, следует помнить, что иногда поврежденные или поврежденные разделы EFI могут быть индикатором надвигающегося отказа диска или какой-либо другой проблемы с жестким диском. Если вы подозреваете, что это может иметь место, вы можете попытаться восстановить диск с помощью Дисковой утилиты и запустить Apple Hardware Test на Mac, чтобы увидеть, появляются ли какие-либо аппаратные ошибки диска. Если диск выходит из строя, вам необходимо заменить его, и вы захотите сделать это раньше, чем позже, чтобы избежать потери данных.
Знаете другой метод исправления сломанных EFI-разделов? Есть какие-либо связанные советы или мысли, которые полезны? Дайте нам знать об этом в комментариях!
Источник
Избавляемся от «EFI Boot» в названии загрузочного диска
Бывают ситуации, когда при восстановлении файловой системы, клонировании диска Super Duper! или Carbon Copy Cloner «съезжает» загрузочное имя диска. Когда работает стандартная операционная система, всё в порядке, но вот стоит выключить компьютер и загрузить с нажатой клавишей ⌥ Alt/Option (в этом случае должно открыться окно с выбором загрузочной системы и появляется возможность запустить Мак с другого диска, скажем, с раздела восстановления или Windows), как появляется загадочное имя EFI Boot у вашего диска. И в целом, это не страшно, с этим можно жить без осложнений, система будет загружаться привычным стабильным образом и работать без сбоев. Но случается, что вы пытаетесь запустить ваш Мак с, например, диагностического диска, на котором полтора десятка разделов и все они загрузочные. И половина из них — EFI Boot. Что делать? Кто есть кто и какой раздел выбрать?
Злополучный EFI Boot
Пару десятков диагностических партиций…
Ребята из MacFixIt предлагают восстанавливать файловую систему (обычно после этого как раз и «съезжает» имя тома), клонировать диск альтернативными утилитами, сбрасывать энергонезависимую память и даже форматировать раздел. Но мы пользуемся способами проще.
Присваемое в окне выбора загрузчика имя диска называется «Disk label» (этикетка диска), запись о ней хранится на самом томе по адресу: /System/Library/CoreServices/.disk_label. По существу, всё, что требуется, — сгенерировать новую этикетку для диска. Этим процессом заведует команда «bless» (благословление) в Терминале. Существуют два способа легко и быстро избавиться от ненавистного EFI Boot:
Смените загрузочный том в Системных настройках
Откройте → Системные настройки → Загрузочный том и выберите любой другой загрузочный том (если таковой имеется), а после укажите основной. Смена загрузочного тома принудительно «благословит» диск на работу с этикеткой, соответствующей его названию.
Воспользуйтесь терминальной командой
Если Системные настройки вам не помогают (как, например, в нашем запущенном случае, где половина загрузочных томов скрыта для операционной системы), «благословите» том в Терминале. Синтаксис команды следующий:
sudo bless -folder /Volumes/имярек/System/Library/CoreServices –label «имярек»
Поле «имярек» (без кавычек) замените оригинальным названием диска и приготовьтесь ввести пароль администратора компьютера. После отработки это простой команды хаос с EFI Boot в окне выбора загрузочной системы будет окончен.
Спасибо бесподобному Mike Bombich (программу Carbon Copy Cloner за чьим авторством мы честно купили, ежедневно пользуем и всячески рекомендуем) за разъяснение и наводку.
Источник
Установка Mac OS X на PC. Часть 19: UEFI-загрузка
В этом году на AppStudio появилось множество новых таблиц и разделов. Мы воплотили в жизнь многие затеи и планы. И всё бы отлично, но вот кое за что нас можно пожурить. В 2012-м у нас не получилось уделять должного внимания нашим циклам статей. Но хотя бы под конец года мы немного поправим это упущение — например, очередная статья давно напрашивается в наш большой цикл о теории хакинтоша.
Часто нас спрашивают: «Вы же приличный сайт, про пиратство не пишете, за пару предложений про AppSync отправляете в бан. Так почему же вы рассказываете про такие тёмные дела, как хакинтоши?». Обычно мы отвечаем двумя доводами:
- во-первых, это чертовски интересно. Если сравнить инструментарий, применяемый для настройки хакинтошей сейчас, с тем, что был в 2007-2008 году, отличия будут поразительными. Какие только выдумки не были воплощены в этой динамично меняющейся сфере знаний!
- во-вторых, это полезно для самой Apple. Кто бы что ни говорил, а в голову любого хакинтошника рано или поздно закрадывается мысль «а не пора ли перейти на реальный мак?». И что интересно, многие так и поступают.
В отличие от джейлбрейка, который скоро можно будет окончательно хоронить, с хакинтошами история развивается совсем иначе. Сейчас — отличное время для того, чтобы с ними экспериментировать. Кто бы мог подумать лет пять назад, что когда-нибудь Mac OS X на PС можно будет грузить через EFI-среду? А нынче это не просто модный тренд, это уже мейнстрим.
Про EFI (точнее, про UEFI)-загрузку Mac OS X на PC мы и хотели бы поговорить в девятнадцатой по счёту статье нашего хакинтошного цикла. Как всегда, мы рассмотрим тему с точки зрения обывателя и постараемся ответить на простые вопросы: что такое UEFI-загрузка, зачем она нужна, какие минусы имеет и как её правильно настроить.
Несколько лет назад мы с уверенностью твердили: главное отличие Маков от PC состоит в наличии на яблочных компьютерах EFI — продвинутой альтернативы PC-шному BIOS, возможности которой сравнительно легко расширяются. Но сегодня этот тезис безнадёжно устарел. Загляните в любой компьютерный магазин, купите современную материнку, и с большой вероятностью это окажется материнская плата с UEFI.
Про EFI, UEFI и Маки
UEFI и EFI — есть ли разница между ними? И да, и нет. Дело в том, что Unified EFI (UEFI) — результат закономерной эволюции спецификаций EFI, который сейчас де-факто является стандартом, причём поддержку этого стандарта обеспечивает сама компания Intel. В скором будущем BIOS окончательно будет вытеснен UEFI по ряду чисто объективных причин. Главная из них состоит в том, что компьютеры с BIOS неспособны работать с жёсткими дисками, чья ёмкость превышает 2,2 ТБ. Давным-давно такая ёмкость казалась фантастикой, а сейчас, в эпоху Blu-ray-видео, и трёхтерабайтными винчестерами уже никого не удивишь.
Таким образом, стёрлось одно из важнейших отличий Mac и PC, и два таких разных компьютерных мира стали ещё ближе друг к другу. Разумеется, это повод порадоваться за хакинтошников, но радоваться можно лишь отчасти. Виновата в этом Apple (а кто бы сомневался? :). Дело в том, что UEFI-среда на Маках всё равно отличается от той, что применяется на современных материнских платах для PC. Ситуация похожа на положение вещей в Mac OS X — с одной стороны, это как бы полноценная *nix-система с открытым кодом; а с другой стороны оказывается, что Apple открывает только тот исходный код, который сама сочтёт нужным. Так и с маковским UEFI — вне сомнений, это тот самый UEFI, который основан на стандартах Intel, но он основательно допилен в Купертино под собственные нужды.
«Допилить» UEFI гораздо проще, чем BIOS. Конечно, модульный принцип реализован и там, и там. Но работая с BIOS, вы никогда не заставите его подгружать файлы дополнительных модулей из папки на диске, учитывая изменение их состава при каждой загрузке. А для UEFI это является самой что ни на есть обыденной возможностью. Этим и пользуется Apple: программисты компании написали собственные модули для EFI, которые используются на Маках. Исходники для них никто не публиковал, так что поддержание статуса-кво со стороны яблочной компании надёжно обеспечено.
Высокотехнологичный UEFI Gigabyte
Что придумали хакинтошники?
Представители хакинтошного движения подумали совершенно здраво: раз нельзя взять и подправить эппловские модули EFI так, чтобы они запускались на PC, то можно написать свои собственные, которые решали бы те же задачи. На сегодняшний день можно констатировать, что первый (да что там первый — единственный) загрузчик, в котором эта концепция полностью раскрыта — это Clover, о котором мы уже писали в нашем хакинтошном цикле статей.
Clover реализован в двух вариантах — традиционной и UEFI-версиях. Внешне они выглядят практически одинаково (разве что у UEFI-версии разрешение экрана может быть меньше), но в процедуре загрузки системы разница колоссальна.
Например, вот по какой цепочке грузится Clover на компьютере с BIOS:
BIOS -> сектор MBR -> сектор PBR -> файл boot -> файл загрузчика CLOVERX64.efi -> файл системного загрузчика boot.efi->ядро системы mach_kernel
А так этот процесс выглядит при работе через UEFI:
UEFI -> файл загрузчика CLOVERX64.efi -> файл системного загрузчика boot.efi->ядро системы mach_kernel
Даже если вы не хотите вникать в технические тонкости, разницу вы заметите: во втором варианте цепочка загрузки меньше на три пункта. В этом и состоит главное достоинство UEFI-загрузки.
Зачем нужна UEFI-загрузка?
Сразу развенчаем один популярный миф: никто никогда не говорил, что на материнских платах с UEFI загрузка Mac OS X в UEFI-режиме хакинтошного загрузчика является единственно возможным вариантом. Вовсе нет, на таких материнках совершенно спокойно можно грузиться через эмулятор BIOS. Соответственно, возникает закономерный вопрос о том, что же такого даёт UEFI-загрузка в сравнении с BIOS-загрузкой?
- во-первых, скорость. Это наиболее заметный плюс, т.к. за счёт сокращения длины цепочки загрузки (см. выше) можно достичь сокращения общего времени загрузки компьютера и системы в 2-4 раза. Например, Mac OS X на SSD в условиях BIOS-загрузки Clover будет запускаться не раньше, чем через 45-50 секунд после того, как вы нажмёте кнопку включения компьютера. Львиную долю времени вы будете наблюдать чёрный экран и ждать инициализации загрузчика. Та же Mac OS X на том же SSD может грузиться секунд за 8-10, и это действительно замечательный результат
- во-вторых, NVRAM. На UEFI-материнках эта часть памяти, свободно изменяемая, но не очищаемая при перезагрузке компьютера, может использоваться в системных целях. Например, Маки хранят в NVRAM информацию о загрузочном разделе (который задаётся в панели «Загрузочный том» в системных настройках). На хакинтошах до относительно недавнего времени эта панель никогда не работала. Потом для BIOS-среды, в рамках которой сохранение информации в NVRAM после перезагрузки или выключения физически невозможно, был придуман хитрый трюк с копированием содержимого виртуально эмулируемой памяти NVRAM в файл на диске и последующим считыванием этого содержимого при следующей загрузке. В условиях UEFI все эти ухищрения теряют смысл; всё работает почти так же, как и на настоящих Маках
- в-третьих, «нативность». Правда, мы сами не понимаем, что это даёт, кроме некоторого душевного успокоения. Всё равно хакинтош никогда не будет «нативнее», чем настоящий Мак 🙂
Какие недостатки имеет UEFI-загрузка?
Недостатков тоже не так много:
- во-первых, возможны проблемы с iCloud (например, неспособность залогиниться в iMessage или FaceTime)
- во-вторых, при UEFI-загрузке режим сна становится ещё капризнее: даже на тех хакинтошах, где он без проблем работал при загрузке через эмуляцию BIOS, сон может испортиться при переходе на загрузку через UEFI
Обе проблемы носят временный характер; часть причин скрыта в несовершенстве существующих EFI-модулей для хакинтошей, ещё часть — в недрах самой Mac OS X, которая и на «настоящиках» иногда работает совершенно загадочно. Как бы то ни было, надеяться на устранение этих недостатков в будущем всё-таки можно.
Как включить UEFI-загрузку на хакинтоше?
Проще, чем может показаться после прочтения написанного выше. Clover (особенно его свежие сборки) рассчитан на максимальное упрощение этого процесса. В большинстве случаев вам достаточно поставить загрузчик на EFI-раздел диска, на котором расположена Mac OS X. Для этого предусмотрена отдельная опция в параметрах установщика Clover.
А если вы хотите ставить Clover самостоятельно, напомним инструкцию. Допустим, вы распаковали загрузчик на рабочий стол в папку Clover. Запустите Терминал, введите команду sudo -s (потребуется ввести пароль от аккаунта вслепую и нажать Enter). Затем вбейте diskutil list и найдите номер нужного вам диска:
Если искомый диск — disk1 (напоминаем, что после каждой перезагрузки номера дисков могут меняться случайным образом), вводите следующие команды:
[php]mkdir /Volumes/EFI
mount_msdos /dev/disk3s1 /Volumes/EFI
cd /Volumes/EFI
touch /Volumes/EFI.metadata_never_index
rm -rf /Volumes/EFI/.fseventsd/
mkdir /Volumes/EFI/.fseventsd
touch /Volumes/EFI/.fseventsd/no_log
cp -R
/Clover/* /Volumes/EFI
umount -f /Volumes/EFI[/php]
Чтобы потом получить доступ к EFI-разделу и смонтировать его в Finder, потребуются следующие команды:
[php]sudo -s
mkdir /Volumes/EFI
mount_msdos /dev/disk1s1 /Volumes/EFI[/php]
Само собой, в disk1s1 надо будет подставить правильный номер диска, который вам покажет команда diskutil list. Отключение EFI-раздела производится командой umount -f /Volumes/EFI.
После перезагрузки в настройках UEFI вашей материнки в секции управления загрузочными устройствами надо будет выбрать пункт, соответствующий EFI-разделу на диске с Mac OS X.
Как правильно настроить UEFI-загрузку?
Большинство проблем при UEFI-загрузке возникают из-за неверного выбора EFI-модулей. Важно понимать их задачу: это те же драйверы, но работают они ещё до загрузки системы, т.к. они предназначены для самого загрузчика. Стоит вам забыть какой-нибудь модуль или поставить лишний — всё испортится, система рискует перестать грузиться.
Поэтому важно знать, для чего предназначены те или иные хакинтошные EFI-модули:
Что следует положить в эти папки? На выбор пользователя.
- HFSPlus.efi, NTFS.efi, VBoxExt2.efi — драйверы файловых систем, обеспечивающие доступ загрузчика Clover к разделам в HFS+, NTFS и ext2/3 соответственно. Забудете первый — загрузка Mac OS X станет невозможной. Забудете второй — Clover не увидит никакие диски с Windows; а если забудете положить третий — не будут видны разделы с Linux-системами
- FSInject.efi – модуль, который обязателен в том случае, если вы хотите подгружать в систему дополнительные кексты (расширения ядра, они же драйверы OS X) прямо из папки загрузчика Clover
- PartitionDxe.efi – модуль, обеспечивающий правильную работу с разными разметками диска (как с MBR, так и с GPT, а также с гибридной разметкой)
- DataHubDxe.efi – по идее, можно и без него, но с ним надёжнее. Драйвер регулирует обмен данными через порты компьютера
- OsxFatBinaryDrv.efi – модуль, обеспечивающий загрузку других крупных EFI-модулей. Таким крупным модулем является системный загрузчик Mac OS X — boot.efi, поэтому этот драйвер обязателен для EFI-загрузки
- OsxLowMemFix.efi и OsxAptioFixDrv.efi – модули, корректирующие работу загрузчика с оперативной памятью. Если у вас возникают проблемы с загрузкой системы, пробуйте первый из них, если и он не помогает — второй. Но ни в коем случае не ставьте их одновременно
- Usb*.efi, *HCI.efi – USB-драйверы для UEFI, которые пригодятся на тот случай, если в UEFI-режиме у вас отваливается мышь или клавиатура
- CsmVideoDxe.efi — модуль, активирующий дополнительные разрешения экрана загрузчика в UEFI-режиме
- модули со словом «Mouse» в названии обеспечивают работу мыши в среде загрузчика Clover. Если не нужна мышь — не нужны и драйверы
Все (а точнее, не все, а только те, что вам нужны 😉 эти драйверы нужно класть в папку /EFI/drivers64UEFI на том носителе, где установлен Clover.
Напоследок скажем, что обсудить нюансы UEFI-режима Clover непосредственно с разработчиком загрузчика вы можете здесь.
Источник