Единственно верный способ почувствовать прелесть Mac OS X — купить компьютер или ноутбук Mac. Удобно, быстро, стабильно и без геморроя — человеческий подход в лучших традициях Mac. Желая познать непознаваемое, а именно — Mac OS X на обычном PC, энтузиасты активно допиливают различные виды Хакинтоша, ругаются словами «кекст» и боятся апдейтов системы. Еще сложнее было заставить макось работать под виртуальной машиной, но это только до сегодняшнего дня.

Экспериментальная поддержка

Все началось с того, что я решил попробовать написать приложение для iPhone/iPad и тут же встрял из-за досадного ограничения. Оказалось, SDK разработчика и все сопутствующие инструменты доступны только для платформы Mac OS Х. По правде говоря, Mac я собираюсь купить уже довольно давно, особенно после мучительных танцев с Хакинтошом, но, увы, заветный Macbook Pro 15" как был, так и остается лишь пунктом в списке «Хочу купить».

Колдовать снова с установкой Mac OS на свой PC, не имея гарантии, что смогу хотя бы запустить нужный софт, не было никакого желания. Опыт подсказывал, что ничего хорошего не выйдет и с виртуальными машинами. Ни одно решение для виртуализации, будь оно от Microsoft, Parallels, VMware или Sun, без шаманства (важный момент!) не позволяет запустить Mac OS в качестве гостевой ОС! Вернее говоря, не позволяло. Изучая changelog программы VirtualBox’а (теперь уже распространяемое под эгидой компании) Oracle, которую в последнее время использую в качестве основного средства виртуализации, наткнулся на очень интересную строчку: «Experimental support for Mac OS X Server guests». Опция впервые появилась в версии 3.2.0 и далее часто упоминается. Получается, в качестве гостевой OS теперь можно установить макось? Слово «server» сначала сбило с толку, но быстро выяснилось, что это есть не что иное, как лицензионное ограничение Mac OS X. Дело в том, что лицензия допускает установку ОС только на компьютеры и ноутбуки Mac. Все остальное, включая Хакинтоши и прочие извращения, по большому счету запрещены — вполне логичный шаг со стороны компании Apple. А вот ограничение внутри самой VirtualBox, как оказалось, искусственное. Быстро нашлось немало отзывов о том, что под VirtualBox’ом отлично устанавливается последняя версия Mac OS X, то есть Snow Leopard (такое вот кодовое имя релиза). Тут надо иметь в виду, что подобный опыт напрямую нарушает лицензию системы, поэтому может рассматриваться исключительно в образовательных целях.

Создание виртуальной машины

Главное требование для установки Mac OS X — поддержка процессором спецификации VT-x. Intel Virtualization Technology for x86 поддерживается практически всеми современными процессорами Intel, включая большинство Сore 2 Duo/Quad и модных i3/i5/ i7. Мы проводили эксперимент на Core 2 Duo E8500 и Windows 7 в качестве основной системы. Во многих случаях система должна завестись и на процессоре от AMD, но только при условии, что тот имеет поддержку технологии виртуализации AMV-V. Далее потребуется официальный диск с Mac OS X или его образ (у нас была версия 10.6.3), конечно же, легально купленный (это тебе не Windows!). Если образ сграблен под Mac OS и имеет разрешение .dmg, то привести его в привычный ISO-вид поможет утилита dmg2img (vu1tur.eu.org/tools): dmg2img source_file. dmg destination_file.iso. Далее необходимо создать «правильную» виртуальную машину, на которую и будет установлена система. Собственно, начать нужно с того, что указать тип гостевой системы — «Mac OS X Server». Что приятно, такой тип выбирается автоматически — стоит только в названии виртуалки использовать слова «mac» или, скажем, «leopard». Крайне желательно выделить виртуаль ной машине минимум 1024 Мб оперативки и создать виртуаль ный жесткий диск на 20 Гб (вполне можно использовать опцию «Dynamically expanding storage»). После создания виртуалки не лишним будет открыть ее свойства и, во-первых, отключить эмуляцию floppy-диска, а во-вторых, установить количество видеопамяти, равное 128 Мб. В качестве IDE-контроллера должен быть выставлен тип ICH6, но это работает и по умолчанию.

