Установка Mac OS X на PC. Часть 16: Настройки загрузчика XPC (продолжение)

Последние материалы нашего цикла об установке Mac OS X на PC, как вы, наверное, успели заметить, посвящены рассказу о новомодном загрузчике XPC от немецкого разработчика iPhoneTom. На сегодняшний день это наиболее стабильный и рабочий из существующих EFI-загрузчиков для Mac OS X на PC-компьютерах. Время идёт, и загрузчиков, работающих с настоящими EFI-модулями, становится всё больше — например, активно развивается проект Clover авторства slice с форума AppleLife. Возможно, в будущих статьях мы поговорим и об этом загрузчике, а пока хотелось бы завершить обзор XPC. В прошлый раз мы изучили все пункты файла настроек загрузчика (settings.plist) по просьбе нескольких наших читателей. Увы, читателям мы всё равно не угодили — мы в очередной раз убедились, что какой бы подробной ни была статья, найдётся тот, кто скажет «всё это здорово, но всё равно непонятно» :) Поэтому сегодня поговорим о сугубо практических вопросах: как поставить загрузчик на жёсткий диск, как подружить XPC с Windows, как изменить названия дисков и как настроить автоматическую загрузку с нужного вам раздела.

XPC может быть инсталлирован двумя способами — на флэшку и в таблицу разделов жёсткого диска. Мы не берёмся судить о том, какой способ лучше: конечно, терпеть торчащую из компьютера флэшку тоже не всем захочется, но и установка на винчестер имеет свои проблемы — достаточно муторно получить доступ к файлам XPC, чтобы отредактировать их, достаточно высок риск того, что диску от инсталляции на него XPC станет плохо.

В любом случае, у вас не получится поставить XPC сразу на диск. Для переноса на диск требуется сначала загрузиться с XPC на флэшке. Соответственно, нужно сделать флэшку загрузочной. Сразу скажем — есть несколько способов, как для Windows, так и для OS X. Живые ссылки на них (да и на сам загрузчик XPC) вы можете найти здесь.

Процедуру подготовки флэшки можно разделить на несколько этапов:

  • форматирование специальной утилитой, после которой флэшка становится не просто загрузочной, но содержащей специальный загрузочный сектор, совместимый с XPC
  • распаковка на флэшку содержимого архива с файлами XPC
  • дополнение содержимого флэшки вашими драйверами и DSDT

Главная проблема, возникающая у многих пользователей — неработоспособность созданной флэшки после использования специальных утилит по ссылке выше. Чтобы их избежать, следует соблюдать несколько правил:

  • на флэшке не должно быть ничего. Сначала отформатируйте её «по-обычному», средствами системы
  • после использования утилит для форматирования под XPC ВСЕГДА нужно сначала извлечь флэшку из компьютера, а потом вставить её обратно ДО того, как вы скопируете на неё какие-либо файлы. Это крайне важно
  • если флэшка имеет небольшой объём, то файлы загрузчика на неё надо копировать по одному

Структура файлов на флэшке с XPC выглядит следующим образом:

Проще говоря, после того, как вы распакуете архив с XPC на флэшку, не забудьте:

  • положить нужные вам кексты в папку /EFI/XPC/extra_kext/common
  • положить файл таблиц DSDT в /EFI/XPC
  • отредактировать файл настроек /EFI/XPC/settings.plist в соответствии с нашей предыдущей статьёй

Кстати, лучше всего не класть сторонние кексты в XPC, а поставить их прямо в систему. Это ускорит процесс загрузки.

Потом можно опробовать загрузку с флэшки. Если всё проходит нормально, можно попробовать поставить загрузчик на жёсткий диск. XPC ставится только на GPT-диски, на MBR-разметку пробовать ставить бесполезно. Отметим, что безопасного способа конвертации диска из MBR-разметки в GPT не существует. Кроме того, XPC не обязательно надо ставить на диск, на котором стоит Mac OS X. Загрузчику совершенно всё равно, с этого же диска запускать систему или с любого другого.

Новичков хотелось бы предупредить: не путайте форматирование и разметку диска! Это совершенно разные процедуры: форматирование относится к разделу диска — это задание для раздела соответствующей файловой системы (HFS+, NTFS, FAT32 и т.п.). Разметка касается отдельного диска, и выбранная вами схема разметки указывает, как операционная система будет воспринимать состав разделов диска. Mac OS X поддерживает три схемы разметки:

  • MBR — привычная всем PC-шникам разметка
  • GPT — стандартная для современных Intel-Маков разметка
  • APM — старая схема разметки, использовавшаяся на Маках с PowerPC-процессорами

Смена разметки подразумевает уничтожение всех разделов на диске, так что это приключение похуже форматирования.

GPT-разметка хороша тем, что на каждом таком диске создаётся скрытый раздел размером 200 МБ, форматируемый в FAT32. Этому разделу присваивается метка «EFI», и по умолчанию он не виден в Finder и других файловых менеджерах, потому что он не монтируется системой. Именно в это укромное место и ставится XPC.

Для установки на GPT-диск на экране выбора разделов XPC надо нажать 7 на клавиатуре. Вы увидите список всех GPT-дисков. Ориентироваться можно либо по размеру, либо по меткам содержащихся на них разделов, совместимых с XPC:

