Работа с загрузочной частью HDD с GUID разметкой (EFI)

26 декабря 2009 - 07:50

Работа с загрузочной частью HDD с GUID разметкой (EFI)
EFI (Extensible Firmware Interface) представляет собой тип интерфейса между микропрограммами, оборудованием и операционной системой компьютера. EFI предназначен существенно улучшить старый BIOS интерфейс, который традиционно используется всеми IBM PC совместимыми персональными компьютерами. Первоначально спецификация EFI была разработана Intel. В настоящее время разработку EFI курирует Unified EFI Forum (UEFI).

Extensible Firmware Interface

Интерфейс, определённый спецификацией EFI, включает таблицы данных, содержащие информацию о платформе, загрузочные и runtime-сервисы, которые доступны для загрузчика операционной системы (ОС) и самой ОС. Некоторые существующие расширения BIOS, типа ACPI и SMBIOS, также присутствуют в EFI, поскольку не требуют 16-разрядного runtime-интерфейса.

EFI определяет «загрузочные сервисы», которые включают поддержку текстовой и графической консоли на различных устройствах, шин, блоков и файловых сервисов, и runtime-сервисы, например дата, время и энергонезависимая память.

В дополнение к стандартным, архитектурно-зависимым драйверам устройств, спецификация EFI предусматривает независимую от платформы среду драйверов, названную EFI Byte Code (EBC). От системного встраиваемого ПО (firmware) спецификацией UEFI требуется иметь интерпретатор для любых образов EBC, которые загружены или могут быть загружены в среду. В этом смысле, EBC подобен Open Firmware, независимому от аппаратных средств встраиваемому ПО, используемому в компьютерах Apple Macintosh и Sun Microsystems SPARC.

Некоторые архитектурно-зависимые (non-EBC) типы драйверов EFI могут иметь интерфейсы для использования ОС. Это позволяет ОС использовать EFI для базовой поддержки графики и сети, до загрузки драйверов, определённых в ОС.

Менеджер загрузки EFI используется для выбора и загрузки ОС, исключая потребность в специализированном механизме загрузки (загрузчик ОС является приложением EFI). В дополнение к стандартной схеме разметки дисков — Master boot record (MBR), EFI имеет поддержку GUID Partition Table (GPT), которая свободна от характерных для MBR ограничений. Спецификация EFI не включает описание для файловых систем, однако реализации EFI обычно поддерживают FAT32 как файловую систему.

Сообщество EFI создало открытую среду оболочки (shell environment).[4] Пользователь для выполнения некоторых операций может загрузить оболочку EFI (EFI shell), вместо того, чтобы загружать ОС. Оболочка — приложение EFI; она может постоянно находиться в ПЗУ платформы или на устройстве, драйверы для которого находятся в ПЗУ.

Оболочка может использоваться для выполнения других приложений EFI, таких как настройка, установка ОС, диагностика, утилиты конфигурации и обновления прошивок. Она также может использоваться, чтобы проиграть CD или DVD носители не загружая ОС, при условии, что приложения EFI поддерживают эти возможности. Команды оболочки EFI также позволяют копировать или перемещать файлы и каталоги в поддерживаемых файловых системах, загружать и выгружать драйверы. Также оболочкой может использоваться полный TCP/IP стек.

Оболочка EFI поддерживает сценарии в виде файлов .nsh, аналогичных пакетным файлам в DOS.
Названия команд оболочки часто наследуются от интерпретатора командной строки (COMMAND.COM или Unix shell). Оболочка EFI может рассматриваться как функциональная замена интерпретатора командной строки и текстового интерфейса BIOS.

Расширения EFI могут быть загружены с практически любого энергонезависимого устройства хранения данных, присоединённого к компьютеру. Например, OEM-производитель может продать систему с разделом EFI на жёстком диске, который добавил бы дополнительные функции к встраиваемому ПО EFI, размещённому в ПЗУ материнской платы.
Wiki.©

Работаем с разделом EFI

Данный Туториал предполагает, что ваш загрузочный раздел (том) disk0(1,2…) отформатирован в HFS, GPT — GUID Partition Table — GUID разметка диска и система расположена на первом (видимом) разделе (томе). Если все вышеупомянутое соблюдено, то можем начинать работу с EFI. Скачайте Chameleon RC2 or RC3 binaries.
Терминал
За любые дальнейшие действия ответственность несете только вы, по этому делаете на свой страх и риск. Если вы не понимаете или не до конца понимаете всего здесь изложенного, то лучше откажитесь от затеи.
Итак, начнем пожалуй. Первое, что нам нужно это запустить Терминал, наш основной рабочей инструмент. Для быстрого запуска терминала я прикрепил Applescript к посту просто скачайте его и запустите Terminal Run.app.zip.