Далее есть два пути. Первый и самый правильный — обойтись силами одной только VirtualBox. Для этого необходимо закрыть программу (крайне важно, иначе ничего не получится!) и найти XML-конфиг только что созданной виртуалки. В XP он находится здесь: C:Documents and Settings<username>.VirtualBox Machines<name of the VM><name of the VM>.xml, в Vista/ Windows 7 C:Users<username>.VirtualBoxMachines<name of the VM><name of the VM>.xml. Под Linux’ом ищи XML внутри /home. В этом файле есть несколько строк, описывающих так называемые ExtraDataItem. Найди это место поиском в любом текстовом редакторе и добавь еще две строчки:

<ExtraDataItem name="VBoxInternal2/EfiBootArgs"
value=" "/>
<ExtraDataItem name="VBoxInternal2/SmcDeviceKey"
value="ourhardworkbythesewordsguardedpleasedontsteal
(c)AppleComputerInc"/>

После этого можно сохранить конфиг и заново запускать VirtualBox. Последний штрих — выбрать в качестве cdrome образ с Mac OS X и стартовать виртуальную машину. В 90% случаев запустится графический инсталлятор, и можно будет спокойно установить ось. Откуда берутся эти 10% неудач, сказать сложно. Однако если вдруг во время загрузки выплывает какая-нибудь kernel-ошибка, или многообещающе появится серый экран с курсором, но на этом все и останавливается, можно попробовать другой путь. В этом случае уже не надо никак шаманить с конфигом виртуалки (если добавил туда ExtraDataItem’ы, то их надо удалить). Идея в том, чтобы использовать альтернативный загрузчик — Empire EFI . Штука распространяется в виде ISO-файла (например, empireEFIv1085.iso), которую надо примонтировать к виртуалке и отдать команду на старт. Во время загрузки появится уже темный интерфейс Empire EFI — в этот момент надо демонтировать текущий образ альтернативного загрузчика и подключить ISO’шку со Snow Leopard. Обновляем информацию о диске (<F5>), жмем <Enter> — вуаля, опять же получаем окно установщика Mac OS X.

Установка и настройка

Тем или иным способом появляется графический интерфейс установщика системы, который приветливо предлагает выбрать язык для установки. Далее, спросив, куда необходимо установить ОС, он почему-то не предложит никаких вариантов. Все потому, что еще не размечен жесткий диск (виртуальный). Для того, чтобы создать структуры и отформатировать разделы, запускаем дисковую утилиту из раздела «Утилиты» верхнего меню. Тут выбираем вкладку «Стереть», потом жмем кнопку «стереть», и утилита сама все сделает за нас. Теперь указываем установщику размеченный раздел — и начинается процедуры установки. Reboot.

Полностью рабочая система с достойным разрешением, поддержкой клавиатуры/мыши, а также сетевого адаптера — вот, что тебя ждет сразу после перезагрузки компьютера. Единственное — придется пройти процедуру идентификации клавиатуры (мастер потребует нажать на клавиши рядом с <shift>’ами), а также создать учетную запись пользователя. Тут надо помнить, что раскладка клавиатуры переключается комбинацией <winkey>+<пробел>. От всех процедур регистрации и создания учетки в сервисе MobileMe можно смело отказаться, как и от процедуры переноса данных с другого компьютера Mac (ведь как заботливо, а!?). Далее, когда со всеми этими вопросами от нас отстанут, можно, наконец, пощупать саму систему.

