Если вы уже установили на свой Мак бета-версию OS X 10.10 Yosemite и отвели ей роль второстепенной операционной системы, значит, вам постоянно приходится перезагружать Мак то под одной «осью», то под другой. Сложного в этом ничего нет, но этот процесс можно значительно упростить. Поможет в этом старый-добрый AppleScript.

Перезагрузить Мак под другой операционкой вручную можно двумя основными способами. Во-первых, это удержание клавиши ⌥ в момент стартовой загрузки компьютера (когда звучит хорошо всем знакомый аккорд) — после этого появляется меню выбора загрузочного раздела, где остается только выбрать нужный дисковый том и нажать клавишу ввода, чтобы загрузилась соответствующая ось.

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

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

Создание программы перезагрузки

Запустите редактор AppleScript и вставьте в окно следующий короткий код:

set currentHD to "Macintosh HD"
set toBoot to "Yosemite HD"

set deviceID to (do shell script "diskutil list | awk '/" & toBoot & "/ {print $NF}'")

do shell script "bless -device /dev/" & deviceID & " -setBoot -nextonly" with administrator privileges

tell application "Finder" to restart

Эти пять строчек делают следующее. В первой строке указан дисковый том, на котором установлена ваша текущая система. Во второй строке — раздел, на котором установлена OS X Yosemite. Если ваши диски называются под другому, вставьте в кавычки их имена.

Программа загрузки Yosemite

Далее, через консольную команду AppleScript определяет программный идентификатор дискового раздела, указанного во второй строке (именно на нем находится ОС, под которой мы хотим быстро перезагрузиться). Четвертая строка с другой консольной командой берет полученный ранее идентификатор и присваивает соответствующему дисковому тому статус загрузочного — то есть как бы вы ни перезагрузили теперь свой Мак, он загрузится уже с этого раздела вашего диска. Правда, эта операция требует подтверждения со стороны администратора системы.

Наконец пятая строка перезапускает систему с новыми параметрами.

Сохранение программы

Готовый код с правильными именами дисковых разделов нужно сохранить в виде приложения. Нажмите клавиши ⌘S (или выберите команду меню Файл / Сохранить) и в диалоге сохранения выберите формат файла Программа. Задайте имя приложения — например, Загрузить Yosemite — и нажмите кнопку Сохранить.

Также нужно создать аналогичную программу для возврата из Yosemite в вашу рабочую систему. Для этого нажмите клавиши ⌥⌘S (или выберите команду Файл / Дублировать) и в новом окне поменяйте местами названия дисковых разделов в первой и второй строке кода. После этого сохраните новую программу под именем, например, Вернуться в Mavericks. Скопируйте это приложение на внешний диск, чтобы, будучи в Yosemite, перенести ее на рабочий стол OS X 10.10.

Все готово. Двойным щелчком откройте программу Загрузить Yosemite, введите пароль администратора — и подождите, пока загрузится OS X 10.10. Поиграв с бета-версией новой операционки, запустите приложение Вернуться в Mavericks — и, снова введя пароль админа, подождите, пока загрузится ваша рабочая система. Все просто и удобно.

И Windows — тоже

Таким же макаром можно перезапускать Мак с любого загрузочного тома, доступного на вашем компьютере. Даже с Windows-раздела, который вы создали через Boot Camp. Правда, для перезагрузки под виндой код программы должен быть чуточку другим.

Во-первых, конечно, во второй строке исходного кода нужно указать имя Windows-тома (по умолчанию это Bootcamp). А во-вторых, в четвертой строке в консольной команде нужно добавить флаг -legacy. В целом код программы перезагрузки Мака под Windows выглядит так:

set currentHD to "Macintosh HD"
set toBoot to "Bootcamp"

set deviceID to (do shell script "diskutil list | awk '/" & toBoot & "/ {print $NF}'")

do shell script "bless -device /dev/" & deviceID & " -legacy -setBoot -nextonly" with administrator privileges

tell application "Finder" to restart

Программа загрузки Windows

Сохраните этот код в формате программы под названием Загрузить Windows. Единственное но — из Windows обратно в OS X придется возвращаться вручную. Хотя если вы знаете волшебный batch-сценарий, который позволит выполнить такую же автоматическую перезагрузку — добро пожаловать в комментарии. :)