Нам требуется получить информацию по системной структуре нашим жестких дисков (далее disk)

Check disk structure — Проверка дисковой структуры


diskutil list

Пример:


g62-133-179-228:~ Boojin$ diskutil list
/dev/disk0
#:____TYPE NAME_______________SIZE________IDENTIFIER
0:____FDisk_partition_scheme_____*931.5 Gi_______disk0
1:____Windows_NTFS Data 1Tb_____931.5 Gi______disk0s1
/dev/disk1
#:____TYPE NAME_______________SIZE________IDENTIFIER
0:____GUID_partition_scheme______*149.1 Gi______disk1
1:____EFI_______________________200.0 Mi______disk1s1
2:____Apple_HFS MacOSX__________30.0 Gi_______disk1s2
3:____Apple_HFS Data_____________118.6 Gi_______disk1s3
/dev/disk2
#:____TYPE NAME_______________SIZE________IDENTIFIER
0:____GUID_partition_scheme______*74.5 Gi_______disk2
1:____EFI_______________________200.0 Mi______disk2s1
2:____Apple_HFS  Flash'ka________74.2 Gi________disk2s2

* — этот символ напротив указывает какой из дисков/разделов является активным.

Ищем наш системный диск, если он disk0, то переходим к следующему шагу. Если нет то запоминаем его порядковый номер, он может быть disk1 или disk2… это не имеет особого значения. Мой системный диск disk1, следовательно EFI раздел disk1s1, что мы и видем в примере.

Инсталируем Chameleon в свой EFI

Получаем полные Админ права для сессии:

sudo -s

Вводим свой пароль — enter password

Форматируем (Reformat) EFI:

newfs_hfs -v EFI /dev/disk1s1

Если вам всего лишь нужно очистить EFI раздел, то остановитесь, на этой команде.

Монтируем EFI раздел – Mount EFI:


mkdir /Volumes/EFI
mount_hfs /dev/disk0s1 /Volumes/EFI

Создание файловой структуры — Create file structure:


mkdir -p /Volumes/EFI/Extra/Extensions
mkdir /Volumes/EFI/Extra/Themes

Ранее скаченный Chameleon-2.0-RC3-r658-bin распакуйте в вашу папку «Загрузки» — Load booter (Assumes Chameleon-2.0-RC3-r658-bin is extracted and in your downloads folder):


cd ~/Downloads/Chameleon-2.0-RC3-r658-bin/i386
fdisk -f boot0 -u -y /dev/rdisk1
dd if=boot1h of=/dev/rdisk1s1
cp boot /Volumes/EFI

Загрузка smbios.plist и Тем — Load smbios.plist and Themes (note these are cham2 defaults, however, they can be customized):


cd ~/Downloads/Chameleon-2.0-RC3-r658-bin/Optional\ Extras
cp -R smbios.plist Themes /Volumes/EFI/Extra

Отмонтируем EFI раздел — Unmount EFI:


umount -f /Volumes/EFI
rm -rf /Volumes/EFI

Если вы не отмонтируете EFI раздел, то в следующий раз при попытке монтировния получите ошибку: mount_hfs: Invalid argument .

Исправляем эту ошибку — Fix that error with:


fsck_hfs /dev/disk1s1

Вот мы и установили загрузчик в EFI раздел .

Делаем диск/раздел активным — Flag this partition active


diskutil list

Структура моего диска:

disk1
disk1s1 Hidden EFI partition (Cham2 loader)
disk1s2 OS X
disk1s3 Data


fdisk -e /dev/disk1
p
f 1
w
y
q

  • -e — редактирование;
  • rdisk0 — номер нашего HDD 0, 1, 2, и т.д.;
  • p — вывод таблицы разделов, проверяем, что наш загрузочный раздел активен;
  • f 1 — делаем активным раздел с MacOSX, “1” – номер нашего раздела 1, 2, и т.д.;
  • w — сохраняем внесенные изменения;
  • y — подтверждаем выполнение операции сохранения;
  • q — выход.

Эта статья также опубликована на нашем форуме.

http://bizon-pc.com/

Надоело мучиться с установкой Хакинтош? Уже есть кое-что получше.

Bizon – компьютеры специально для Mac OS X по доступным ценам.
Установка оригинальной Mac OS X, как на обычном Mac, без бубна.
В ассортименте аналоги iMac или Mac Pro, а также отдельно материнские платы.
Гарантия, отличная сборка, дорогие комплектующие и техподдержка.