Щелкаем по окошкам, запускаем различные программы, пробуем открыть страницы в браузере Safari. Тут же скачиваем Textmate, легендарный текстовый редактор для Mac OS X, в виде непривычного dmg-файла (формат дистрибутивов в Mac OS X) и устанавливаем — опять же, все отлично работает. Конечно, совсем не так шустро, как на самом Mac’е, и не так быстро, как в случае Хакинтоша, но при этом вполне комфортно. В эйфории от того, что не надо мучиться с кекстами и прочими шаманствами, можно даже не заметить отсутствие звука — в системе нет драйвера для звукового контроллера ICH AC97, который эмулирует VirtualBox. Вероятно, этот факт сильно напрягал энтузиастов, поэтому на форуме виртуалки быстро появились необходимые дрова. Добротный установщик, доступный на forums.virtualbox.org/viewtopic.php?f=4&t=30843, избавит даже от возни с ручной правкой kext’ов. Просто скачай PKG-файл, запусти его и перезапусти систему. Помимо отсутствия звука меня напрягало фиксированное разрешение, установленное в гостевой ОС, равное 1024×768. К счастью, и для этого есть маленький хинт, который опять же необходимо провернуть в конфиге виртуалки. Открываем XML-файл в текстовом редакторе и после всех ExtraDataItem добавляем новую строку:

<ExtraDataItem name="VBoxInternal2/EfiGopMode"
value="N"/>

Параметр N — это числа от 0 до 4, означающие разрешения 640×480, 800×600, 1024×768, 1280×1024, 1440×900 соответственно.

С помощью этой строки мы указываем, что виртуальная машина должна использовать так называемый VirtualBox EFI. EFI — это Extensible Firmware Interface, новый индустриальный стандарт, который должен заменить БИОС в качестве основного интерфейса.

Увы, в рамках используемого виртуальной машиной EFI другие разрешения не поддерживаются, но даже 1440×900 вполне достаточно для комфортной работы. Вот чего пока не хватает, так это поддержки надстройки Guest Additions, с помощью которой, например, можно очень просто обмениваться файлами между хостовой и гостевой машиной. Сейчас для этого придется использовать протокол SMB. Для этого сначала нужно его включить. Переходим в настройки: «Меню u„ Системные настройки „Љ Интернет и беспроводная сеть „| Общий доступ» и включаем «Общий доступ к файлам». В «параметрах» необходимо активировать протокол SMB. Теперь к любой Windows-машине с расшаренными ресурсами можно подключиться через меню «Переход „Ђ Подключение к серверу». Надо лишь указать адрес хоста в адресной строке: smb://10.0.2.2. Кстати говоря, значение 10.0.2.2 неслучайно: в большинстве случаев (то есть с сетевыми настройками VB и виртуальной машины по умолчанию) это будет адрес хостовой машины.

Эта инструкция предназначена для Mac OS X Lion и  состоит из двух основных этапов и предназначена для создания загрузочного USB флеш-брелока, карманного USB винчестера или SD карты. С помошью такого накопителя можно установить «чистую» операционную систему Mac OS X Lion, обновить существующую или воспользоваться вспомогательными системными утилитами.

Извлечение загрузочного образа из установщика


Монтируем .dmg образ с установщиком и заходим в ресурсы бандла Установка Mac OS X.app (Install Mac OS X.app > правый клик > Показать содержание пакета).

show-bundle-content

В открывшемся окне с ресурсами переходим в /Contents/SharedSupport/, тут должен находится ещё один .dmg образ — InstallESD.dmg. Он как раз нам и нужен.

inside-install-mac-os-x-app
Копируем его в любое удобное место, например на Рабочий стол. Если внутри приложения Установка Mac OS X.app (Install Mac OS X.app) такого не имеется, значит вы загрузили уже извлечённый и переименованный образ InstallESD.dmg, такие образы в сети встречаются чаще, так как всё остальное, кроме этого образа, не имеет никакой ценности.

Развёртывание образа Mac OS X Lion на USB накопитель


