Содержание
Linux в одном файле для Macbook / Хабр
TL;DR Можно уместить полноценный Linux Live дистрибутив в один файл, если вкомпилировать в ядро initramfs с корневой файловой системой. Компьютеры с UEFI умеют загружать такой файл напрямую, без помощи загрузчика типа GRUB. У меня получилось уместить дистрибутив с программами aircrack-ng, reaver и драйверами для карт Wi-Fi в файл размером 12 мегабайт (наверняка можно еще меньше).
Основные преимущества
- Работает на любых компьютерах с UEFI — один и тот же файл будет работать на PC и Mac.
- Не требует установки — достаточно скопировать один файл на EFI-раздел диска и указать в переменных NVRAM путь к этому файлу.
- Не нужно устанавливать загрузчики GRUB, rEFInd — ядро Linux собранное с поддержкой EFI Stub можно грузить напрямую без промежуточного загрузчика.
- Не нужны USB-флешки — скопированный на раздел EFI дистрибутив остается там навсегда, и его можно будет загрузить в любой момент. Он не занимает места на разделе основной системы, так как раздел EFI не используется в ОС.
- Не изменяет процесс загрузки — систему можно загрузить один раз, без изменения порядка загрузки в настройках UEFI. Следующая перезагрузка компьютера загрузит обычную операционную систему. Никаких следов Linux в очередности загрузки не останется.
- Совместимо с шифрованием диска FileVault и т.д. — файл копируется на EFI System Partition, специальный зарезервированный раздел диска. В компьютерах Mac его размер около 200 мегабайт. Он выделен под Boot Camp и обычно не используется
Зачем это нужно?
Для всех случаев, когда нужен нативный Linux без виртуальной машины.
Чтобы использовать PCIe-устройства в Linux, когда их нельзя прокинуть в виртуальную машину. Например, встроенную Wi-Fi-карту для инъекции пакетов. Когда лень устанавливать виртуальную машину и качать большой ISO файл с дистрибутивом. Когда не хочется возиться с USB флешками.
Единожды скопированный файл позволит всегда иметь под рукой дистрибутив Linux, который переживет даже переустановку системы.
Инструкция по установке на Mac
Все команды нужно выполнять из macOS.
Конфигурация загрузки не имеет значения, способ не нарушает работу BootCamp, rEFInd и любых других нестандартных конфигураций. Поддерживаются компьютеры Mac не старше 2009 года (работоспособность на более старых не проверялась, но может и заработать).
- Скачать файл OneFileLinux.efi (20 мегабайт)
- Смонтировать EFI-раздел в систему.
diskutil mount disk_номер_раздела
Узнать номер раздела EFI можно командой diskutil list.В моем случае команда будет выглядеть так:
diskutil mount disk0s1
- Скопировать OneFileLinux.efi в раздел EFI
cp ~/Downloads/OneFileLinux.efi /Volumes/EFI/
- Добавить вариант загрузки в NVRAM
bless --mount /Volumes/EFI --setBoot --nextonly --file /Volumes/EFI/OneFileLinux. efi
Опция nextonly означает, что данный вариант загрузки будет выполнен один раз. Следующая перезагрузка восстановит прежние настройки. Поэтому, чтобы вернуться из Linux в macOS, достаточно перезагрузиться еще раз.
В последних версиях macOS, начиная с El Capitan, используется технология System Integrity Protection (SIP), так называемый «без root-вый режим». Эта технология запрещает модификацию системных файлов и переменных даже суперпользователю. SIP включен по умолчанию, поэтому последняя команда bless вернет ошибку. Ее можно выполнить из Recovery Mode. Для это нужно зажать cmd+R при включении компьютера и открыть консоль
Utilities —> Terminal. В консоли выполнить шаги 2 и 4. Команды в Recover консоле нужно вводить без sudo.
Теперь каждый раз, когда вам потребуется загрузить OneFileLinux.efi, достаточно выполнить шаги 2 и 4 в консоли Recovery, или из основной системы, если SIP выключен.
Наверное, можно выполнить bless без монтирования раздела, но я не нашел, как это сделать. Тогда было бы достаточно одной команды.
Инструкция для PC
Вариантов загрузки на PC множество. Если ваша материнская плата имеет встроенный UEFI Shell, достаточно в нем указать путь к файлу OneFileLinux.efi, чтобы единожды загрузиться в Linux. Я опишу процесс настройки на моем Thinkpad X220.
- Скачать OneFileLinux.efi и положить его на EFI-раздел
- Добавить опцию загрузки в NVRAM
efibootmgr --disk /dev/sda --part 2 --create --label "One File Linux" --loader /OneFileLinux.efi
- Во время загрузки нажать F12 и выбрать нужный вариант
Инструкция по сборке из исходников
Исходники проекта github.com/zhovner/OneFileLinux
Дистрибутив собран на чистом ядре 4.16-rc1 с kernel.org и Alpine Linux Mini Root filesystem.
Его можно легко собрать самостоятельно.
Подготовка initramfs
Initramfs — это образ диска, который монтируется в памяти при загрузке ядра. В обычных дистрибутивах в него помещаются драйвера, требующиеся на раннем этапе загрузки. В него можно поместить полноценную корневую файловую систему.
Я использовал корневую файловую систему от Alpine Linux. Это минималистичный дистрибутив для встраиваемых систем и контейнеров. У него существует вариант поставки без ядра и предустановленных программ, только корневая файловая система на базе busybox и пакетный менеджер apk.
chroot-имся в alpine linux:
chroot ./alpine-minirootfs /bin/ash
Находясь внутри окружения, можно внести нужные изменения. Добавить пакеты через «apk add», модифицировать сервисы используя openrc.
Вся необходимая информацию есть в wiki.
Сборка
Запустить скрипт сборки. Он соберет модули ядра, поместит их в initramfs, и соберет ядро.
./build.sh
На данный момент дистрибутив достаточно кривой. Если вы умеете линуксы, я буду очень признателен за любую помощь. Будет круто, если получится допилить этот проект до приемлемого уровня.
Известные проблемы:
Отключена загрузка модулей ядра — все драйвера вкомпиливаются в ядро.
Наверное, правильно сделать их отдельными модулями и положить в initramfs
✓ ИсправленоШрифты на HiDPI-дисплеях — из-за огромного разрешения HiDPI-экранов,
стандартные шрифты 8×16 выглядят очень мелко. Я вкомпилил шрифт 16×32, который выглядит нормально при большой плотности пикселей, но слишком большой для обычных экранов. По-хорошему, шрифт должен выбираться в зависимости от разрешения экрана.
✓ Исправлено. Теперь автоматически выбирается большой шрифт для HiDPI экранов. Также размер шрифта можно изменить в любой момент командой fontsize.Только один драйвер карты WiFi — сейчас вкомпилен один драйвер для встроенного в макбуки адаптера Broadcom 43602. По-хорошему, нужно собрать все популярные драйвера в виде модулей ядра, а также firmware к ним.
✓ Исправлено. Добавлена поддержка многих популярных WiFi адаптеров.Сломан udev/mdev? — я не знаю, как он работает. Как правильно загружать модули в зависимости от конфигурации железа?
✓ Исправлено- Мусор — сейчас вместе с ядром устанавливается большое количество устаревших драйверов. В несжатом виде модули ядра весят более 100 мегабайт. Большую часть из них можно исключить.
Приглашаю всех коммитить и создавать issues о проблемах github.com/zhovner/OneFileLinux.
Как смонтировать efi в mac os
Использование гибридного жесткого диска в MacBook и установка на него Windows
Эта история о том, как простая переустановка затянулась на несколько дней.
И как я пытался подружить EFI и Legacy на одном SSD в MacBook Pro
Предыстория
В 2018 году я себе приобрел в личное пользование MacBook Pro 15 дюймов, конца 2011 года. Можно уже сказать что он старый, да только на замену прошлого Lenovo он был просто как атомный реактор.
Очень удачно попался с нестандартной комплектацией, с 1680х1050 экраном и увеличенной графикой. И кажется что всё хорошо, можно пользоваться и будет тебе счастье, только для работы одной Mac OS будет мало и через некоторое время я стал ставить на его Windows. И тут я встретил большие проблемы.
Поиск проблем
Большинство информации в интернете рекомендуют ставить через bootcamp, что я и решил сделать как советуют. Только вот мой bootcamp не мог поставить windows. Из предложенного он мог только скачать пакет драйверов и создать\удалить раздел для новой ОС. На этом его функционал закончился. Поиск предлагает переписать несколько строк кода — безрезультатно.
Отложив это дело не надолго я стал искать по ноутбуку информацию. Банально это сверить серийный номер с сайтом и посмотреть что за он. Только официальный сайт ничего полезного не рассказывает. Позже я стал проверять по версии EFI(BootRom) и SMC. И тут я был очень удивлен!
Если версия EFI иногда обновляется с приходом новых обновлений из AppStore, то SMC не обновляется вообще. Конечно, на официальном сайте есть раздел и можно скачать новую версию, что кажется вполне логичным. Только вся проблема в том, что у каждого ноутбука своя версия SMC и всё, она не может меняться(только в самых крайних случаях). В интернете набрел на сайт где рассказывают по модельно в каком ноутбуке должна зашита «эта» версия SMC. Как оказалось, у меня версия от 13 дюймового 1.69f4. В конце концов я пытался понизить версию SMC, а результатов не было. Система говорила что обновилась, а изменений нет.
После всех поисков я терял надежды и решил просто поставить с флешки. И тут разочарование! Система мою звуковую карту видит в системных устройствах, а при попытке установить AMD графику я получаю код ошибки 32. И после установки Intel HD Graphichs я получаю чёрный экран. Пробовал разные сборки, везде один и тот-же результат. В конце концов решение было найдено довольно банально, придя к отцу, взяв его MacBook Pro mid 2012 и поставив в его свой SSD, я поставил Windows и всё было хорошо, я имел одну AMD графику и рабочий звук с остальной периферией. Только я знал что это не вечно и может случиться так что второго ноутбука не будет а переустановить надо. И вот тогда я столкнулся с этим снова.
Таблетка от всех болезней
Практически 95% ресурсов требуют установку через BootCamp, мне эта идея не нравилась, всегда было приятно ручками вручную всё делать. Из прошлой работы Windows я узнал что она работает в режиме Legacy. Я был очень удивлен и не понял как так может быть, если у меня всё работает в системах EFI. По этому в интернете набрел на информацию по конвертации диска из обычного в «гибридный». Тем самым я могу использовать его как GPT и MBR одновременно.
Первым делом мне нужно узнать разметку своего диска.
Я получаю ответ:
Далее, я начинаю редактировать структуру, согласно информации о разделах:
После чего выставляем флаг на третий раздел командой flag 3, и закрываем утилиту, командой exit или q. И проверяем что у нас получилось.
И что бы убедиться у нас всё получилось на 100%, можно скачать дополнительный пакет gdisk и запустить его с такой командой И если всё сделали верно, раздел с MBR стал гибридным.
EFI shell legacy mode?
Самое интересное теперь в установке Windows. Она у нас не пойдет как обычно, система попросту не даст установиться. Это и логично, мы ведь загружаем установку в режиме EFI и требуем работу с GPT разметкой а система не ставит в данном режиме на MBR.
WinNTSetup отлично помогла установить операционную систему. После выбора языка, вызываем консоль сочетанием клавиш Shift + F10 и переходим в каталог с программой, которую предварительно скопировали на флешку. А тут всё просто, запускаем её, указываем файл с установкой, куда хотим ставить и жмём старт. После чего идёт распаковка файлов, запись загрузчика и всё, система почти установлена.
После успешной установки закрываем программу, выходим из установки и перезагружаем ноутбук и выбираем новый раздел с Windows и ждём чудо. Система может перезагрузиться несколько раз, что вполне нормально и после нескольких минут ожидания мы получаем рабочую версию Windows c одной графикой и работающим звуком.
Заключение
После подобных манипуляций и информации в интернете, работа приложения BootCamp становится всё понятнее и понятнее. Она делает данные операции автоматически, мы всё правили вручную. А теперь, после такой информации уже не страшно переустанавливать всё и замена ssd на больше с установкой всех ОС займет на много меньше времени.
Установка 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 непосредственно с разработчиком загрузчика вы можете здесь.
# Создание установщика в macOS
В то время как вам не нужна чистая установка macOS чтобы использовать OpenCore, некоторые пользователи предпочитают иметь свежую версию ОС с обновлением их Boot Manager.
Для начала, мы захотим получить себе копию macOS. Вы можете пропустить этот шаг и перейти к форматированию USB, если вы просто делаете загрузочную флешку с OpenCore, а не установщик. Для всех остальных, вы можете загрузить macOS из App Store или с помощью скрипта от Munki.
# Скачивание macOS: современные версии
- Этот метод позволяет вам загрузить macOS 10.13 и новее, для 10.12 и старее, смотрите Скачивание macOS: устаревшие версии
С компьютера macOS, отвечающего требованиям версии ОС, которую вы хотите установить, перейдите в App Store и загрузите желаемый релиз ОС и продолжайте настройку установщика.
Для компьютеров, которым нужен конкретный релиз ОС или не удается загрузить из App Store, вы можете использовать утилиту InstallInstallMacOS от Munki.
Чтобы запустить его, просто скопируйте и вставьте следующую команду в терминал:
Как вы видите, мы получаем большой список установщиков macOS. Если вам нужна определенная версия macOS, вы можете выбрать её, набрав её номер. Для этого примера, мы выберим 10:
- Примечание к macOS 11, Big Sur: Так как эта ОС совершенна новая, есть некоторые проблемы с определенными системами, которые нужно решить. Для получения дополнительной информации, смотрите здесь: OpenCore и macOS 11: Big Sur
- Для начинающих пользователей, мы рекомендуем macOS 10.15, Catalina
Это займёт некоторое время, поскольку мы загружаем установщик macOS весом 8Гб+, поэтому мы настоятельно рекомендуем прочитать остальную часть руководства, пока вы ждёте.
По завершению, вы найдёте в папке
/macOS-Installer/ файл DMG содержащий установщик macOS, и названный, например Install_macOS_11. 1-20C69.dmg . Смонтируйте его и вы найдёте приложение-установщик.
- Примечание: Мы рекомендуем переместить приложение Установка macOS.app в папку /Applications , поскольку мы будем выполнять команды в этой директории.
- Примечание 2: Нажатие сочетания клавиш Cmd+Shift+G в Finder позволит вам легче перейти к папке
Начиная отсюда, перейдите к Настройке установщика чтобы закончить свою работу.
# Скачивание macOS: устаревшие версии
- Поддерживаются 10.10-10.12
- Поддерживаются 10.7-11
- Поддерживаются 10.4-10.6
# Настройка установщика
Теперь мы форматируем USB, чтобы подготовить его как к установщику macOS, так и к OpenCore. Мы хотим использовать macOS Extended (HFS+) с таблицей разделов GUID. Это создаст два раздела: основной MyVolume и второй под названием EFI , который используется как загрузочныйц раздел, где ваш firmware будет проверять загрузочные файлы.
- Примечание: По умолчанию, Дисковая Утилита показывает только разделы — нажмите Cmd/Win+2 , чтобы показать все накопители (или же можете нажать на кнопку Вид (View))
- Примечание 2: Пользователи следовавшие разделу «Устаревшая macOS: онлайн метод» могут перейти к Настройке EFI окружения OpenCore
Затем запустите команду createinstallmedia предоставленную Apple
(opens new window) . Обратите внимание на то, что эта команда используется для отформатированного USB с названием MyVolume :
Это займёт некоторое время, так что вы можете взять чашечку кофе или продолжить читать руководство (честно говоря, вам не стоит следовать этому руководству шаг за шагом, не прочитав это всё сначала).
Также вы можете поменять путь createinstallmedia на тот, где находится ваш установщик (то же самое с названием накопителя)
Устаревшие createinstallmedia команды
# Настройка Legacy
Для систем, не поддерживающих UEFI загрузку, смотрите ниже:
Настройка Legacy загрузки
Для начала, вам понадобится следующее:
- BootInstall_IA32.tool или BootInstall_X64.tool
- Может быть найдено в OpenCorePkg по пути /Utilties/LegacyBoot/
В папке OpenCore, перейдите к Utilities/LegacyBoot . Здесь вы найдете файл названный BootInstall_ARCH.tool . Он устанавливает DuetPkg на нужный накопитель.
Теперь запустите эту утилиту в терминале в sudo(В противном случае, эта утилита, скорее всего, потерпит неудачу):
Это покажет вам список доступных дисков, выберите нужный, и вам будет предложено записать новый MBR. Выберите yes [y] , и на этом вы закончите.
Это даст вам EFI раздел с bootia32 или bootx64 файлом
# Настройка EFI окружения OpenCore
Настроить EFI окружение OpenCore просто — всё что вам нужно сделать, это смонтировать наш системный EFI раздел. Это автоматически делается, когда мы форматируем в GUID, но по умолчанию размонтируется, так что появляется наш друг MountEFI
Вы заметите, что как только мы откроем EFI раздел — он будет пуст. Вот здесь и начинается самое интересное.
Монтирование и отключение дисков из командной строки в Mac OS X
Вы можете подключать и отключать диски, тома и диски из командной строки MacOS и Mac OS X.
Для многих пользователей самый простой способ отключить диск на Mac — просто перетащить том в корзину, использовать клавиши извлечения, отсоединить диск или использовать один из методов принудительного извлечения. Точно так же, если вы хотите перемонтировать диск, вы обычно можете просто физически отключить диск и снова подключить его. Но что, если вы хотите иметь возможность монтировать, отключать и повторно монтировать диски из командной строки? Это именно то, что мы здесь рассмотрим.
Этот трюк работает с внешними USB-дисками, жесткими дисками, Firewire, Thunderbolt, DVD, компакт-дисками, сетевыми дисками, даже флэш-накопителями USB, буквально с любым томом, который может быть смонтирован и доступен с помощью невероятно полезной команды diskutil. Используя командную строку для повторного подключения диска, весь процесс может быть завершен удаленно, если необходимо, через SSH, без необходимости физического отключения диска от Mac. Это бесконечно полезно для устранения неполадок, для сценариев и автоматизации, и это отличный трюк для тех из нас, кто просто любит возиться с Терминалом.
Как отключить диск из командной строки на Mac
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Давайте сначала рассмотрим размонтирование дисков. Для этого вам понадобится еще один том, подключенный или подключенный к Mac в той или иной форме, затем запустите Терминал, чтобы начать работу (находится в / Applications / Utilities /).
1: Список всех дисков
Первое, что вам нужно сделать, это перечислить подключенные диски. Это предоставит список всех дисков, которые подключены к Mac, которые либо подключены, либо отключены, а также все их соответствующие разделы. Мы делаем это, чтобы получить идентификатор диска, который обычно выглядит как disk1s2, disk2s2 и т. Д.
diskutil list
Результат будет выглядеть примерно так:
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 120.5 GB disk0s2
3: Apple_Boot Recovery HD 650. 0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *16.0 GB disk1
1: EFI 209.7 MB disk1s1
2: Apple_HFS OSXDaily 15.7 GB disk1s2
В этом примере мы сосредоточимся на подключенном диске с именем «OSXDaily», который оказывается внешним флэш-накопителем USB, который появляется последним в списке. Обратите внимание, что идентификатор этого диска — «disk1s2», и мы перенесем его в следующую серию команд, чтобы размонтировать и снова подключить его.
Вероятно, стоит упомянуть, что диски всегда будут располагаться в / dev / и поэтому / dev / всегда будет иметь префикс перед идентификатором.
2. Отключить указанный диск
По-прежнему используя команду diskutil, мы укажем ей диск, о котором идет речь, для отключения.
diskutil unmount /dev/disk1s2
Это сообщит, что названный том и местоположение были отключены, например:
$ diskutil unmount /dev/disk1s2
Volume OSXDaily on disk1s2 unmounted
Это все, что нужно сделать. Вы заметите, что диск больше не доступен в Finder, но он по-прежнему будет виден через diskutil из командной строки или более знакомое приложение Disk Utility в графическом интерфейсе Mac OS X.
Как смонтировать диск из командной строки на Mac
Если вы можете размонтировать диск, вы, конечно, можете подключить или снова подключить его. Последовательность команд очень похожа; Найдите том, затем смонтируйте диск.
1. Найдите диск для установки
Если вы уже знаете, где находится том, вы можете проигнорировать часть 1 и сразу перейти к части 2, но давайте все равно рассмотрим получение идентификатора тома. На этот раз мы немного сократим его, потому что мы предполагаем, что знаем имя диска, который нужно смонтировать, поэтому нам нужно только найти идентификатор. Мы сделаем это, используя grep, чтобы сократить вывод команды diskutil следующим образом:
$ diskutil list |grep OSXDaily
2: Apple_HFS OSXDaily 15.7 GB disk1s2
Этот вывод, очевидно, намного короче, чем полный вывод diskutil list, который мы показали выше.
В этом примере диск «OSXDaily» по-прежнему находится в / dev / disk1s2, и мы его смонтируем.
2. Смонтируйте (или перемонтируйте) диск
Чтобы смонтировать (или перемонтировать) диск, мы будем использовать ту же команду diskutil с новым флагом и такими входными данными:
diskutil mount /dev/disk1s2
Используя те же примеры, что и в других местах, вот как будут выглядеть команда и результат:
$ diskutil mount /dev/disk1s2
Volume OSXDaily on /dev/disk1s2 mounted
Это, очевидно, снова монтирует диск, а также снова делает подключенный том видимым в Mac OS X Finder и для приложений на основе графического интерфейса в различных диалоговых окнах Open или Save.
Как отключить и снова подключить диск / том с помощью одной команды
Хотите быстро размонтировать и снова подключить тот же том, по сути отключив и отключив его подключение к Mac? Вы можете сделать это с помощью одной команды, связав их вместе следующим образом:
diskutil unmount /dev/disk1s2;diskutil mount /dev/disk1s2;echo "Remounted Volume"
При выполнении это будет выглядеть следующим образом:
$ diskutil unmount /dev/disk1s2;diskutil mount /dev/disk1s2;echo "Remounted Volume"
Volume OSXDaily on disk1s2 unmounted
Volume OSXDaily on /dev/disk1s2 mounted
Remounted Volume
Если бы вы случайно наблюдали за громкостью в Finder во время этого процесса, вы бы обнаружили, что он на короткое время исчезнет, а затем снова появится снова. Последняя часть эха является необязательной, но она делает все действие команды еще более подробным.
Спасибо Nilesh за подсказку
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
EFI-загрузка Ubuntu на Mac
EFI-загрузка Ubuntu на Mac
Первоначально написано: 1/2011; Последнее обновление веб-страницы: 17.06.2013 (последнее крупное обновление: 04.05.2012)
Я технический писатель и консультант, специализирующийся на Linux.
технологии. Эта веб-страница предоставляется бесплатно и не раздражает
внешняя реклама; тем не менее, я потратил время на его подготовку, а веб-хостинг
стоит денег. Если вы найдете эту веб-страницу полезной, рассмотрите возможность создания
небольшое пожертвование, чтобы помочь поддерживать этот сайт в рабочем состоянии. Спасибо!
Пожертвовать $1.00 | Пожертвовать $2,50 | Пожертвовать $5.00 | Пожертвовать $10. 00 | Пожертвовать другое значение |
Примечание: Эта страница написана с использованием довольно старого 32-разрядного Mac Mini в качестве эталона и с использованием Ubuntu 12.04 в качестве эталона. События последнего года сделали некоторые процедуры на этой странице неоптимальными. Я пытался указать на это, но я не полностью изучил лучшие замены, и мне не хватает современного оборудования, на котором можно было бы протестировать некоторые из лучших методов на более поздних 64-разрядных компьютерах Mac. Таким образом, вам может потребоваться отклониться от этих инструкций на современных компьютерах.
Проблема
При установке Ubuntu Linux на компьютер Macintosh с процессором Intel большинство людей
следуйте любому из нескольких руководств, доступных в Интернете, таких как это
документ Убунту. Однако большинство этих руководств опираются на особенности
Macintosh, предназначенные для загрузки Windows. Особенно,
эти руководства обычно заканчиваются созданием конфигурации, загружающей Linux.
используя свой модуль поддержки совместимости (CSM), , который обеспечивает BIOS
эмуляция на Mac. В этом режиме Mac настраивает базовый ввод-вывод.
Уровень системы (BIOS), который может использовать ОС, а не полагаться на расширяемый
Интерфейс прошивки (EFI), который OS X использует для работы на компьютере. БИОС
эмуляция целесообразна, и это единственный способ, с помощью которого большинство версий Windows
может загружаться непосредственно на Mac, но у него есть несколько недостатков:
- Более длительное время загрузки — Эмуляция BIOS
замедляет процесс загрузки. Я не проверял этот эффект на себе, поэтому я
не уверен, насколько это важно. - Ограниченная гибкость видеокарты — На некоторых моделях с
несколько графических чипсетов, вы не можете выбрать, какой чипсет использовать в
Режим BIOS, но можно и в режиме EFI. Мой собственный Mac не является одним из
затронутые модели, поэтому я не могу комментировать этот вопрос. - Использование гибридной MBR — Mac на базе Intel используют раздел GUID
Table (GPT), а не более распространенный Master Boot
Запись (MBR) система разделов. Однако Windows не может загрузиться с
GPT-диски на компьютерах с BIOS (которыми, по его мнению, является Mac благодаря
Эмуляция Apple BIOS). Поэтому Apple использует уродливый и опасный
хак, известный как гибридная MBR, в
которой является структура данных GPT, известная как защитная MBR .
изменен, чтобы диск выглядел как MBR-диск для Windows. Проблема
заключается в том, что гибридные MBR часто вызывают проблемы. На самом деле, даже Ubuntu
установщик часто ошибается; он пытается быть полезным, создавая
гибридная MBR, но в зависимости от схемы вашего раздела он может создать
таблицу разделов, которую популярные инструменты разметки на основе libparted
не коснется.
Насколько я могу судить, режим эмуляции BIOS работает только при наличии гибридной MBR.
присутствует на жестком диске или когда оптический диск с загрузкой BIOS
вставлен в оптический привод. Таким образом, вы не можете использовать режим эмуляции BIOS с
обычный GPT-диск, если вы не планируете использовать загрузочный оптический диск для
загрузите линукс.
Ubuntu может использовать эмуляцию BIOS и гибридную MBR, которые позволяют Windows
загрузитесь на Mac, , но в этом нет необходимости! Если вы не используете эти
особенности, вы не увидите их проблем. Гибридные MBR, в частности,
Плохая идея (с большой буквы Б и с большой буквы И). Я видел множество проблем
сообщается на форумах Ubuntu, связанных с
к установкам Ubuntu на компьютерах Mac с гибридными MBR и другими проблемами с
аналогичные конфигурации в других местах. См. мою гибридную веб-страницу MBR
для технического описания того, что они собой представляют и что может пойти не так
их. Короче говоря, они могут рассинхронизироваться, вызвать путаницу в отношении того, какой
раздел, который, и стать поврежденным в разочаровывающих отношениях. Всякий раз, когда я
кажется, я слышал обо всех возможных проблемах с гибридными MBR, я спотыкаюсь
через новый. Тебе лучше без него, если это
возможно — и это возможно, если вы используете двойную загрузку OS X и Linux, но не
Окна.
Проблема в том, что Ubuntu не поддерживает установку на Mac в EFI
режим, по крайней мере, не начиная с версии 12.04. (Некоторые источники утверждают, что это сейчас
работает на некоторых более поздних версиях, но я не проверял это утверждение — действительно,
Мне не хватает оборудования для этого!) Обычные 64-битные диски могут загружаться на ПК в
либо в режиме BIOS, либо (если ПК его поддерживает) в режиме UEFI (UEFI,
по сути, EFI 2. x ). Сообщается, что эти диски не загружаются на Mac
(хотя я подозреваю, что они могли бы с помощью rEFIt или rEFInd). 32-битная Убунту
установочные диски не поддерживают EFI. Ubuntu также выпустила 64-битный диск
изображения для Mac. Как ни странно, они загружаются только в режиме BIOS! Следовательно, чтобы
Избавьте свой компьютер от опасной гибридной MBR, вам нужно будет перепрыгнуть через
какие-то обручи. Альтернативой всему этому является запуск Ubuntu в виртуальном
среды, например VirtualBox.
В некоторых случаях это может быть хорошим решением, но оно не дает Linux прямой
доступ к оборудованию, и вы потеряете часть скорости.
Некоторые предостережения
Хотя я считаю, что Mac на базе Intel лучше всего загружаться с использованием EFI
и GPT с защитной MBR, а не с гибридной MBR, есть
недостатки такого способа. К ним относятся:
- Нет Windows — Как отмечалось ранее, Windows в значительной степени зависит от
Эмуляция BIOS для загрузки на Mac; поэтому, если вы хотите выполнить тройную загрузку
OS X, Linux и Windows вам понадобится гибридная MBR для загрузки Windows.
(Однако вы можете подумать о двойной загрузке OS X и Linux и запустить
Windows в виртуальной машине, такой как VirtualBox. Это устранит
необходимость эмуляции BIOS и гибридных MBR.) Теоретически вы могли бы
тройная загрузка с гибридной MBR, но по-прежнему использовать режим EFI для загрузки Linux.
Я не проверял это, и преимущества значительно уменьшаются, так как вы
все еще есть гибридная MBR на вашем жестком диске. - Ограниченная поддержка драйверов nVidia — Самое большое предостережение
загрузка Linux в режиме EFI на Mac заключается в том, что некоторые видеодрайверы Linux,
особенно для чипсетов nVidia, плохо работает при загрузке в EFI
режим. Таким образом, если у вас есть Mac с видеочипсетом nVidia, вы
необходимо использовать менее мощные драйверы fbdev, а не более быстрые
драйвера нвидиа. Мой собственный Intel Mac Mini первого поколения использует Intel
видеочипсет и не подвержен этой проблеме, так что не беспокоит
меня, но это может быть нарушением условий сделки для вас. Я видел несколько предложений
что эти проблемы сейчас (в апреле 2012 года) менее серьезны, чем они
были год или два назад. Загрузка UEFI
на странице есть некоторые примечания о поддержке видео определенных моделей Mac, когда
загрузился в режиме EFI; см. таблицу в разделе «Протестированные конфигурации» о
2/3 пути вниз по странице. - Отсутствующие аппаратные функции — Я видел сообщения о том, что Linux
такие функции, как управление яркостью экрана и приостановка/возобновление работы, могут быть недоступны.
корректно работают при загрузке с использованием EFI. Я не использую такие функции, поэтому я
не могу комментировать лично. - Виртуальные терминалы — я видел сообщения о том, что виртуальные
терминалы не работают при загрузке EFI; однако это ограничение не
применить к моему компьютеру. Возможно он взаимодействует с видеочипсетом,
использование драйвера фреймбуфера, версия ядра или какая-то другая переменная. - Ограничения архитектуры ОС — Старые компьютеры Mac на базе Intel, например
как мой Mac Mini, используйте 32-битные процессоры и EFI. Новые модели поставляются с 64-битной
ЦП и EFI. Если вы попытаетесь запустить 32-битный дистрибутив на 64-битном EFI,
у вас может не быть доступа к EFI Runtime Services. Сообщается, что это может
ограничить некоторые функции, но я немного не понимаю деталей. В моем
мнение, лучше придерживаться 64-битных дистрибутивов на 64-битных
оборудования даже на компьютерах с BIOS, так что я не вижу в этом большой проблемы.
проблема.
Если вы используете Fedora, CentOS, Mandriva, OpenSUSE, Gentoo, Debian или
большинстве других дистрибутивов Linux процедура, которую я собираюсь описать,
наверное работа; однако некоторые детали могут отличаться. На самом деле, когда-то или
другой, я установил Ubuntu, CentOS и OpenSUSE на свой Mac Mini, все
с использованием загрузки в режиме EFI. Возможно, ваш предпочтительный дистрибутив
уже поддерживает прямую установку EFI, и в этом случае проблема
установка на Mac в режиме EFI может не существовать. Проверьте свой дистрибутив
документация, чтобы быть уверенным.
Я тестировал эту процедуру только на своем Mac первого поколения на базе Intel.
Мини. Этот компьютер использует 32-разрядный ЦП и 32-разрядный EFI, поэтому я тестировал только
32-битная версия Ubuntu. Возможно, что 64-битная версия имеет
другие требования, или вам может потребоваться сделать что-то по-другому на более новых
64-битные Маки. Вы можете проверить, какой тип EFI у вас есть, с помощью следующего
команда, набранная в терминале OS X:
$ ioreg -l -p IODeviceTree | grep прошивки-аби
Результат должен включать строку EFI32 или EFI64;
значение каждого должно быть очевидным.
Предпосылки
Прежде чем продолжить, вам необходимо загрузить несколько элементов:
- Ubuntu Linux — Вы можете получить Ubuntu на его основном веб-сайте. Веб-сайт
описывает 32-разрядную версию как «рекомендуемую», но не имеет такой
описание для 64-битной версии. Однако не волнуйтесь; 64-битный
версия работает нормально практически для всего. Помните, что вы, вероятно,
нужна версия для Mac для загрузки на Mac, если у вас 64-битная
система. Эту версию может быть сложнее отследить; я использовал это
список торрентов. Я рекомендую использовать 64-битную версию, если у вас есть
64-битный EFI, как описано ранее. (Обратите внимание, что строка драм64
появляется во многих местах со ссылкой на 64-битную версию Ubuntu,
но эта версия отлично работает на процессорах Intel x 86-64; в
AMD64 Строка используется просто потому, что AMD изобрела
архитектуры.) Я использовал настольную версию Ubuntu 12.04 в качестве эталона.
для этой веб-страницы, но основные процедуры должны быть аналогичны для
сервер или альтернативный установщик, а также для вариантов Ubuntu, таких как
Кубунту и Эдубунту. Я настоятельно рекомендую установить Ubuntu 12.04.2 или
более свежая версия, а не оригинальная 12.04, поскольку более поздняя
версии поставляются с ядрами, включающими загрузчик-заглушку EFI, который может
упростить некоторые процедуры настройки. Запишите диск и убедитесь, что
он включает в себя каталоги с именами boot, install,
изолинукс и так далее. Если вы предпочитаете использовать флэш-накопитель USB или
аналогичное устройство, вы можете сделать это. См. Установка Ubuntu
Страница Ubuntu Desktop с инструкциями по созданию загрузочной флэш-памяти USB
диски под разными операционками. - GPT fdisk (gdisk) — Перейти к GPT fdisk Sourceforge
страницу загрузки и загрузите Mac
(gdisk- версия .pkg). Установить этот пакет в ОС
X. После того, как вы установили Linux, вы можете установить
версию из репозиториев Ubuntu (она находится в пакете под названием
гдиск.) - Диск Super GRUB 2 — загрузите этот удобный образ компакт-диска с его домашней страницы. Обязательно получите
Super GRUB 2 Диск, а не диск Super GRUB. Запишите образ диска, как
вы записали образ установочного диска Ubuntu или скопировали его на второй USB
флеш накопитель. - rEFInd — это ответвление более ранней загрузки Mac rEFIt.
управляющий делами. Это часть процесса загрузки, как описано на этой веб-странице.
Загрузите образ ISO или двоичный файл .zip с веб-страницы.
Если вы уже используете rEFIt, вы можете продолжать использовать его, а не
установить REFInd; тем не менее, rEFIt, по-видимому, был заброшен, и
rEFInd добавляет множество улучшений, поэтому вы можете захотеть обновить его раньше или позже.
потом.
Имея эти элементы в руках, вы можете приступить к установке Ubuntu и
затем исправьте его, чтобы он не использовал гибридную MBR.
Установка Ubuntu
Если у вас уже есть работающая конфигурация с двойной загрузкой с OS X и
Ubuntu, вы можете пропустить этот раздел и перейти к разделу «Исправление установки». Вы можете пропустить некоторые
шагов в этом разделе, таких как установка rEFInd.
Чтобы установить Ubuntu Linux 12.04 на Mac с процессором Intel, выполните следующие действия.
направления:
- При необходимости установите Mac OS X.
- Загрузитесь в Mac OS X.
- При необходимости с помощью Дисковой утилиты OS X отрегулируйте размеры
разделы, освободив место для Linux. Обратите внимание, что изменение размера разделов
по своей сути опасны, так что сделайте резервную копию ваших данных перед началом! Вы можете
тоже хочу создать FAT или без журнала HFS+ («Mac OS
Extended»). Раздел с общими данными. Результат может выглядеть следующим образом:
(раздел Linux на этом снимке экрана может быть пустым
пространство; Я создал его здесь главным образом для того, чтобы показать вам, где Linux
проживать). - Если вы еще этого не сделали, установите OS X версию GPT fdisk
(гдиск). - Откройте программу терминала.
- В программе терминала введите sudo gdisk /dev/disk0
(измените /dev/disk0 на /dev/disk1 или выше, если ваш
компьютер имеет несколько жестких дисков и тот, на котором вы хотите
установить Ubuntu не /dev/disk0). - В gdisk введите p для отображения раздела
стол. Убедитесь, что это то же самое, что показано Дисковой утилитой. (Обратите внимание, что
Дисковая утилита скрывает системный раздел EFI (ESP), который обычно
первый раздел на диске. ) - Если вы создали раздел Linux, введите d в
gdisk, чтобы удалить его. Введите его номер при появлении запроса. (Если ты
создал несколько разделов для Linux с намерением их использовать
поскольку вы их создали, вы можете пропустить этот шаг.) - В gdisk введите n , чтобы создать новый раздел.
Дайте ему число 99, нажмите клавишу Enter, чтобы использовать начальное значение по умолчанию.
сектор (программа может сообщить вам, что значение сектора изменилось, но вы
можете игнорировать это сообщение), +128M в качестве конечного сектора,
и шестнадцатеричный код ef02 . Это создает загрузку BIOS
Раздел размером 128 МБ в начале самого большого блока свободного места на
диск. Этот раздел будет использоваться начальным Ubuntu GRUB.
установки, но вы можете удалить его, как только у вас будет встроенная загрузка EFI
работающий. 128 МБ на самом деле намного больше, чем требуется для этого
цель, но OS X любит видеть промежутки между разделами при установке
или обновляет ОС, поэтому, когда вы в конечном итоге удалите этот раздел, он
оставит тип разрыва, который OS X любит видеть. (Если вы создали все
ваши разделы Linux в Дисковой утилите OS X, вы можете поместить загрузку BIOS
Раздел в одном из промежутков, которые Дисковая утилита оставляет, но вам может понадобиться
принять значение по умолчанию или использовать +1M вместо ввода
+128M в качестве конечного значения.) Введите p еще раз
увидеть результаты; они должны выглядеть примерно так (хотя я
получил два раздела OS X): - В gdisk введите w , чтобы сохранить изменения. Когда
спросил, введите y , чтобы подтвердить этот выбор. - Вставьте установочный компакт-диск или DVD-диск Ubuntu в дисковод компьютера или
подключите флэш-накопитель USB с установщиком Ubuntu. - Перезагрузите Mac и удерживайте нажатой клавишу Option (Alt, если вы используете ПК
клавиатура) при перезапуске, чтобы отобразить экран выбора ОС Mac. - Выберите установочный диск Ubuntu из вариантов. (Возможно неправильно написано
как «Windows». ) Запустится установщик Ubuntu. Если вы используете компакт-диск
и программа установки не загружается, попробуйте вместо этого использовать флэш-накопитель USB. - Когда появится соответствующий экран, выберите «Установить Ubuntu».
и продолжите обычную установку Ubuntu, за исключением случаев, указанных в
следующие несколько шагов…. - Когда появится диалоговое окно «Тип установки», выберите «Другое».
- Первоначально вы увидите экран разделения с вашей оригинальной OS X
разделы, раздел biosgrub (какой разделитель Ubuntu
вызывает загрузочный раздел BIOS) и свободное место в конце диска.
Выберите свободное место и нажмите «Добавить», чтобы начать добавление разделов…. - Создайте разделы для установки Ubuntu в свободном месте рядом с
конец диска. (Если вы сделали это в Дисковой утилите OS X, вы
следует изменить каждый раздел, выбрав его и нажав «Изменить»,
затем щелкните параметр «Формат» и установите соответствующую файловую систему.
и точка монтирования.) Я рекомендую создать следующие разделы:- /boot — 500 МБ, ReiserFS или ext2fs. Этот
раздел является необязательным. Это может упростить некоторые типы загрузчика.
конфигурации, особенно если вы хотите использовать XFS, JFS или Btrfs
на вашем корневом (/) разделе. - / (root) —5–25 ГиБ, ext4fs или ваш
предпочитаемая файловая система Linux. Этот раздел абсолютно необходим. Если
вы решили не создавать отдельный раздел /home, сделайте
корневой раздел соответственно больше. Обратите внимание на номер этого
раздел (7 на снимке экрана ниже). - swap — в 1–2 раза больше размера оперативной памяти вашей системы.
- /home — оставшееся свободное место на диске,
в ext4fs или предпочитаемой вами файловой системе Linux. Вы можете объединить это
с корневым (/) разделом, если у вас мало места или
планируйте хранить немного файлов, специфичных для Ubuntu. Иметь
отдельный раздел /home упрощает переустановку ОС
и некоторые типы обновлений, хотя.
Когда вы закончите, вы
увидеть ваши новые разделы отображаются …. - /boot — 500 МБ, ReiserFS или ext2fs. Этот
- Убедитесь, что для параметра «Устройство для установки загрузчика» установлено значение
/dev/sda (в нем будет указано полное имя вашего жесткого
диск — я использовал VirtualBox, чтобы сделать несколько последних снимков экрана, но
ваш покажет реальный номер модели диска). - Щелкните Установить сейчас. Установка продолжится как на ПК. Вы можете
найти общие руководства по установке в Интернете, такие как это
на сайте Ubuntu.
Когда установка завершится, компьютер сразу же перезагрузится
в Mac OS X! (Однако см. примечание ниже, если он не загружается.) Вы должны
теперь продолжайте исправлять его различными способами….
Исправление установки
Если вы следовали инструкциям, ваш компьютер теперь должен загрузиться
в OS X, выглядя очень похоже на то, что было раньше. Убунту это
установлен, однако, и ваш диск имеет гибридную MBR. Теперь вы должны предпринять шаги
вернуть гибридную MBR в более безопасную защитную MBR, как стандарт GPT
требуется, и настроить загрузчик, который позволит вам выбрать, какая ОС
для загрузки при включении компьютера. Для этого выполните следующие действия:
- В OS X запустите Терминал.
- Введите sudo gdisk /dev/disk0 (изменение диска
идентификатор при необходимости). Если в какой-либо момент следующих нескольких шагов
что-то кажется неправильным, введите q , чтобы выйти без сохранения
ваши изменения. - В gdisk введите x . Командная строка будет
измените его на команду «Эксперт» (? для справки):. - В gdisk введите или . Эта команда отображает
содержимое гибридной MBR, которая, вероятно, будет состоять из четырех
разделы, один из которых имеет тип 0xEE. Установщик Ubuntu создан
гибридный MBR (если его еще не было) в попытке
полезный. - В gdisk введите n . Программа не покажется
Делать что-нибудь; он просто покажет вам другую командную строку. - В gdisk снова введите или . Содержимое MBR
должен отличаться от предыдущего; должен быть только один раздел, из
введите 0xEE. Это защитная MBR, соответствующая стандартам. - В gdisk введите w , чтобы сохранить изменения.
- Распакуйте загруженный ранее zip-файл rEFInd. Если вы скачали
образ компакт-диска, смонтируйте его. - В Терминале перейдите в каталог, созданный при распаковке
REFInd zip-файл или в точку монтирования образа компакт-диска. - Тип ./install.sh. Это запускает скрипт, который
устанавливает rEFInd в загрузочный раздел OS X и «благословляет» программу
чтобы Mac использовал его при следующей загрузке. Если вы используете
шифрование всего диска в разделе OS X или если вы хотите установить
rEFInd к ESP, а не к загрузочному разделу OS X, введите ./install.sh esp, а не ./install.sh.Обновление: Если вы используете ядро 3.3.0 или более позднюю версию, вы можете пропустить большую часть оставшейся части этой страницы и вместо этого выполнить гораздо более простую операцию:
- Скопируйте драйвер EFI для файловой системы, которую вы использовали в / загрузка (или
ваша корневая файловая система, если вы не отделили /boot) от
Пакет rEFInd в подкаталог драйверов rEFInd
каталог установки, обычно это /EFI/refind. Примечание
что вы должны скопировать драйвер для вашего EFI
архитектура — коды архитектуры появляются в драйверах файловой системы.
имена файлов. Если вы не использовали ext2/3/4fs или ReiserFS в /boot,
этот вариант процедуры не будет работать. - При перезагрузке выделите один из параметров Linux, относящийся к
файл с именем vmlinuz- версия , где версия — это номер версии. - Дважды нажмите F2 или Insert, чтобы открыть редактор строк.
- Доп.ро
root=/dev/sda 5 в параметры ядра, изменив
/dev/sda 5 на идентификатор вашей корневой файловой системы. - Нажмите Enter. Это должно загрузить Linux, хотя экран может
полностью пустой в течение нескольких секунд. - Если он еще не существует, создайте каталог с именем
/загрузка/efi. - Отредактируйте /etc/fstab и добавьте запись для монтирования вашего ESP (обычно)
/dev/sda1 в /boot/efi. Запись должна напоминать
следующий:/dev/sda1 /boot/efi vfat ro,fmask=133 0 0
- Тип mount -a для установки ESP на
/загрузка/efi. - Запустите сценарий mkrlconf.sh, поставляемый с rEFInd, как в sudo ./mkrlconf.sh, набранный из каталога
где файл существует. Это действие должно создать файл с именем
/boot/refind_linux.conf, который кратко описан в разделе «Улучшение метода загрузки».
В этот момент должна быть возможность загрузить Linux путем перезагрузки
компьютер и выбрав одну из записей vmlinuz- версии
в меню rEFInd. Если это не сработает, продолжите основную процедуру
описано здесь…. - Скопируйте драйвер EFI для файловой системы, которую вы использовали в / загрузка (или
- Загрузите файл /efi/refind/refind.conf в текстовый редактор и найдите
закомментированная строка сканирования. (Если вы установили rEFInd на
ESP, вам нужно смонтировать ESP и загрузить файл конфигурации из
там.) Раскомментируйте строку сканирования, удалив начальный
решётка (#), а затем добавьте новый элемент, cd, в конец
линии. Он должен читать сканфор
внутренний, внешний, оптический, cd. (Если вы используете флэш-накопители USB,
добавить biosexternal вместо или в дополнение к cd. ) - Перезагрузка. Должно появиться меню rEFInd, как показано ниже. Ваше меню
Однако варианты могут отличаться от этих. (Эта система имеет два OS X
установки и работающая установка OpenSUSE, доступная через два
записи.) - Вставьте диск Super GRUB 2 в DVD-привод компьютера.
- Перезагрузите Mac, выбрав пункт перезагрузки (желтый значок с
круговая стрелка справа от ряда меньших значков). - Когда снова появится меню rEFInd, вы увидите новый значок Linux на дальнем конце.
справа от дисплея. (В зависимости от размера экрана и количества
загрузчиков ОС, обнаруженных rEFInd, вам может потребоваться прокрутить страницу, чтобы увидеть его.)
Выберите его. - Через некоторое время должно появиться меню GRUB 2. Выберите Обнаружить любой
Установка GRUB 2 (даже если MBR перезаписана) из
меню. Примечание. В моей системе, если я оставлю это меню открытым более двух или
три секунды, он зависает на этом месте. Если у вас такой же, вы
нужно действовать быстро! - Должно появиться новое меню со списком установок GRUB 2, которые он может
найти. В моей системе это состояло из одного
установка, обозначенная как (hd1,gpt6)/grub/core.img, поэтому
нет никакой двусмысленности: выберите это! (Конечно, номера ваших дисковых устройств
может отличаться от моего) - В этот момент должно появиться обычное меню Ubuntu GRUB 2, позволяющее
для загрузки Ubuntu, как на ПК. (Экран может полностью
черный для части процесса загрузки. Не волнуйся; это нормально.) - Когда появится экран входа в систему, войдите в свою установку Ubuntu.
- Щелкните Dash Home (значок в верхнем левом углу экрана) и
введите термин в поле поиска. Несколько иконок
должен появиться, в том числе один под названием Terminal. Щелкните ее, чтобы запустить
Терминальная программа. - Введите sudo mkdir /boot/efi, чтобы создать
стандартная точка монтирования для системного раздела EFI (ESP). - Введите sudo mount /dev/sda1 /boot/efi для монтирования
ESP в /boot/efi. (Измените /dev/sda1, если ваш ESP
имеет необычный номер раздела.) Вы можете использовать gdisk для проверки
номер ESP, если хотите. - Введите ls /boot/efi. Вы должны увидеть
содержимое ESP, которое, вероятно, будет состоять из одного каталога
называется эфи. Могут быть и другие файлы и каталоги, но
наверное их не много. Если окажется, что вы смонтировали неправильный
раздел, просмотрите макет раздела и команды, которые вы набрали
для установки ЭСП. Продолжайте только тогда, когда вы уверены, что установили ESP.
в /бут/ефи. - Введите sudo apt-get install grub-efi. Этот
заменяет версию BIOS GRUB, установленную установщиком Ubuntu
с версией GRUB на основе EFI. На самом деле это два разных
Версии GRUB с поддержкой EFI: grub-efi-ia32 и
grub-efi-amd64. Установка grub-efi устанавливает
пакет, подходящий для вашей системы, при условии, что вы установили
оптимальная архитектура. Если вы используете 32-разрядную версию Ubuntu на
последнюю 64-битную прошивку OS X, вам может потребоваться явно установить
grub-efi-amd64. Установка grub-efi также устанавливает
количество зависимостей, таких как efibootmgr - Введите sudo mkdir /boot/efi/efi/ubuntu/.
Эта команда создает дом для GRUB на ESP. (Обратите внимание на удвоение
efi в пути. Это , а не , опечатка.) - Введите sudo grub-install. (Последние версии
GRUB, похоже, требует опции. Передайте ему имя файла вашего устройства ESP, как
в sudo grub-install /dev/sda1.) Вы увидите
на экране появляется несколько сообщений, в том числе пара «фатальных»
ошибки о переменных EFI. Игнорируйте эти сообщения. Они вызваны
тот факт, что вы загружаетесь в режиме BIOS, и они не имеют значения
потому что задача, которую они должны выполнять, будет обрабатываться rEFInd. - Введите ls -l /boot/efi/efi/ubuntu. Вам следует
увидеть два файла, boot.efi и либо grubia32. efi, либо
grubx64.efi, в зависимости от вашей платформы. Они должны иметь
тот же размер файла; на самом деле они идентичны. - Если присутствуют оба этих файла, удалите один из них; имея оба
просто загромождает ваше меню rEFInd без необходимости. Если ты как-то ранишь
только с одним файлом, оставьте его на месте. Если вы не видите
любой файл, а затем выполните некоторые действия по устранению неполадок прямо сейчас; ты не сможешь
загрузитесь в Ubuntu без одного из этих файлов (или какого-либо другого загрузочного файла EFI).
загрузчик для Linux).
На этом этапе, если вы все сделали правильно, вы должны быть
возможность загрузки Ubuntu в режиме EFI. Когда вы перезагружаетесь, ваше меню rEFInd должно
включите новую опцию Ubuntu, как показано ниже. Выберите его и ваше меню GRUB
должно появиться; он будет похож на показанный ранее, хотя может использовать
другой шрифт и цветовая гамма.
Когда вы будете удовлетворены своей способностью загружать и использовать как Linux, так и
OS X, вы можете удалить загрузочный раздел BIOS с жесткого диска. Это
больше не нужен, но OS X может понадобиться свободное место там, где оно находится в
будущее. Вы можете использовать GParted, parted, gdisk или любой другой
инструмент разметки, чтобы удалить этот раздел.
Хотя моя собственная система, похоже, не страдает от его присутствия,
возможно, что некоторые компьютеры Mac будут испытывать замедление загрузки из-за
наличие версии BIOS загрузочного кода GRUB в жестком диске
МБР. Если вы думаете, что это происходит, вы можете ввести sudo dd if=/dev/zero of=/dev/sda bs=440 count=1, чтобы
устранить его. Будьте осторожны с этой командой ! Быть
абсолютно уверен что вы напечатали это правильно и особенно
числа bs=440 и count=1. Если вы пишете слишком много
данные таким образом, вы можете повредить таблицу разделов!
Если вы не использовали его раньше, вы можете просмотреть документацию rEFInd. Несмотря на то что
параметры по умолчанию хорошо работают для большинства систем, вы можете настроить некоторые
из них или установить вспомогательные программы, такие как программа-оболочка EFI.
Вы можете добавить запись для ESP в ваш /etc/fstab
файл, чтобы он автоматически монтировался при каждой загрузке.
следующая строка поможет в большинстве систем:
/dev/sda1 /boot/efi vfat ro,fmask=133 0 0
Вы можете настроить эту запись по своему усмотрению. /dev/sda1
Спецификация работает для большинства людей, но вы можете изменить ее, чтобы использовать
LABEL или спецификация UUID, как в
UUID=2B68-9A85. Это сделает конфигурацию более надежной.
если идентификатор диска изменится, потому что вы загружаетесь с другого диска
конфигурации или переразметить диск. Если вы это измените, вам понадобится
чтобы получить метку или значение UUID для вашего ESP. Введите blkid /dev/sda1 (изменив идентификатор устройства, если
необходимо) должен сделать это.
Улучшение метода загрузки
Хотя GRUB 2 часто работает в конфигурации, подобной той, которую я только что
описано, он также часто плохо себя ведет. Например, на моей новенькой Ubuntu
12.04 (менее 24 часов, когда я печатаю), GRUB 2 часто дает
мне ошибка «файл не найден» при выборе записи Ubuntu; то если я
выберите ту же запись , она загружается нормально. На других установках и
компьютеры, GRUB 2 привел к тому, что ядра начинают загружаться, а затем дают сбой;
он начал возвращать аварийное приглашение grub> без видимых
причина; и он плохо справляется с обнаружением ОС и ядер. Что
более того, на моем Mac система упаковки Ubuntu продолжает пытаться заменить
grub-efi с grub-pc, что приведет к
незагружаемая установка, если разрешено продолжить! По этим причинам GRUB 2
это загрузчик EFI, который я предпочитаю минимум . Тем не менее, некоторые люди
говорят, что это приемлемо для них, и это загрузчик Ubuntu по умолчанию, поэтому
Сценарии установки Ubuntu обычно справляются со своей задачей от приемлемой до хорошей.
автоматически настраивая его. Вот почему я предоставил инструкции
для установки GRUB 2. Я лично стараюсь удалить его как можно скорее
после установки или, по крайней мере, убрать его с пути, чтобы он не мог
нанести какой-либо реальный ущерб.
Если у вас с ним проблемы, вы можете переключиться на другой загрузчик EFI.
Мои загрузчики EFI для
На веб-странице Linux описаны доступные параметры. Если у вас есть
следовал указаниям на этой странице, мой личный фаворит на самом деле
довольно близко к работе: если вы можете установить ядро Linux с заглушкой EFI
включена поддержка загрузчика, rEFInd может запустить его напрямую, без посторонней помощи
GRUB. Основным препятствием, которое необходимо преодолеть в этом отношении, является то, что Ubuntu 12.04
устанавливает ядро 3.2.0, но загрузчик-заглушка EFI стал доступен с
ядро 3.3.0. Вот почему я рекомендовал установить Ubuntu 12.04.2, 13.04,
или более свежая версия Ubuntu; эти версии поставляются с 3.3.0 или более поздней версии
ядра. В общих чертах, чтобы использовать загрузчик-заглушку EFI, необходимо:
- Получите ядро с загрузчиком-заглушкой EFI, либо найдя подходящий
бинарный пакет или самостоятельно скомпилировав ядро. - При необходимости установите драйвер EFI для
файловая система, которую вы использовали в своем Linux-разделе /boot. Этот
не требуется, но может упростить настройку, позволив EFI загружать
ядро из его обычного дома в /boot. Если вы опустите это
Шаг, вам нужно будет скопировать ядро на том FAT или HFS+. (
возможность использования этого подхода к загрузке, поэтому я рекомендовал
создание отдельного раздела ReiserFS или ext2fs /boot; те
файловые системы Linux, для которых доступны драйверы EFI.) - Установите новое ядро и начальный RAM-диск в место, где
ESP может прочитать это. Как только что было сказано, это может быть /boot, если вы
установил EFI-драйвер. Если нет, то ESP может работать, по крайней мере теоретически.
(это не на моем Mac Mini, но это может быть проблема конкретной модели).
Том HFS+ также является опцией. (Как бы странно это ни звучало, преобразование
/boot для использования HFS+ может хорошо работать на Mac, но не на
ПК на базе UEFI.) - Либо переименуйте файл ядра Linux, чтобы он включал расширение .efi
расширение или раскомментируйте параметр scan_all_linux_kernels в
Файл refind. conf от rEFInd. Первый метод работает лучше всего, если вы
есть ядра, которые делают , а не включают поддержку загрузчика-заглушки EFI в
каталоги, которые rEFInd будет сканировать. Последний метод хорошо работает, если
вы используете дистрибутив, который предоставляет подходящие ядра, и вы
загруженные драйверы, чтобы EFI мог читать /boot. - Создайте файл с именем refind_linux.conf в каталоге, который
держит ваши ядра. Этот файл содержит наборы параметров ядра, по одному на строку.
как в:
"Загрузка со стандартными параметрами" "root=UUID=17c62fb9-a67a-4bae-97d7-3b71e5d3c8ce ro тихий всплеск $vt_handoff" "Загрузиться с минимальными параметрами" "root=UUID=17c62fb9-a67a-4bae-97d7-3b71e5d3c8ce ро" "Загрузка с использованием параметров восстановления" "root=UUID=17c62fb9-a67a-4bae-97d7-3b71e5d3c8ce ro recovery nomodeset"
Этот файл refind_linux.conf взят из рабочего
установки, но вам нужно настроить значение UUID для вашего собственного
компьютер, если вы используете его в качестве модели. При загрузке rEFInd использует первый
параметры строки по умолчанию, но нажав F2 или Insert при выборе
ядра в rEFInd, вы можете выбрать другой набор параметров.
Преимущество этого метода загрузки в том, что вам не нужно менять
конфигурационные файлы при установке нового ядра — просто поместите их с помощью
подходящее имя файла в каталоге ядра, и rEFInd обнаружит его и
используйте параметры из refind_linux.conf для его загрузки. Хотя GRUB 2
должен быть таким же простым в использовании, он достигает этой цели, запуская
серии сценариев конфигурации всякий раз, когда вы устанавливаете новое ядро и
обновление его конфигурационного файла. Этот процесс может пойти не так, особенно в
продвинутые или экзотические установки.
Если у вас есть проблемы с GRUB 2, ELILO и GRUB Legacy лучше всего
параметры, как описано на моей странице загрузчиков EFI.
У каждого есть преимущества и недостатки. На моем Mac Mini ELILO не работает,
но это может быть причуда конкретной модели. К сожалению, вам придется
настраивайте конфигурацию любого загрузчика всякий раз, когда вы обновляете ядро,
так что следите за этим!
Идем дальше
Вы можете обратиться к странице UEFIBooting, чтобы
узнать о дополнительных возможностях GRUB на Mac. Некоторые из этих страниц
инструкции не работали для меня, однако; предположительно они либо специфичны
к определенным моделям Mac или страница устарела.
Я надеюсь, что вы нашли эту веб-страницу информативной. Я понимаю процедуры
изложенные здесь сложны, но, на мой взгляд, стоит избавиться от
ненадежный и опасный гибридный MBR, даже если для этого требуются инвестиции
усилия, описанные здесь.
Ссылки
На следующих сайтах есть дополнительная информация, которую вы можете найти
полезно:
- Linux на вашем
Вики Apple Mac содержит разнообразную информацию о Linux/Mac.
интеграция. - Арка
Linux на сайте Macbook Air 4,2 описывает установку только для EFI
Arch Linux на Mac. - Я думаю, люди Arch любят Macbook, так как есть еще один
сайт с инструкциями по установке Arch на Macbook Air с помощью
загрузка EFI. - Загрузка
Linux внутри MacBook с использованием страницы GRUB и EFI описывает процесс
с упором на Debian и Ubuntu. - Мои загрузчики EFI
для Linux описаны все основные загрузчики Linux и
менеджеры загрузки для компьютеров на базе EFI. - Мой Linux в UEFI: A
Страница руководства по быстрой установке содержит полезные советы о том, как
установить Linux в системах на основе EFI. - Узнать о дополнительных настройках rEFInd можно в его официальной документации
сайт.
Если у вас есть проблемы или комментарии по поводу этой веб-страницы, пожалуйста,
напишите мне по электронной почте
родсмит@rodsbooks.com. Спасибо.
Вернуться на мою главную веб-страницу.
Как использовать интерактивную оболочку UEFI и ее общие команды
Материнские платы UEFI нового поколения поставляются с интерактивной оболочкой UEFI. Интерактивная оболочка UEFI — это простая программа-оболочка (например, bash), отвечающая за загрузку вашей операционной системы. Вы также можете использовать интерактивную оболочку UEFI для запуска команд и сценариев оболочки EFI. Его также можно использовать для обновления системной прошивки вашей материнской платы.
В этой статье показано, как получить доступ к интерактивной оболочке UEFI на материнских платах UEFI и использовать некоторые распространенные команды EFI в интерактивной оболочке UEFI. Итак, приступим.
Содержание:
- Что нужно знать
- Чтение флэш-накопителей USB из оболочки UEFI
- Запуск интерактивной оболочки UEFI
- Команда cls
- Команда эха
- Псевдоним Команда
- Команда помощи
- Набор Команда
- Команда карты
- Команды cd и ls
- Команда cp
- Команда МВ
- Команда rm
- Команда редактирования
- Команда выхода
- Команда сброса
- Другие команды оболочки EFI
- Перенаправление вывода
- Заключение
- Ссылки
Вещи, которые вам нужно знать:
В этой статье я использовал 2 разных подсказки для написания команд оболочки EFI.
Shell> — я использовал это приглашение для команд, которые вы можете запускать из любого места.
fs1:\*> — я использовал это приглашение, чтобы уточнить, что вам нужно выбрать определенное устройство хранения (в данном случае fs1) или находиться в определенном каталоге перед запуском команд.
Помните об этом, пока читаете эту статью.
Чтение флэш-накопителей USB из оболочки UEFI:
Интерактивная оболочка UEFI может читать флэш-накопители USB, если они отформатированы как FAT16 или FAT32. Итак, предположим, вы написали несколько сценариев EFI или загрузили какие-либо сценарии EFI с официального сайта производителя вашей материнской платы. В этом случае вам придется поместить их на USB-накопитель в формате FAT16 или FAT32, чтобы получить доступ и запустить их из интерактивной оболочки UEFI.
Запуск интерактивной оболочки UEFI:
Сначала выключите компьютер. Затем включите компьютер. Сразу после нажатия кнопки питания продолжайте нажимать клавишу
Затем в разделе выбора загрузки прошивки BIOS/UEFI вашей материнской платы вы должны найти возможность входа в интерактивную оболочку UEFI.
На моем одноплатном компьютере Odyssey X86 этот параметр находится в меню «Сохранить и выйти» > «UEFI: встроенная оболочка EFI», как показано на изображении ниже.
Вариант внутренней оболочки EFI на моей виртуальной машине VMware, как вы можете видеть на снимке экрана ниже.
Когда вы входите в интерактивную оболочку UEFI в первый раз, она распечатает все устройства хранения, обнаруженные вашим компьютером, как вы можете видеть на снимке экрана ниже.
После нажатия любой клавиши, кроме
В следующих разделах я покажу вам, как использовать некоторые из наиболее распространенных команд EFI Shell. Итак, давайте двигаться дальше.
Команда cls:
Команда cls в основном используется для очистки выходных данных экрана.
У вас может быть много текстов на экране, как вы можете видеть на скриншоте ниже.
Чтобы очистить тексты на экране, выполните команду cls следующим образом:
Shell> cls
Тексты на экране должны быть очищены.
Вы также можете изменить цвет фона оболочки EFI с помощью команды cls.
Чтобы изменить цвет фона EFI Shell, запустите команду cls следующим образом:
Shell> cls
На момент написания этой статьи команда cls поддерживает следующий
0 – Black
1 – Blue
2 – Green
3 – Cyan
4 – Red
5 – Magenta
6 – Yellow
7 – светло-серый
Например, чтобы изменить цвет фона на синий (1), выполните команду cls следующим образом:
Shell> cls 2
Цвет фона должен быть изменен на синий (1) , как вы можете видеть на скриншоте ниже.
Чтобы изменить цвет фона на черный, выполните команду cls следующим образом:
Shell> cls 0
Цвет фона должен быть изменен на черный (0), как вы можете видеть на снимке экрана ниже.
Команда echo:
Команда echo используется для печати строки текста в оболочке EFI.
Например, чтобы напечатать текст Hello World, запустите команду echo следующим образом:
Shell> echo «Hello World»
Как видите, текст Hello World печатается в оболочке EFI.
При желании вы также можете не использовать кавычки.
Псевдоним Команда:
Вы можете перечислить все псевдонимы команд оболочки EFI с помощью команды псевдонима.
Чтобы просмотреть все псевдонимы команд оболочки EFI, запустите команду псевдонимов следующим образом:
Shell> псевдоним
Как видите, перечислены все псевдонимы команд оболочки EFI.
Вы также можете использовать команду псевдонимов для создания или удаления псевдонимов.
Чтобы создать псевдоним команды print_hello, которая запускает команду echo Hello World, вы можете запустить команду псевдонима следующим образом:
Shell> alias print_hello «echo Hello World»
Как видите, создается новый псевдоним print_hello.
Теперь вы можете запустить команду print_hello следующим образом:
Shell> print_hello
По умолчанию созданные вами псевдонимы сохраняются после перезагрузки системы. Это хорошо, конечно. Но если вы не хотите, чтобы ваши псевдонимы сохранялись после перезагрузки системы, вы можете создать изменчивый псевдоним, используя параметр -v.
Вы можете создать тот же псевдоним print_hello, что и изменчивый псевдоним, используя параметр -v следующим образом:
Shell> псевдоним -v print_hello «echo Hello World»
Вы можете удалить псевдоним, используя параметр -d команды псевдонима.
Чтобы удалить псевдоним print_hello, запустите команду псевдонима с параметром -d следующим образом:
Shell> псевдоним -d print_hello
Как видите, псевдоним print_hello удален из списка псевдонимов.
Shell> псевдоним
Команда справки:
Команда справки используется для поиска команд оболочки EFI с использованием шаблонов.
Например, чтобы найти все команды оболочки EFI, начинающиеся с буквы m, можно запустить команду справки следующим образом:
Shell> help m*
вы можете видеть на скриншоте ниже.
Таким же образом вы можете найти все команды оболочки EFI, которые заканчиваются на m, следующим образом:
Shell> help *m
Все команды оболочки EFI, которые заканчиваются на m, перечислены, как вы можете см. на скриншоте ниже.
Вы также можете узнать, как использовать команду оболочки EFI, какие параметры они поддерживают и для чего каждый параметр использует команду справки. Наконец, вы можете сравнить ее с командой man в Linux.
Например, чтобы узнать, как использовать команду псевдонима, запустите команду справки следующим образом:
Shell> псевдоним справки
Необходимо отобразить много информации о команде справки.
Если справочная информация по определенной команде очень длинная, вы можете нажать клавиши
Если вывод слишком длинный, вам понадобится пейджер, чтобы прочитать его. Опять же, вы можете сравнить это с программой less для Linux. Но в отличие от программы без Linux, пейджер EFI Shell прокручивает страницу за страницей, а не построчно.
Чтобы использовать пейджер для команды справки, используйте параметр -b команды справки следующим образом:
Shell> help -b псевдоним
можете видеть на скриншоте ниже.
Вы можете нажать
Чтобы закрыть пейджер, нажмите q, а затем нажмите
Команда set:
Команда set используется для вывода списка всех доступных переменных среды оболочки EFI.
Чтобы просмотреть все доступные переменные среды оболочки EFI, выполните команду set следующим образом:
Shell> set
Все переменные среды оболочки EFI перечислены, как вы можете видеть на снимке экрана ниже.
Вы также можете создавать свои собственные переменные среды EFI Shell.
Чтобы создать файл переменной среды EFI Shell с содержимым boot.img, выполните команду set следующим образом: скриншот ниже.
По умолчанию созданные вами переменные среды оболочки EFI сохраняются после перезагрузки системы. Однако вы можете создать изменчивые переменные среды EFI Shell, используя параметр -v команды set, если вы этого не хотите.
Например, чтобы создать ту же переменную файловой среды, что и переменная переменная среды, запустите команду set следующим образом:
Shell> set -v file image.boot
Вы также можете удалить переменные среды оболочки EFI.
Чтобы удалить файл переменной среды EFI Shell, выполните команду set следующим образом:
Shell> set -d file
Переменная среды файла больше не должна быть доступна, как вы можете видеть на снимке экрана ниже.
Shell> set
Команда карты:
Команда карты печатает таблицу сопоставления всех устройств хранения данных вашего компьютера. Из таблицы сопоставления вы можете найти имя устройства хранения вашего компьютера. Чтобы получить доступ к устройству хранения из оболочки EFI, вам потребуется имя этого устройства хранения.
Чтобы получить список всех устройств хранения вашего компьютера из оболочки EFI, выполните команду map следующим образом:
Shell> map
Все устройства хранения и их имена должны быть перечислены, как вы можете видеть на скриншоте ниже.
Если вы вставите в компьютер новое запоминающее устройство, например флэш-накопитель USB, оно не будет автоматически указано в таблице сопоставления. Вместо этого вам придется обновить таблицу сопоставления вручную.
Вы можете обновить таблицу сопоставления оболочки EFI с помощью параметра -r команды map следующим образом:
Shell> map -r
Таблица сопоставления EFI Shell должна быть обновлена, и ваше новое устройство хранения должно быть указано в новой таблице сопоставления, как вы можете видеть на снимке экрана ниже.
Команды cd и ls:
Вы можете выбрать запоминающее устройство, используя имя запоминающего устройства.
Например, чтобы выбрать устройство хранения fs1, вы можете запустить следующую команду:
Shell> fs1:
Приглашение должно быть изменено на fs1:\>, как вы можете видеть на снимке экрана ниже.
Теперь вы можете перечислить все файлы и каталоги на устройстве хранения fs1 (текущий рабочий каталог) следующим образом:
fs1:\> ls
Как видите, все файлы и перечислены каталоги устройства хранения fs1.
Вы также можете использовать относительные пути к каталогам с командой ls, чтобы получить список файлов и каталогов этого каталога.
Например, чтобы просмотреть список файлов и каталогов каталога scripts\ (относительно вашего текущего рабочего каталога), вы можете запустить команду ls следующим образом:
fs1:\> ls scripts
Должны быть перечислены файлы и каталоги каталога scripts\.
Каталог scripts\ в моем случае пуст.
Вы также можете использовать абсолютные пути с командой ls.
Например, чтобы вывести список всех файлов и каталогов устройства хранения fs0, выполните команду ls следующим образом:
Shell> ls fs0:
Должны быть перечислены все файлы и каталоги устройства хранения fs0, как вы можете видеть на скриншоте ниже.
Вы можете рекурсивно вывести список файлов и каталогов, используя параметр -r команды ls.
Например, чтобы рекурсивно просмотреть все файлы и каталоги устройства хранения fs0, выполните команду ls следующим образом:
Shell> ls -r fs0:
быть перечислены рекурсивно, как вы можете видеть на скриншоте ниже.
Если список файлов и каталогов слишком длинный и не помещается на экране, вы можете использовать параметр -b команды ls для использования пейджера.
Вы можете рекурсивно перечислить все файлы и каталоги устройства хранения fs0 и использовать пейджер для вывода следующим образом: вывод, как показано на скриншоте ниже.
Вы можете использовать команду cd для перехода к другому каталогу выбранного вами устройства хранения. Это сделает ваши команды короче, так как вам не придется вводить длинные пути к каталогам.
Например, чтобы перейти в каталог scripts\ выбранного устройства хранения fs1, вы можете запустить команду cd следующим образом:
fs1:\> cd scripts
Текущий рабочий каталог следует изменить на fs1: \scripts\, как вы можете видеть на скриншоте ниже.
Чтобы вернуться на один каталог — в родительский каталог, вы можете запустить команду cd следующим образом:
fs1:\scripts> cd ..
Вы должны быть на один каталог выше, как вы можете видеть на скриншот ниже.
Команда cp:
Команда cp используется для копирования файлов с одного устройства хранения на другое или в пределах одного устройства хранения.
У меня есть файл hello.txt на устройстве хранения данных fs1, как вы можете видеть на скриншоте ниже.
fs1:\> ls
Чтобы создать новую копию hello.txt, запустите команду cp следующим образом:
fs1:\> cp hello.txt hello2.txt
. Новый файл hello. txt, а содержимое файла hello.txt следует скопировать в файл hello2.txt.
fs1:\> ls
Если вы хотите скопировать файл hello.txt в каталог scripts\ на том же устройстве хранения, используя относительный путь к каталогу, выполните команду cp следующим образом:
fs1:\> cp hello.txt scripts
Как видите, файл hello.txt копируется в каталог scripts\.
fs1:\> ls scripts
Вы также можете использовать абсолютный путь для копирования файла hello.txt в каталог \scripts следующим образом:
fs1:\> cp \hello.txt \scripts
Поскольку файл уже существует, команда cp спросит вас, хотите ли вы его перезаписать.
Если вы хотите перезаписать файл, нажмите y, а затем нажмите
Если вы не хотите перезаписывать файл, нажмите n, а затем нажмите
Если вы хотите перезаписать все уже существующие файлы, нажмите a, а затем нажмите
Если вы не знаете, что делать, нажмите c и нажмите
Файл hello.txt следует скопировать в каталог \scripts.
Таким же образом, если вы хотите скопировать файл hello.txt в корневой каталог другого устройства хранения fs0, вы можете запустить команду cp следующим образом:
fs1:\> cp hello.txt fs0: \
Как видите, файл hello.txt скопирован в корень накопителя fs0.
Shell> ls fs0:\
Вы также можете рекурсивно скопировать содержимое каталога в другой каталог или на другое устройство хранения, используя параметр -r команды cp.
Чтобы рекурсивно скопировать содержимое каталога fs0:\EFI на запоминающее устройство fs1, выполните команду cp следующим образом:
Shell> cp -r fs0:\EFI\ fs1:\ каталоги в каталоге fs0:\EFI должны быть скопированы на устройство хранения fs1, как вы можете видеть на снимке экрана ниже.
Как видите, каталоги ubuntu\ и BOOT\ из каталога fs0:\EFI рекурсивно копируются на устройство хранения fs1.
Shell> ls fs0:\EFI
Shell> ls fs1:\
Если вы хотите скопировать каталог fs0:\EFI, а также содержимое этого каталога на устройство хранения fs1, выполните команду cp как следующим образом:
Shell> cp -r fs0:\EFI fs1:\
Как видите, каталог fs0:\EFI рекурсивно копируется на устройство хранения fs1.
Оболочка > ls fs0:\
Оболочка > ls fs1:\
Команда mv:
Команда mv работает так же, как и команда cp. Единственное отличие состоит в том, что команда mv перемещает файлы или каталоги из источника в место назначения, а не копирует их.
Поскольку команды mv и cp похожи, я не буду их здесь объяснять. Просто прочитайте раздел «Команда cp» и замените команды cp на команду mv. Вы будете хорошо идти.
Существует еще один вариант использования команды mv. Команда mv также используется для переименования файлов и каталогов.
Например, чтобы переименовать файл hello2.txt в hello3.txt, выполните команду mv следующим образом:
fs1:\> mv hello2.txt hello3.txt
Файл hello2.txt следует переименовать в hello3 .текст.
Как видите, файл hello2.txt больше не находится на устройстве хранения fs1 и был переименован в hello3.txt.
fs1:\> ls
Таким же образом вы можете переименовать каталог с помощью команды mv.
Например, чтобы переименовать каталог ubuntu\ в debian\, выполните команду mv следующим образом:
fs1:\> mv ubuntu debian
Как видите, каталог ubuntu\ переименован в debian\.
fs1:\> ls
Команда rm:
Команда rm используется для удаления файлов и каталогов с ваших устройств хранения.
Чтобы удалить файл hello3.txt с устройства хранения fs1, выполните команду rm следующим образом:
fs1:\> rm hello3. txt
Файл hello3.txt должен быть удален.
Как видите, файла hello3.txt больше нет на устройстве хранения fs1.
fs1:\> ls
Таким же образом вы можете удалить каталог debian\ с устройства хранения fs1 следующим образом: которые могут содержать другие файлы и каталоги, команда rm спросит вас, хотите ли вы их удалить. Это мера безопасности, чтобы вы случайно не удалили важные файлы.
Чтобы подтвердить операцию удаления, нажмите y, а затем нажмите
Каталог debian\ и его содержимое должны быть удалены.
Как видите, каталог debian\ больше недоступен на устройстве хранения fs1.
fs1:\> ls
Команда редактирования:
Оболочка EFI поставляется с базовой программой текстового редактора под названием EFI Editor. Это очень полезно, так как вы можете очень легко редактировать файлы конфигурации из оболочки EFI.
Вы можете открыть файл hello.txt с устройства хранения fs1 с помощью программы EFI Editor следующим образом:
fs1:\> изменить hello. txt
Файл hello.txt следует открыть с помощью программы EFI Editor . Здесь вы можете редактировать свой текстовый/конфигурационный файл.
После редактирования файла hello.txt нажмите
Файл hello.txt следует сохранить.
Чтобы закрыть программу EFI Editor, нажмите
Если у вас есть несохраненные изменения, программа EFI Editor спросит вас, хотите ли вы их сохранить.
Нажмите y, чтобы сохранить изменения и закрыть программу EFI Editor.
Нажмите n, чтобы отменить изменения и закрыть программу EFI Editor.
Нажмите c, если вы передумали и больше не хотите закрывать программу EFI Editor.
Программа EFI Editor имеет множество других замечательных функций. К сожалению, в рамках этой статьи невозможно показать их все.
Вы можете посмотреть в нижней части программы EFI Editor, и вы должны найти всю информацию, необходимую для использования других функций программы EFI Editor. Кроме того, вы можете сравнить программу EFI Editor с текстовым редактором nano Linux. Это потрясающе.
Команда выхода:
Команда выхода используется для закрытия оболочки EFI и возврата к прошивке BIOS/UEFI вашей материнской платы.
Чтобы закрыть оболочку EFI, выполните команду выхода следующим образом:
Shell> exit
Было бы лучше, если бы вы вернулись к прошивке BIOS/UEFI вашей материнской платы, как вы можете видеть на скриншоте ниже.
Команда сброса:
Команда сброса используется для сброса или перезагрузки компьютера.
Чтобы перезагрузить компьютер из оболочки EFI, выполните команду сброса следующим образом:
Shell> reset
Команду сброса также можно использовать для выключения компьютера.
Чтобы выключить компьютер из оболочки EFI, запустите команду сброса с параметром -s следующим образом:
Shell> reset -s
Другие команды оболочки EFI:
Существует множество других команд оболочки EFI. Охватить их все выходит за рамки этой статьи. Но вы можете прочитать документацию EFI Shell[1], чтобы узнать о них. Вы также можете использовать команду справки, чтобы узнать о доступных командах EFI Shell. Вы также можете использовать команду справки, чтобы прочитать документацию по командам EFI Shell. Документация EFI Shell очень обширна и полна информации и примеров. Это также очень просто и легко следовать. У вас не должно возникнуть проблем с чтением.
Перенаправление вывода:
Как и bash и другие оболочки Linux, оболочка EFI также поддерживает перенаправление вывода. Таким образом, вы можете перенаправить вывод команды оболочки EFI в файл, используя функцию перенаправления вывода оболочки EFI.
Например, вы можете перенаправить вывод команды echo «Hello World» в файл message.txt следующим образом:
fs1:\> echo «Hello World» > message.txt
Новое сообщение в файле .txt должен быть создан, как вы можете видеть на скриншоте ниже.
fs1:\> ls
Как видите, он содержит содержимое Hello World.
fs1:\> edit message.txt
Если вы хотите добавить (добавить в конец файла) вывод другой команды echo «Удачи» (скажем) в файл message.txt, вы можно использовать символ >> вместо символа > следующим образом:
fs1:\> echo «Удачи» >> message.txt
Как видите, текст «Удачи» добавляется в конец файл сообщение.txt.
fs1:\> edit message.txt
Таким же образом можно перенаправить вывод команды help map в файл map-help.txt следующим образом:
fs1:\> help map > map -help.txt
Как видите, создается новый файл map-help.txt.
fs1:\> ls
Как видите, вывод команды help map перенаправляется в файл map-help.txt.
fs1:\> редактировать карту-help.txt
ПРИМЕЧАНИЕ : Когда вы выполняете перенаправление вывода, вы должны помнить разницу между символами > и >>. Это очень важно. Если у вас недостаточно знаний об этих символах, вы можете потерять важные данные.
Допустим, вы выполнили следующую команду в оболочке EFI:
Shell> команда > файл
Здесь символ > перенаправляет вывод команды в файл. Если файл не существует, он будет создан. Если файл существует, содержимое файла будет заменено выводом команды. Это очень важно помнить.
Теперь предположим, что вы запустили приведенную выше команду оболочки EFI, используя символ >> следующим образом:
Команда Shell> >> файл
Здесь будет добавлен символ >> (добавится в конец файла) вывод команды в файл, если файл существует. Если файл не существует, он будет создан, а вывод команды добавлен в файл.
Итак, если файл не существует, символы > и >> сделают то же самое — создадут файл и добавят вывод команды в файл.
Если на вашем устройстве хранения много файлов, несложно ошибиться и потерять важные данные. Поэтому я рекомендую использовать символ >> вместо символа > для перенаправления вывода, если у вас нет особых требований. Затем он будет делать то же самое. Таким образом, если вы сделаете ошибку, вы всегда сможете удалить лишние строки, которые были добавлены к файлу, чтобы вернуться к предыдущему состоянию.
Заключение:
В этой статье показано, как запустить интерактивную оболочку UEFI и использовать общие команды оболочки EFI. Я также показал вам, как использовать функцию перенаправления вывода EFI Shell. Наконец, я показал вам, как получить доступ к устройствам хранения вашего компьютера из оболочки EFI и как создавать, копировать, перемещать, переименовывать и редактировать файлы из оболочки EFI. Эта статья должна помочь вам начать работу с командами UEFI Interactive Shell и EFI Shell.
Ссылки:
[1] Справочное руководство по командам оболочки — Intel
[2] Основные инструкции по использованию расширяемого интерфейса встроенного ПО (EFI)
Загрузка компьютеров Mac — документация по docosx 0.2
4 или 5 компьютеров Mac. Это было очень утомительно
и трудно заставить машины загружаться. Одна проблема, которая возвращалась каждый раз
заключалась в том, что я не тратил достаточно сил, пытаясь понять процесс загрузки.
Это учебник, чтобы напомнить себе о том, что я понял, и собрать
ссылки на полезную информацию.
Именование частей
- Диспетчер загрузки
- См. справочную информацию на странице rEFInd. Менеджер загрузки — это программа, позволяющая
вам выбирать, какую из нескольких программ запускать при загрузке машины.
Отличие от загрузчика . - Загрузчик
- Это программное обеспечение, которое после загрузки загружает в память программу,
может запустить операционную систему. GRUB — это один из примеров программного обеспечения, которое
предоставляет менеджер загрузки и загрузчик . - ЭФИ
- Расширяемый интерфейс прошивки. Впервые выпущен в качестве спецификации
Intel, затем пересмотренный группой поставщиков и выпущенный как UEFI. ЭФИ часто
на самом деле относится к UEFI. См. Intel EFI/UEFI. EFI и UEFI заменяют
старый стандарт прошивки биоса. Спецификации EFI имеют версии, начинающиеся с 1.x — для
Например, последней спецификацией EFI только для Intel была версия 1.10 (2005 г.). - UEFI
- Унифицированный расширяемый интерфейс встроенного ПО — см. UEFI. Разработан и выпущен компанией
Единый форум EFI. Спецификации UEFI имеют номера выпусков формы 2.x.
Версия 2.1 была выпущена в январе 2007 года, версия 2.4 — в июле 2013 года.
представитель на едином форуме EFI.
Что касается страниц REFInd, я буду использовать EFI для обозначения как EFI, так и UEFI, если
есть какая-то причина различать их, и в этом случае я проясню это.
EFI и BIOS
Система EFI/UEFI заменяет стандарт прошивки BIOS.
Программное обеспечение, которое ожидает доступа к системным вызовам BIOS, расстроится и остановится
работает при попытке запуска поверх EFI и наоборот. Это подходит для нас
Владельцы компьютеров Mac, потому что более старые операционные системы, такие как Windows XP, нуждаются в BIOS для
работать против, и поэтому есть несколько обручей, через которые нужно перепрыгнуть, чтобы получить XP
загрузиться в системе EFI, такой как Mac.
Как и система BIOS, система EFI предоставляет:
- Службы загрузки: службы, которые работают только во время загрузки системы
- Службы времени выполнения: службы, которые ОС может использовать для запроса оборудования и т. д.
во время работы ОС.
Диски с таблицей разделов EFI и GUID
Спецификации EFI включают спецификации для раздела GUID
формат таблицы. Формат GPT — это способ размещения таблицы разделов на
диск. Это альтернатива старой таблице разделов основной загрузочной записи.
формат. Большинство загрузочных систем EFI читают только таблицы разделов GPT, но некоторые также
читать таблицы MBR. Некоторые системы загрузки BIOS используют таблицы GPT из-за их
технические преимущества.
Стандартная загрузка EFI/UEFI
- В прошивке есть менеджер загрузки (, а не на диске)
- прошивка также должна уметь читать таблицы разделов и файловые системы FAT.
- Диспетчер загрузки встроенного ПО считывает системный раздел EFI — раздел на
диск с определенным идентификационным кодом раздела. Он использует файловую систему FAT. - Менеджер загрузки может загружать исполняемых программ EFI из системы EFI
раздел. Исполняемые программы EFI — это программы, которые могут работать без
поддержка операционной системы с использованием только сервисных вызовов встроенного ПО EFI. Эти
программы часто являются загрузчиками (см. выше), но могут быть и другими полезными
программы, такие как диагностические утилиты. - Выбор возможных исполняемых программ EFI может быть явным или неявным,
управляется определенной переменнойBootOrder
, хранящейся в энергонезависимой ОЗУ
(NVRAM):- Если определена переменная
BootOrder
, параметры загрузки являются явными.
ПеременнаяBootOrder
содержит список дополнительных переменных EFI NVRAM,
каждый определяет исполняемую программу EFI для запуска и любые параметры для передачи
к той программе. Каждая переменная EFI, на которую указываетBootOrder
соответствует
к выбору, который пользователь должен увидеть при запуске менеджера загрузки. Ботинок
Затем менеджер запускает выбранную программу с заданными параметрами. - Если
BootOrder
не определен, то параметры загрузки неявны, в
что менеджер загрузки должен искать все диски в системе для
исполняемый исполняемый файл EFI. Диспетчер загрузки ищет системные разделы EFI на
фиксированных дисков и предполагает наличие только одного раздела для съемных дисков.
В любом случае менеджер загрузки ищет файлы с именами вида:
\EFI\BOOT\BOOT{краткое имя типа машины}.EFI
, где{тип машины
соответствует архитектуре процессора. Краткое имя может быть одним из
короткое имя}
IA32
(32-разрядная версия Intel),X64
(64-разрядная версия),IA64
(Itanium)ARM
,
AA64
(ARM 32 и 64 бит). Например,\EFI\BOOT\BOOTX64.EFI
соответствует
64-битная стандартная архитектура Intel.
- Если определена переменная
EFI на Mac
Процесс загрузки на Mac сильно отличается от стандартного для EFI (см.
efi-boot-процесс
и РЕФИТ мифы и факты).
Специализации в Apple EFI
Apple загружается не сразу в стандартной последовательности загрузки EFI, а вместо этого
загружает собственный нестандартный менеджер загрузки.
Прошивка Apple EPI также поддерживает HFS+ (стандартный формат дисков Apple)
в качестве стандартного требуемого формата файла FAT.
Apple также может включить режим совместимости с BIOS при загрузке. Совместимость с БИОС
делает системные вызовы BIOS доступными для загружаемой операционной системы.
эмулировать загрузку в стандартной настройке прошивки BIOS. Приходит эмуляция биоса
из модуля поддержки совместимости (CSM) — см. EFI, Ubuntu и Intel CSM.
документы
Я не вижу условий для включения эмуляции BIOS из документации перед
мне. На онлайн-странице руководства bless указан флаг --legacy
, который, по-видимому,
активировать эмуляцию BIOS при последующей загрузке. Цитата из EFI и Ubuntu:
Насколько я могу судить, режим эмуляции BIOS работает только тогда, когда на жестком диске присутствует гибридная MBR или когда в оптический привод вставлен оптический диск с загрузкой BIOS.
Подробнее см. гибридный MBR. Вкратце есть взлом GUID
таблица разделов, из-за которой GPT также может выглядеть как MBR. Яблоко
Утилиты «Bootcamp» создают этот гибридный MBR при создании раздела для установки
Windows XP, но вы также можете сделать это с помощью GPT fdisk Рода Смита ( gdisk
)
Процесс загрузки
При загрузке запускается диспетчер загрузки Apple.
Диспетчер загрузки Apple использует результаты предыдущих команд
bless
для
выберите способ загрузки. Командыbless
могли указывать на:- Файл, содержащий файл
.efi
для выполнения - Папка, содержащая файл
boot.efi
файл для выполнения - Раздел, с которого загружаться (в
efi-boot-device
Переменная NVRAM)
bless
устанавливает необходимые переменные NVRAM. В некоторых режимахблагословит также
записывает расположение загрузочного файла efi в заголовок тома HFS+, так что
расположение загрузочного файла сохраняется, если диск перемещается на другой
компьютер или память NVRAM очищается (см.- Файл, содержащий файл