Выбрав нужный и ещё раз убедившись в том, что это верный диск, вы нажимаете на клавиатуре Shift+I. Сначала загрузчик выдаст ошибку «Efildgpt copy-error», и лишь потом — сообщение об успешной установке. Это нормально. Важно понимать, что в этот момент происходит только прописывание XPC в загрузочный сектор диска. Никакие файлы не переносятся, их надо копировать вручную. Поэтому далее порядок действий таков: вы перезагружаете компьютер клавишей R, опять грузитесь с флэшки, откуда вы должны будете перенести папку XPC на EFI-раздел GPT-диска.

В Mac OS X надо будет запустить Терминал и получить права администратора командой sudo -s (потребуется ввести пароль от аккаунта вслепую и нажать Enter). Затем предстоит самая интересная часть — угадывание того, какой номер имеет GPT-диск, на который вы поставили XPC. Для этого вы вводите в Терминале команду diskutil list и пытаетесь по названиям разделов опознать нужный диск:

Если искомый диск — disk3 (учтите, что после каждой перезагрузки номера дисков могут меняться случайным образом), то вы вводите следующие команды, заменив FLASH на метку вашей загрузочной флэшки, а номер диска в disk3s1 — на номер вашего диска.

[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 /Volumes/FLASH/* /Volumes/EFI
umount -f /Volumes/EFI[/php]

В будущем, для того, чтобы получить доступ к EFI-разделу и смонтировать его в Finder, вам придётся выполнять в Терминале следующую цепочку команд:

[php]sudo -s
mkdir /Volumes/EFI
mount_msdos /dev/disk3s1 /Volumes/EFI[/php]

Само собой, в disk3s1 надо будет заменить тройку на номер диска, который вам покажет команда diskutil list. Отключение EFI-раздела производится командой umount -f /Volumes/EFI.

Скопировав все нужные файлы, не забудьте в БИОСе выставить соответствующий диск первым в порядке загрузки.

Теперь поговорим о том, как ставить Windows из-под XPC. Это отдельный квест, потому что для успешной установки должны соблюдаться следующие требования:

  • вам нужен установочный диск 64-битной Windows Vista, Windows 7 или Windows 8. 32-битные редакции Windows вообще несовместимы с EFI-загрузкой
  • на диске, куда вы ставите Винду, ни в коем случае не должно быть разделов, отформатированных в FAT32 (EFI-раздел не в счёт) и NTFS!
  • желательно, чтобы раздел с Виндой шёл после раздела с Mac OS X

Первым делом вы должны создать для Windows свой раздел. Делается это из Дисковой утилиты, но обращаем ваше внимание — раздел нужно создавать именно в HFS+, но никак не в FAT32! Затем можно вставлять DVD с Windows в дисковод и пробовать грузить его XPC-загрузчиком.

Сначала должен загрузиться XPC, а затем, несколько раз нажав F на экране с разделами, вы увидите там DVD. Загрузившись с DVD, на экране форматирования дисков удалите HFS+-раздел и создайте раздел в NTFS. Если Windows напишет, что не может быть установлена на данном компьютере, загрузитесь в OS X, снова удалите NTFS-раздел, опять создайте HFS+-раздел, а потом попробуйте физически (путём выдёргивания кабелей, разумеется, при выключенном компе :) отключить все остальные диски, оставив только тот, на который ставится Windows, и грузитесь снова.

После того, как вы поставите Windows, в меню XPC появится ещё один раздел — тоже EFI, но с эмблемой Windows:

Отдельного разговора заслуживает настройка содержимого экрана разделов XPC. Увы, возможностей по скрытию или переименованию не HFS+-дисков в XPC не предусмотрено, поэтому приходится действовать неординарно:

  • скрыть лишний EFI-раздел можно, удалив или переименовав каталог BOOT в папке EFI соответствующего раздела. Но это нельзя делать на том EFI-разделе, с которого идёт загрузка компьютера, иначе вы всё сломаете. Этот трюк пригодится лишь в том случае, если вы грузитесь с флэшки или если Windows установлена на отдельном диске
  • переименовать раздел, с которого грузится Windows, во что-либо вменяемое, можно только из Windows. Запустите командную строку от имени администратора и примонтируйте EFI-раздел на том диске, откуда грузится система, командой mountvol Z: /s (Z: можно заменить на любую незанятую букву диска). EFI-диск появится в Проводнике, но сделать с ним вы ничего не сможете, потому что не позволят ограничения безопасности. Чтобы их обойти, запустите сам Проводник от имени администратора командой explorer /separate в той же командной строке. В открывшемся окне вы сможете переименовать EFI-раздел, задав ему любую другую метку. Эта метка и будет отображаться для раздела с Windows в меню XPC. Затем нужно будет отключить EFI-раздел командой mountvol Z: /d

И последняя хитрость на сегодня — смена интервала, после которого XPC будет грузить раздел по умолчанию, выбранный нажатием клавиши D на стартовом экране. По загадочным причинам эта настройка спрятана не в файле settings.plist вместе со всеми остальными опциями, а в файле theme.plist по соседству (в папке /EFI/XPC). В этом файле таймаут ожидания задаётся в секундах в секции:

[php]<key>Timeout</key>
<string>2</string>[/php]

Задать значение 0 нельзя, минимально допустимая величина — 1.

На этом наш рассказ о возможностях XPC можно считать завершённым. Но цикл статей о хакинтоше будет продолжаться и дальше.