Теперь, уже имея образ с загрузочной операционной системой Mac OS X Lion, поступим стандартным и давно известным способом для развёртывания образа на USB накопитель при помощи Дисковой утилиты. В качестве USB накопителя может быть любое устройство: флеш-брелок или карманный винчестер. По этому же принципу можно использовать SD-карту памяти. Во избежание ошибок при развёртывании любого образа диска я рекомендую произвести его проверку (сканирование). Для этого запускаем Дисковую утилиту и в меню выбираем Образы > Сканировать ораз для восстановления… Указываем нужный образ и нажимаем Сканировать. Если сканирование образа оканчивается c ошибкой, но при этом вы на 100% уверены в его целостности, просто смонтируйте его двойным кликом на Рабочем столе и дождитесь окончания его проверки. После окончания сканирования подключаем к компьютеру USB накопитель (SD карту). В Дисковой утилите выбираем из списка слева наше устройство (1). Обращу внимание: не раздел, а именно всё устройство, как показано на изображении. В основном окне переходим в закладку Разбить диск на разделы (2). Из меню Схема томов (3) выбираем количество разделов, на которое хотим разбить накопитель.

disk-util-make-boot-flash-drive-1
Далее нажимаем кнопку Параметры… (4), которая находится под схемой разделов. В всплывающем окне выбираем параметр Схема разделов GUID (5) и нажимаем ОК (6).

disk-util-make-boot-flash-drive-2
После закрытия диалогового окна указываем объёмы для новых разделов. Для развёртывания Mac OS X Lion вполне хватит 4,5 ГБ. Нажимаем кнопку Применить (7).

disk-util-make-boot-flash-drive-3
После окончания операции переходим во вкладку Восстановить (рядом с вкладкой Разбить диск на разделы). В поле Источник перетягиваем извлечённый ранее из ресурсов образ InstallESD.dmg (у меня он называется OS X Lion DP 4.dmg), а в поле Назначение перетягиваем из левой части окна подготовленный раздел (у меня он называется WIN). Ставим флажок Очистить место назначения (8) и нажимаем кнопку Восстановить (9).

disk-util-make-boot-flash-drive-4
Пошёл процесс восстановления… После его окончания на подготовленном разделе будет располагаться загрузочная копия операционной системы Mac OS X Lion. Проверить всё ли мы правильно сделали достаточно просто: заходим в Системные настройки и выбираем Загрузочный том, в списке должен находиться созданный нами радел.
system-preferances-boot-volume-usb

 

Ubuntu is a common variant of Linux, complete with a user-friendly interface and full flexibility in customizing it via the Terminal window. Windows and Linux share the ability to open ISO files, which are similar to DMG files. Though DMG files are commonly associated with Apple’s operating system, Mac, they can be opened in Linux with a few simple steps.

Step 1: Install dmg2img

  • Open up your terminal console
  • sudo apt-get update
  • sudo apt-get install dmg2img

Step 2: convert the .dmg to .img

Once dmg2img is installed, you will want to change our working directory to the .dmg you want to use. in my case, the image.dmg is on my desktop. ( /home/dan/desktop )

  • cd /home/dan/desktop

Once you are succesfully in your working directory, you are now read to convert the .dmg file.

  • dmg2img /home/dan/desktop/image.dmg /home/dan/desktop/image.img

NOTE: the second part of the command is a .img at the end.

Step 3: Mount the .img file

Now we are ready to mount the .img file into a new directory

  • mkdir /media/image
  • sudo modprobe hfsplus
  • sudo mount -t hfsplus -o loop image.img /media/image

Step 4: Convert the .img to .iso

The image is now mounted. We need to convert it to a .iso file now. Open Brasero, a program native to Ubuntu. It can be found in the “Sound & Video” section under “Applications.” When the window opens, choose “Data Disk” and then “Enable Side Panel.” (if Brasero is not installed, open up the terminal and type the following command: sudo apt-get install brasero )

Press “Image File” and “Burn.” This takes the IMG file and converts it into an ISO file. Wait for this to finish.

Step 5: Mount the .iso file

Enter the following commands into Terminal, where “image” is the name of the ISO:

  • mkdir /media/imageiso
  • sudo modprobe hfsplus
  • sudo mount -t hfsplus -o loop image.iso /media/imageiso

This will successfully mount the .iso file and you can proceed with your installation.