WWW.LUSHNIKOV.NET

osx

Установка OS X 10.10 Yosemite в VirtualBox.

TL;DR:
Инструкция по установке OS X 10.10 Yosemite в виртуальную машину VirtualBox, запущенную на Linux. Без особых изменений эта же инструкция должна подойти в случае, если хостовой системой является OS X или Windows. Процесс выглядит так:

Лицензионная политика Apple такова, что :

OS X Server поставляется в качестве приложения, которое ставится поверх обычной OS X. Так что в этой статье будем исходить из того, что у нас есть честно купленный Mac, на который установлен Linux, а OS X мы ставим для последующего превращения его в OS X Server.

Готовим загрузочный образ

Для начала надо добыть дистрибутив. Самый простой способ – скачать из App Store соответствующий app (для этого понадобится компьютер с установленной OS X) и выдернуть файл с дистрибутивом из него. Файл называется InstallESD.dmg и лежит в подкаталоге Contents/SharedSupport пакета с операционной системой.

Virtualbox не сможет загрузиться с этого dmg, поэтому предварительно придется приготовить iso. Инструкция для mavericks есть здесь. Хорошая новость: для Yosemite она тоже подходит (с небольшими правками). Плохая новость: опять понадобится компьютер с установленной OS X, поскольку необходимая для конвертации программа hdiutil есть только под OS X. Хорошая новость: эта программа там есть сразу после установки системы, ничего дополнительно качать не придется.

Последовательность команд, превращающая установочный dmg в установочный iso выглядит так (повторяю, делается всё это на уже или еще работающей OSX):

Монтируем InstallESD.dmg в каталог /Volumes/install_app:

[code language=”shell”]
hdiutil attach InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app
[/code]

Конвертируем Boot Image, лежащий в этом дистрибутиве, в формат, пригодный для добавления в него своих файлов, увеличиваем его размер и монтируем в каталог /Volumes/install_build:

[code language=”shell”]
hdiutil convert /Volumes/install_app/BaseSystem.dmg -format UDSP -o /tmp/OSX
hdiutil resize -size 8g /tmp/OSX.sparseimage
hdiutil attach /tmp/OSX.sparseimage -noverify -nobrowse -mountpoint /Volumes/install_build
[/code]

Переносим в него необходимые для инсталяции пакеты (последние две строки специфичны для Yosemite, для Mavericks этого делать не надо):

[code language=”shell”]
rm /Volumes/install_build/System/Installation/Packages
cp -rp /Volumes/install_app/Packages /Volumes/install_build/System/Installation/
cp /Volumes/install_app/BaseSystem.dmg /Volumes/install_build/
cp /Volumes/install_app/BaseSystem.chunklist /Volumes/install_build/
[/code]

Отмонтируем имидж и дистрибутив:

[code language=”shell”]
hdiutil detach /Volumes/install_app
hdiutil detach /Volumes/install_build
[/code]

Уменьшаем размер получившегося файла до минимально возможного и конвертируем его в ISO:

[code language=”shell”]
hdiutil resize -size `hdiutil resize -limits /tmp/OSX.sparseimage | tail -n 1 | awk ‘{ print $1 }’`b /tmp/OSX.sparseimage
hdiutil convert /tmp/OSX.sparseimage -format UDTO -o /tmp/OSX
mv /tmp/OSX.cdr ~/Desktop/OSX.iso
[/code]

Всё, на рабочем столе появился файл OSX.iso, именно с него мы и будем ставить систему. Больше компьютер с установленной OS X нам не нужен, все остальные действия выполняются непосредственно на том компьютере, на котором будет жить виртуальная машина.

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

Делается это как обычно, через GUI. Важно не упустить несколько моментов:

  1. Используем профиль Mac OS X (64bit)
  2. Система: 1 CPU, включить EFI
  3. Дисплей: выкручиваем на максимум количество доступной видео памяти, включаем 3D-ускорение

На всякий случай убеждаем виртуальную машину в том, что она запущена на компьютере производства Apple:

[code language=”shell”]
$ VBoxManage setextradata Yosemite VBoxInternal2/SmcDeviceKey "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
[/code]

Где вместо Yosemite надо указать имя виртуальной машины.

Устанавливаем OS X

Загружаем виртуальную машину с созданного в первом пункте диска. Выбираем желаемый язык установщика и обнаруживаем, что инсталятор не видит диска, на который надо ставить систему.

Заходим в меню Utilities и запускаем Disk Utility. В левой колонке кликаем на VBOX HARDDISK, в правой колонке открываем вкладку Partition. Жмем кнопку + (добавится раздел), пишем желаемое имя раздела в поле Name и жмем Apply. Соглашаемся на внесение изменений. Disk Utility можно закрывать, на экране снова появится окно инсталятора, в этот раз с нашим новым разделом. В него и ставим.

Хакинтошим установленную систему и меняем разрешение экрана

После установки мы уже получили полноценную OS X, без посторонних примесей. Но если всё-таки захочется выставить нестандартное разрешение экрана, то придется немного пошаманить.

Важно: разрешение экрана должно быть кратно 8 по каждой стороне. Я выбрал 1312×720.

Скачиваем бутлоадер chimera и устанавливаем на OS X. Прописываем желаемое разрешение в файл /Library/Preferences/SystemConfiguration/com.apple.Boot.plist (понадобятся права root). Выглядеть он должен примерно так:

[code language=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Graphics Mode</key>
<string>1312x720x32</string>
<key>Kernel Flags</key>
<string>"Graphics Mode"="1312x720x32"</string>
</dict>
</plist>
[/code]

Выключаем виртуальную машину и идем в ее настройки. На вкладке Система снимаем галку Включить EFI.

При всё еще выключенной виртуалке выполняем на хостовой машине:

[code language=”shell”]
$ VBoxManage setextradata Yosemite CustomVideoMode1 1312x720x32
[/code]

Загружаем OS X, расслабляемся и начинаем получать удовольствие (в смысле, покупаем в app store и устанавливаем OS X Server).

Известные ограничения

Разработчики VirtualBox пишут, что для OS X в качестве гостя надо выделять только 1 CPU. Если выделить больше, система начинает очень, очень сильно тормозить.
В некоторых случаях (в зависимости от хостовой ОС и версии OS X) виртуальная машина может падать через какое-то время после запуска. Проблему можно исправить, отключив засыпание OS X: System Preferences -> Energy Saver, выставить оба таймаута в “Never”.

Tags:

Comments

  1. Максим, большое спасибо за четкую и понятную инструкцию по установке Yosemite! Она оказалась единственной рабочей из всех что я перепробовал. Спасибо! Очень надеюсь, что при выходе новой версии OS X вы напишете такую же..

Leave a Reply