Особенности загрузки дистрибутивов, установки и переустановки разных версий Apple Mac OS и macOS

Downloading, installing and reinstalling different versions of Apple Mac OS and macOSДля публики история Apple Mac OS X начинается с 16 марта 1999 года, когда в свет вышел релиз, наверное, самой странной ОС, которую я когда либо видел - OS X Server 1.0. Считается, что эта ОС была для Apple больше экспериментом, чем ОС, которую планировали распространять. Наверное поэтому закат случился быстро и последняя версия этой ОС - OS X Server 1.2 v3 вышла 27 октября 2000 года.

24 марта 2001 года вышел релиз первой клиентской системы Mac OS X, версии 10.0 с узнаваемым интерфейсом, который дожил до сегодняшнего дня без серьёзных изменений. Такое именование система имела ~14 лет. Последняя OS X версии 10.11 была выпущена 30 сентября 2015 года.

20 сентября 2016 выходит релиз 10.12, а именование ОС изменилось на macOS. Такое именование и обозначение версии сохранялось до 7 октября 2019, когда вышел релиз версии 10.15.

Начиная с 12 ноября 2020 - macOS 11. Смена 10 на 11 показывала пользователям переход на новый уровень - архитектуру ARM64. И они не смогли остановиться… на момент написания этого текста мы имеем macOS 14. Возможно, Apple остановит этот странный счётчик, когда будет выпущена первая OC без поддержки Mac с процессором Intel. Посмотрим, осталось не долго.

Рассмотрим несколько вариантов установки фирменной ОС на компьютеры Mac. Перед тем, как приступать к переустановке ОС на Mac с процессором Intel или PowerPC, рекомендуется выполнить сброс NVRAM/PRAM сочетанием клавиш Option-Command-P-R, которые нужно удерживать сразу после включения компьютера и до перезагрузки.

 

1. Установка с помощью Recovery и Internet Recovery

Режим Recovery - запуск средств восстановления ОС со специального раздела Recovery на диске.

Режим Internet Recovery - запуск средств восстановления с загруженного через интернет образа.

В общих чертах Recovery - это урезанная версия ОС, которая имеет средства восстановления из резервной копии, браузер, дисковую утилиту, утилиту прошивки или утилиту безопасной загрузки, терминал и, самое главное, возможность установить ОС, загрузив образ с серверов Apple. Режим восстановления появился с выходом Mac OS X 10.7 Lion в июле 2011. Все компьютеры, вышедшие после этой даты, имеют Internet Recovery из коробки. Некоторым более ранним моделям 2010 и 2011 года выпуска так же может быть доступно использование режима Internet Recovery, но для этого потребуется обновление прошивки EFI.

Использование режима восстановления на Mac c процессором Apple:

Включить Mac и удерживать кнопку питания до появления загрузочного меню, выбрать "Параметры".

Использование Recovery на Mac с процессорами Intel:

Включить Mac и удерживать на клавиатуре клавиши Command + R - запуск средств восстановления с раздела Recovery для переустановки текущей версии ОС. Форматирование всего диска в этом случае
невозможно, т.к. Recovery не может удалить сам себя.

Command + Option + R - Запуск средств восстановления через интернет для установки последней совместимой версии ОС.

С релизом macOS 10.12.4 Sierra появилось ещё одно сочетание клавиш.

Command + Shift + Option + R - запуск средств восстановления для установки ОС, которая поставлялась с компьютером или ближайшую к ней из доступных.

При необходимости использования Internet Recovery в периметре организации c прокси сервером необходимо открыть прямой доступ до web-узлов oscdn.apple.com и osrecovery.apple.com

Для загрузки ОС требуется разрешить доступ на web-узел swcdn.apple.com

Все прочие узлы и порты можно посмотреть на странице поддержки. Если Mac в организации много, то стоит выделить пару машин с ролью кэширования контента для последующего увеличения скорости загрузки Recovery и дистрибутива внутри сети и создать TXT запись в DNS.

Recovery - простой и удобный способ установки ОС. Это должно подойти большинству пользователей. Используйте этот способ, если есть такая возможность.

За годы дизайн Recovery менялся и соответствовал дизайну OC.

Recovery в Mac OS X 10.7 Lion:

Recovery in OS X 10.7 Lion

Recovery в Mac OS X 10.10 Yosemite:

Recovery in OS X 10.10 Yosemite

Recovery в macOS 11 Big Sur:

Recovery in macOS 11 Big Sur

При восстановлении из Internet Recovery и получения дистрибутива через интернет нужно учитывать 2 нюанса:

Время в Recovery может быть неверным, поэтому есть вероятность получения ошибки при запросе дистрибутива. Изменить время можно в терминале, введя date месяц, число, час, минута, год. В Recovery с 10.7 до 10.12 время указывается в часовом поясе PST/PDT - североамериканское тихоокеанское стандартное/летнее время, т.е. с поправкой UTC-8 или UTC-7. Например, для 19 декабря 2023 года, 10:50 (UTC+3) необходимо установить время на минус 11 часов, т.е. 18 декабря 2023 года 23:50 (UTC-8)

date 121823502023

В Recovery начиная с 10.12 можно выполнять обновление времени через интернет

sntp -sS time.apple.com

Recovery Mac OS X 10.12 in terminal and time from NTP

В Recovery начиная с 10.13 указывается время UTC, спасибо Apple.

При попытке установки Mac OS X 10.7 или Mac OS X 10.8 из Internet Recovery можно столкнуться с проблемой входа в Mac AppStore. К примеру, моя учётная запись имеет усиленные настройки безопасности и минимальная ОС, которая может использоваться для входа - macOS 13.2. Без понижения уровня безопасности учётной записи установка невозможна. В данном случае лучше воспользоваться альтернативными способами.

Ещё о времени в Recovery. В блогах и форумах в сети попадаются различные сообщения о том, что для установки старых версий ОС необходимо менять дату в Recovery на близкую к выпуску, в противном случае установка невозможна из-за ошибки:

Cant install OS X 10.9 Mavericks

Проблема возникает из-за просроченного сертификата, которым подписан установщик. Пользователи сталкиваются с этим, потому что используют загруженные годы
назад дистрибутивы из собственного архива или сторонних источников.

Apple больше не распространяет Mac OS X 10.9 Mavericks, поэтому все существующие образы этой версии системы не запустят установку "из коробки". Самый простой вариант запуска - установить старую дату, например, 1 октября 2014 года.

Дистрибутивы 10.10 - 10.15, доступные для загрузки сейчас, подписаны сертификатом, который истекает 14 апреля 2029 года UTC. Пример проверки сертификата одного из дистрибутивов.

Mac OS X Check cert

Другой вариант запуска установки с дистрибутива с просроченным сертификатом без изменения даты, в данном случае Mac OS X 10.9 Mavericks, - использовать утилиту installer в терминале:

installer \
-pkg /Volumes/Mac\ OS\ X\ Install\ DVD/Packages/OSInstall.mpkg \
-target /Volumes/Macintosh\ HD/

Start install Mac OS X with installer utility

 

2. Загружаем дистрибутив для запуска вручную

Версии систем с macOS 10.13 до macOS 14 доступны для загрузки через Mac AppStore, но найти это через поиск не получится. На сайте поддержки пользователям предлагается пройти по прямым ссылкам на страницы магазина. Более старые системы, начиная с Mac OS X 10.7 по macOS 10.12, предлагаются в виде образа диска в формате DMG с установочным пакетом InstallOS.pkg (установка пакета распакует дистрибутив ОС). Системы с 10.0 по 10.6 распространялись только на физических носителях, с официального источника получить их нельзя. Остаётся искать образы на различных
тематических сайтах в или на барахолках, где всё ещё можно встретить в продаже CD/DVD и USB-накопители с OS X.

Начиная c macOS 10.14 Mojave используя терминал можно отправить запрос в апплет обновления системы для загрузки дистрибутива. Например, для загрузки macOS Ventura необходимо выполнить:

export OSName=macOSVentura
open 'x-apple.systempreferences:com.apple.preferences.softwareupdate?client=bau&installMajorOSBundle=com.apple.InstallAssistant.'$OSName''

После выполнения откроется раздел обновлений панели управления с предложением выполнить загрузку дистрибутива.

Download macOS Ventura

Для переменной OSName можно использовать следующие аргументы:

Mojave, Catalina, macOSBigSur, macOSMonterey, macOSVentura, macOSSonoma

Стоит не забывать об искусственных ограничениях, которые Apple заботливо создаёт для своих пользователей: используя Mojave можно загрузить Ventura, но наоборот не получится - всплывёт сообщение о неподдерживаемой программе установки.

Fail Download macOS Mojave

Начиная с macOS 10.15 Catalina стало проще, загрузить дистрибутивы можно с помощью утилиты softwareupdate. Для просмотра списка доступных и поддерживаемых этим Mac систем выполним:

softwareupdate --list-full-installer

macOS SU list OS

 

Можно получить не только последние версии, но и некоторые промежуточные.
Чтобы загрузить, например 10.15.7, воспользуемся командой:

softwareupdate --fetch-full-installer --full-installer-version 10.15.7

Разберемся с дистрибутивами, которые предлагаются к загрузке в виде DMG образа с пакетом InstallOS.pkg.

Как уже можно догадаться, распаковать это двойным кликом на современном Mac нельзя.

This version Mac OS X 10.7 cannot be installed

Однако, это сработает, если выполнять распаковку в виртуальной машине - installer не сможет проверить идентификатор материнской платы, поэтому без проблем выполнит распаковку. Рассмотрим пример распаковки образа Mac OS X 10.7 Lion в macOS 14 Sonoma штатными средствами:

Монтируем загруженный образ InstallMacOSX.dmg

hdiutil attach ~/Downloads/InstallMacOSX.dmg -nobrowse -noverify -quiet

Выполняем распаковку

pkgutil --expand /Volumes/Install\ Mac\ OS\ X/InstallMacOSX.pkg ~/Temp/Expand && \
tar xvzf ~/Temp/Expand/InstallMacOSX.pkg/Payload -C ~/Temp/Expand && \
mv ~/Temp/Expand/InstallMacOSX.pkg/InstallESD.dmg ~/Temp/Expand/Install\ Mac\ OS\ X\ Lion.app/Contents/SharedSupport

Переносим дистрибутив в каталог приложений

mv ~/Temp/Expand/Install\ Mac\ OS\ X\ Lion.app /Applications

Размонтируем образ

umount /Volumes/Install\ Mac\ OS\ X

Удаляем остатки распакованного образа

rm -r ~/Temp/Expand

Во всех описанных случаях дистрибутив будет находиться в каталоге приложений.

Чтобы сохранить нервные клетки и всё таки загрузить необходимый дистрибутив с официального источника, можно воспользоваться проектами от энтузиастов:

  1. Скрипт на Python installinstallmacos.py (выполнение на Linux и Windows не поддерживается)

  2. Приложение с графическим интерфейсом MIST позволяет не только загрузить дистрибутив, но и создать загрузочный накопитель в 2 клика.

 

3. Чистая установка вручную

Рассмотрим пример запуска чистой установки macOS Sonoma, дополнительно будут применены подготовленные пакеты с приложениями и настройкой системы. При необходимости так же можно запускать из Recovery, но об этом дальше.

#!/bin/sh
echo Пароль | \
/Applications/Install\ macOS\ Sonoma.app/Contents/Resources/startosinstall \
--agreetolicense \
--rebootdelay 0 \
--installpackage "/путь/до/Setup.pkg" \
--installpackage "/путь/до/AppsBundle.pkg" \
--eraseinstall \
--newvolumename "Macintosh HD" \
--forcequitapps \
--user $USER `#Если текущий юзер администратор` \
--stdinpass \
--nointeraction

Есть интересный проект erase-install, в котором сообщество пишет скрипт упрощающий запуск обновлений и переустановок.

3.1 Создадим пакет с приложениями

Создадим каталоги для сборки пакета:

mkdir -p ~/Buildpkgs/{apps,resources/ru.lproj}

где apps - каталог для приложений ".app", resources - доп контент для продукта.

Скопируем все необходимые приложения в каталог "apps".

Переходим в каталог Buildpkgs:

cd ~/Buildpkgs

Для приложений загруженных с недоверенных Apple источников можно выполнить удаление атрибута "карантинна", в противном случае, система спросит разрешение при первом запуске.

xattr -d -r com.apple.quarantine apps/

Сборка пакета:

pkgbuild --analyze --root apps component.xml
pkgbuild --root apps --identifier com.itkb.apps.bundle --version 1.0 \
--install-location /Applications --component-plist component.xml appsbundle-v1.pkg

Если необходимо создать пакет только из одного приложения, вместо параметра "--root" можно указать путь до приложения в параметре "--component".

Выполним подготовку:

productbuild --synthesize --package appsbundle-v1.pkg distribution.xml

В resources/ru.lproj создадим текстовый файл readme.rtf, с описанием пакета, а затем добавим информацию об этом в distribution.xml

<title>Пакета автоматизации</title>
<readme file="readme.rtf"/>

Это не обязательный шаг, но дополнительная информация о пакете не будет лишней.

distributions.xml

Преобразуем пакет в архив продукта:

productbuild --distribution distribution.xml --resources resources AppsBundle.pkg

Если запустить созданный пакет вручную, увидим текст из readme.rtf

Apps MyPackage

 

3.2. Создадим пакет со скриптом настройки системы

Создадим каталог scripts в ~/Buildpkgs:

mkdir -p ~/Buildpkgs/scripts

Переходим в каталог Buildpkgs:

cd ~/Buildpkgs

Создадим файл postinstall и вставим код скрипта, который отключит множество назойливых окон настройки при первом входе для всех новых пользователей и настройку некоторых параметров:

#!/bin/sh

#Пропустить приветствие системы после установки
touch /var/db/.AppleSetupDone
chmod 0400 /var/db/.AppleSetupDone

#Установка языка системы
languagesetup -langspec Russian

#Установка часового пояса
systemsetup -settimezone "Europe/Moscow"

#Изменить конфигурацию новых пользователей
for USER_TEMPLATE in "/System/Library/User Template"/*.lproj

  do

#Переменные до plist файлов
userglobalprefsplist=${USER_TEMPLATE}/Library/Preferences/.GlobalPreferences.plist
hitoolboxplist=${USER_TEMPLATE}/Library/Preferences/com.apple.HIToolbox.plist
finderplist=${USER_TEMPLATE}/Library/Preferences/com.apple.finder.plist
loginwindowplist=${USER_TEMPLATE}/Library/Preferences/com.apple.loginwindow.plist
screencaptureplist=${USER_TEMPLATE}/Library/Preferences/com.apple.screencapture.plist

#Отключить экраны первичной настройки при первом входе пользователя
touch "${USER_TEMPLATE}"/.skipbuddy

#Установить параметры пользователя
/usr/libexec/PlistBuddy `#Установить 24 формат времени` \
            -c 'Add :AppleICUForce24HourTime bool true' \
            `#Установить формат кавычек` \
            -c 'Add :KB_DoubleQuoteOption string \"abc\"' \
            -c "Add :KB_SingleQuoteOption string \'abc\'" \
            -c 'Add :NSUserQuotesArray array' \
            -c 'Add :NSUserQuotesArray: string \"' \
            -c 'Add :NSUserQuotesArray: string \"' \
            -c "Add :NSUserQuotesArray: string \'" \
            -c "Add :NSUserQuotesArray: string \'" \
            `#Установить скорость курсора мыши` \
            -c "Add :com.apple.mouse.scaling string 1.5" "${userglobalprefsplist}"

#Установить раскладки клавиатуры
/usr/libexec/PlistBuddy -c "Add :AppleCurrentKeyboardLayoutInputSourceID string com.apple.keylayout.ABC" \
            -c "Add :AppleEnabledInputSources array" \
            -c "Add :AppleEnabledInputSources:0 dict" \
            -c "Add :AppleEnabledInputSources:0:InputSourceKind string 'Keyboard Layout'" \
            -c "Add :AppleEnabledInputSources:0:'KeyboardLayout ID' integer 255" \
            -c "Add :AppleEnabledInputSources:0:'KeyboardLayout Name' string ABC" \
            -c "Add :AppleEnabledInputSources:1 dict" \
            -c "Add :AppleEnabledInputSources:1:InputSourceKind string 'Keyboard Layout'" \
            -c "Add :AppleEnabledInputSources:1:'KeyboardLayout ID' integer 19456" \
            -c "Add :AppleEnabledInputSources:1:'KeyboardLayout Name' string Russian" "${hitoolboxplist}"

#Установить параметры Finder
/usr/libexec/PlistBuddy `#Отобразить строку состояния` \
            -c "Add :ShowStatusBar bool true" \
            `#Отобразить строку пути` \
            -c "Add :ShowPathbar bool true" \
            `#Не отображать внутренние диски на рабочем столе` \
            -c "Add :ShowHardDrivesOnDesktop bool false" "${finderplist}"
            
#Отключить чекбокс открытия приложений при завершении сеанса
/usr/libexec/PlistBuddy -c "add :TALLogoutSavesState bool false" "${loginwindowplist}"

#Отключить тени скришотов окна
/usr/libexec/PlistBuddy -c "add :disable-shadow bool true" "${screencaptureplist}"

#Конвертировать plist в bplist
plutil -convert binary1 "${userglobalprefsplist}" "${hitoolboxplist}" "${finderplist}" "${loginwindowplist}" "${screencaptureplist}"

  done

#Создать нового пользователя
newuser=locadm
sysadminctl -addUser ${newuser} -password "P@ssw0rd" -admin

exit 0

Разрешим выполнение скрипта:

chmod +x scripts/postinstall

Создадим пакет:

pkgbuild --nopayload --scripts scripts --identifier com.itkb.scripts.bundle --version 1.0 setup-v1.pkg

Параметр "--nopayload" обозначает, что в пакет не передаётся файлов для упаковки.

Преобразуем пакет в архив продукта:

productbuild --synthesize --package setup-v1.pkg distribution-scrpt.xml
productbuild --distribution distribution-scrpt.xml --resources resources Setup.pkg

Лог установки пакетов будет в стандартном /var/log/install.log. Для просмотра в терминале:

cat /var/log/install.log | grep package_script_service

или в Консоль.app в разделе "отчёты журналирования".

Если сборка пакета в терминале кажется неудобной, можно воспользоваться приложением Packages.

После выполнения описанным образом на выходе получаем установленную, настроенную и с необходимыми приложениями систему. По примеру можно создавать любые пакеты со скриптами и приложениями для выполнения через startosinstall, MDM, Apple Remote Desktop или вручную ИТ специалистами в 1 клик.

 

4. Установка с помощью USB-накопителя

Накопители могут быть двух типов: загрузочные и незагрузочные.

Незагрузочный накопитель может быть полезен, когда вы можете попасть в (Internet) Recovery, но скачивать ОС из интернета не хотите или не имеете возможности, но дистрибутив необходимой версии уже есть.

Загрузочные накопители нужны, когда загрузка с раздела Recovery невозможна, а Internet Recovery не запускается из-за плохого коннекта или блокировок провайдером, либо, если установка требуется для Mac без поддержки Internet Recovery или необходимо установить ОС определённой версии без лишних манипуляций.

Для использования незагрузочного накопителя, берём любой накопитель, на котором есть достаточное свободное пространство (файловая система exFAT в данном случае тоже подойдёт). Копируем на него образ DMG с дистрибутивом системы. Обычно такие образы пользователи создают сами для архива дистрибутивов и они же в большинстве случаев предлагаются к загрузке в разных источниках. Входим в режим Recovery и подключаем съёмный накопитель. Необходима версия среды восстановления от 10.11.

Подключаем DMG образ в терминале

hdiutil attach /Volumes/Untitled/Install\ macOS\ Catalina.dmg -noverify

Или кликаем мышкой на "Открыть образ диска…" в дисковой утилите.

OS X Recovery Disk Utility

При необходимости можно выполнить форматирование раздела.

Выходим из дисковой утилиты.

Запускаем установку или обновление ОС утилитой startosinstall из терминала.

/Volumes/macOS\ Catalina/Install\ macOS\ Catalina.app/Contents/Resources/startosinstall \
--agreetolicense \
--volume "/Volumes/Macintosh HD"

OS X Recovery Terminal startosinstall
После подготовки Mac будет перезагружен, а на экране отобразится яблоко с полосой прогресса. На этом этапе USB-накопитель можно отключить.

Apple progress bar

startosinstall можно запускать и с загрузочного накопителя. Если использовать запуск из "/Volumes/Image Volume" будет использоваться дистрибутив этой загрузочной флешки, а если "/Volumes/macOS Base System/", то дистрибутив будет загружен с серверов Apple.

Инструкция по созданию загрузочного накопителя доступна на сайте поддержки. Во время подготовки система отформатирует указанный раздел в Mac OS Extended (журналируемый).

Пример создания загрузочного накопителя на разделе "Untitled"с macOS High Sierra. Подобная команда будет применима к системам начиная с macOS 10.13 High Sierra до текущей на данный момент macOS 14 Sonoma

sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled

Create Bootable Flashdrive macOS

После выполнения раздел будет переименован в "Install macOS High Sierra". При необходимости можно создать несколько разделов на одном USB-накопителе и перенести на них все необходимые дистрибутивы ОС. Создание USB-накопителя также возможно в среде Recovery.

Загрузочный накопитель для систем от Mac OS X 10.9 Mavericks до macOS 10.12 Sierra создаётся аналогично, но требуется дополнительный ключ "--applicationpath"

sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia \
--volume /Volumes/Untitled \
--applicationpath /Applications/Install\ OS\ X\ Mavericks.app

Дистрибутивы Mac OS X 10.7 Lion и Mac OS X 10.8 Mountain Lion не имеют специальных инструментов для создания загрузочных накопителей. Чтобы создать это необходимо развернуть InstallESD.dmg на накопитель с помощью приложения balenaEtcher или других подобных утилит в Linux, macOS или Windows.

Ранние дистрибутивы Mac OS X и Mac OS 9 можно записать с помощью dd, например, так:

sudo dd if="/path/to/Mac OS 9.2.2-MacOS9Lives.iso" of=/dev/rdisk4 bs=1m status=progress

Следует отметить, что не все USB-накопители могут подойти. Иногда встречаются ситуации, когда правильно подготовленная "флешка" не работает как загрузочная в Mac. Проблема может быть как в прошивке, так и в контроллере этой "флешки".

4.1 Создание загрузочных накопителей без Mac

Одна из самых распространенных проблем. Apple намеренно не распространяет дистрибутивы ОС в форматах, которые можно использовать для записи в альтернативных ОС. То есть, если у вас нет рабочей macOS, то получить дистрибутив из официального источника и, тем более, как-то взаимодействовать с ним хоть и возможно, но не каждый готов пройти этот путь.

Если Mac поддерживает Internet Recovery и интернет соединение позволяет это - используйте! Если же вам необходима конкретная версия ОС и вы знаете, что делаете, то можете воспользоваться подготовленными автором заметки образами. Записать DMG образ можно с помощью приложения balenaEtcher или других подобных утилит в Linux, macOS или Windows.

4.2 Использование накопителя

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

Mac c процессором Apple: Включаем Mac и удерживаем кнопку включения до появления загрузочного меню.

Mac с процессором Intel: Включаем Mac и удерживаем клавишу Option/Alt на клавиатуре до появления загрузочного меню. Выбираем дистрибутив и запускаем установку.

Mac с процессором PowerPC: Сразу стоит отметить - не все оригинальные образы могут быть использованы как загрузочные на USB, так же как и не все компьютеры способны использовать загрузочные USB. Например, Mac OS X 10.4.0 Tiger - не запускается, а 10.4.6 без проблем, Mac OS 9 тоже может быть загружена для установки через загрузочный USB. Первые USB накопители появились в продаже ориентировочно в конце 2000 года, в связи с этим ранние версии компьютеров, типа iMac с лоточным приводом 1998 года или Power Macintosh G3 Blue & White 1999 года не могут похвастаться возможностью загрузки с USB - OpenFirmware не определяет устройство и никак не взаимодействует с ним.

PowerMac G4 оснащены USB 1.1, а G5 USB 2.0 поэтому установка "DVD" образа может занять длительное время.

Запустить загрузку с USB на PowerMac можно через загрузочное меню. Включаем компьютер и удерживаем клавишу Alt/Option на клавиатуре.

Так же запуск можно выполнить через выполнение команд в OpenFirmware. Чтобы попасть в OpenFirmware необходимо после включения компьютера удерживать на клавиатуре клавиши Command+Option+F+O до появления приглашения или войти в загрузочное меню удержанием клавиши Option/Alt, а после нажать CTRL+Z. Простая команда запуска которая теоретически должна сама определить порт с USB накопителем и найти загрузчик:

boot ud:,\\:tbxi

Но это работает не всегда, поэтому приходится указывать путь в ручную:

probe-usb boot usb0/@1:3,\\:tbxi

где usb0 - псевдоним первого USB порта согласно маркировке на корпусе (в зависимости от модели может отличаться); @1:3 - диск 1, раздел 3 ; \:tbxi - поиск загрузчика Mac OS.

Для просмотра всех идентификаторов оборудования необходимо выполнить:

dev / ls

Для просмотра псевдонимов:

devalias

Разумеется, можно не использовать псевдонимы и указать полный путь до накопителя и загрузчика. Загрузчики у Mac OS 9 и Mac OS X разные:

probe-usb boot /pci@f2000000/usb@18/disk@1:8,\System%20Folder\Mac%20OS%20ROM
probe-usb boot /pci@f2000000/usb@18/disk@1:3,\System\Library\CoreServices\BootX

Если загрузка с накопителя не работает, то необходимо убедиться в том, что:
- Накопитель подключен напрямую в USB порт;
- На Mac с процессором Intel пароль в утилите прошивки не установлен;
- На Mac с процессором Intel и чипом T2 в утилите безопасной загрузки пароль прошивки не установлен и разрешена загрузка с внешних накопителей.

Следует учитывать, что на Mac с процессором Intel и чипом T2 и Mac с процессором Apple при использовании высшего уровня безопасности в утилите безопасной загрузки при установке ОС через USB накопитель потребуется доступ в интернет для проверки сертификата и разрешения Apple использовать эту ОС. Изменение настроек в утилите безопасной загрузки требует пароль администратора macOS. Если macOS не установлена, повреждена или пароль администратора неизвестен - изменение настроек невозможно. Подробнее об утилите безопасной загрузки можно прочитать на
странице поддержки.

 

5. Восстановление с помощью другого компьютера

Компьютеры Mac с процессором Intel и чипом T2 и компьютеры Mac с процессором Apple можно переводить в режим Device Firmware Update (DFU) и выполнять процедуру восстановления прошивки и macOS с помощью другого Mac.

На Mac с процессором Intel и чипом T2 можно выполнить только восстановление прошивки BridgeOS, сброс настроек и удаление разделов на внутреннем диске. macOS необходимо установить вручную с Internet Recovery.

На Mac с процессором Apple выполняется как восстановление прошивки, так и разворачивается последняя доступная версия macOS для этого компьютера.

Для использования потребуется USB-C - USB-C кабель, при этом кабели Thunderbolt 3 не поддерживаются.

К компьютеру, который необходимо восстановить подключаем USB-C кабель в указанный порт:

Компьютер Mac с процессором Apple: повернув компьютер Mac левой стороной с портами к себе, подключите кабель USB-C к крайнему левому порту USB-C.

Компьютер Mac с процессором Intel и чипом T2: повернув компьютер Mac левой стороной с портами к себе, подключите кабель USB-C к крайнему правому порту USB-C.

iMac: повернув компьютер Mac задней стороной к себе, подключите кабель USB-C к крайнему правому порту USB-C.

Компьютер Mac mini с процессором Apple: повернув компьютер Mac задней стороной к себе, подключите кабель USB-C к крайнему левому порту USB-C.

Компьютер Mac mini с процессором Intel и чипом T2: повернув компьютер Mac задней стороной к себе, подключите кабель USB-C к крайнему правому порту USB-C.

Mac Studio: повернув компьютер Mac задней стороной к себе, подключите кабель USB-C к крайнему правому порту USB-C.

Mac Pro с настольным корпусом: на верхней панели компьютера Mac подключите кабель USB-C к порту USB-C, расположенному дальше всего от кнопки питания.

Mac Pro со стоечным корпусом: на передней панели компьютера Mac подключите кабель USB-C к порту USB-C, расположенному ближе всего к кнопке питания.

Если выполняется восстановление ноутбука, дополнительно необходимо подключить его к источнику питания.

Второй конец кабеля допустимо подключать в любой порт Mac, который будет управлять восстановлением.

Чтобы войти в режим DFU на MacBook необходимо:

  • Нажать и удерживать кнопку питания в течение 10 секунд, пока компьютер Mac не выключится. (Если на компьютере Mac есть кнопка Touch ID, она также используется в
    качестве кнопки питания.)

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

-- Кнопка питания

-- Клавиша Shift ⇧ на правой стороне клавиатуры

-- Клавиша Option ⌥ на левой стороне клавиатуры

-- Клавиша Control ⌃ с левой стороны клавиатуры

Компьютер Mac с процессором Apple: удерживайте нажатыми все четыре клавиши в течение примерно 10 секунд, а затем отпустите все клавиши, кроме кнопки питания.
Примерно через 3 секунды отпустите кнопку питания.

Компьютер Mac с процессором T2: удерживайте нажатыми все четыре клавиши в течение примерно 3 секунд, а затем отпустите все клавиши.

Чтобы войти в режим DFU на настольном компьютере Mac необходимо:

  • Выключить Mac и отключить источник питания

  • Нажать и удерживать кнопку включения и подключить источник питания

  • Удерживать кнопку включения около 3 секунд

Для этой процедуры удобно использовать блок розеток с тумблером.

Тем, кто не хочет упражняться в одновременном нажатии неудобных сочетаний клавиш на MacBook или искрить кабелем питания на настольных компьютерах, можно воспользоваться проектом macvdmtool. В этом случае кабель USB-C должен быть подключен в порт DFU с обоих сторон, управляющий компьютер должен быть Mac с процессором Apple.

Для перевода подключенного Mac в режим DFU

sudo macvdmtool dfu

macvdmtool dfu

5.1 Восстановление с помощью Finder

Управляющий компьютер должен работать на macOS 14 Sonoma или выше, подключенный Mac в режиме DFU отобразится в боковой панели.

Finder DFU

Кнопка "Восстановить функциональность Mac…" выполняет восстановление прошивки. Может быть полезно, если при обновлении macOS возникло отключение электропитания. При запуске на экране отображается восклицательный знак или Mac автоматически входит в аварийный режим и сигнализирует о повреждении прошивки. При выполнении этого восстановления настройки и данные пользователя сохраняются. После выполнения и перезагрузки на восстановленном Mac потребуется ввести пароль администратора macOS для активации компьютера.

Finder DFU Revive

Кнопка "Восстановить Mac…" удаляет пользовательские данные, восстанавливает и сбрасывает по умолчанию настройки прошивки. На Mac с процессором Apple автоматически разворачивается последняя доступная macOS, на Mac процессором Intel и чипом T2 устанавливается последняя версия прошивки, macOS нужно установить из Internet Recovery. Соответственно мастер предупреждает об этом разными сообщениями.

Finder DFU Restore

После загрузки образа ipsw с macOS развёртывание выполняется 10-15 минут, а на экране будет отображено яблоко с полосой прогресса. Если компьютер ранее был подключен к Apple ID, то после перезагрузки запустится стандартная процедура Activation Lock.
Загруженные файлы кэшируются в расположениях:
~/Library/iTunes/iBridge Software Updates
~/Library/iTunes/Mac Software Updates/
Лог процедуры восстановления можно найти здесь: ~/Library/Logs/Mac Updater
Logs/MacUpdater.log

 

5.2 Восстановление с помощью Apple Configurator 2

Управляющий компьютер должен работать на macOS 12 Monterey или новее, после подключения Mac в режим DFU открываем Apple Configurator 2 и сразу увидим подключенное устройство, в данном случае Mac mini. Тип подключенного компьютера будет отображён при подключении Mac с процессором Apple, при подключении Mac с процессором Intel и чипом T2 устройство будет иметь имя "Apple Controller" или "Mac".

DFU

Варианты восстановления аналогичны описанным в предыдущем пункте.

Чтобы выполнить восстановление функциональности Mac, необходимо вызвать контекстное меню на объекте и в разделе "Advanced" выбрать "Revive Device".

AppleConfigurator Revive
Для восстановления Mac необходимо выбрать параметр "Restore".

AppleConfigurator Restore

Загруженные файлы кэшируются в расположениях:
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Firmware/

Лог процедуры восстановления можно найти здесь:
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Logs

У версии 2.17, похоже, проблемы с логированием - лог не сохраняется.

 

5.3 Установка предыдущих версий

Всякий раз при использовании инструментов восстановления для Mac с процессором Apple пользователям по умолчанию предлагается установка только последней доступной версии macOS. Рассмотрим вариант восстановления одной из предыдущих версий. На ресурсе ipsw.me можно загрузить ipsw образ с требуемой ОС. Следует учитывать, что возможно восстановление только тех версий, которые Apple подписывает, аналогично с iOS. На данный момент доступны все версии начиная с macOS 11.0.1 для Mac mini 2020 года выпуска.

При восстановлении через Finder необходимо нажать на Alt/Option на клавиатуре и выбрать "Восстановить Mac…", откроется файловый браузер, в котором нужно указать ipsw образ необходимой версии, например, macOS 12.6 Monterey.

Finder DFU - old version restore

При восстановлении через Apple Configurator 2 необходимо выбрать "Restore" из контекстного меню с зажатым Alt/Option на клавиатуре и выбрать образ ipsw в открывшемся файловом браузере или просто перетянуть этот образ на устройство.

AppleConfigurator - old version restore

Так же можно воспользоваться утилитой терминала cfgutil, которая устанавливается из меню Apple Configurator -> Install Automation Tools

cfgutil restore -I ~/Downloads/UniversalMac_12.6_21G115_Restore.ipsw

cfgutil DFU - old version

Если не передавать ключ -I, то будет развёрнута последняя доступная macOS.

При подключении нескольких устройств будет выполнятся попытка восстановления всех устройств. Если нужно выделить одно конкретное устройство для взаимодействия, необходимо указывать ECID через ключ "-e". Узнать этот идентификатор можно через листинг подключенных устройств или в разделе USB System Profiler.

System Profiler

Выполним восстановление указанного Mac и развернём последнюю версию macOS

cfgutil -e 0x9282C1440801E restore

cfgutil DFU - select mac latest vers

 

5.4 Альтернативные методы

Когда под рукой нет ещё одного Mac, с которого можно было бы выполнить восстановление, можно воспользоваться приложением iTunes на Windows или инструментом idevicerestore на Linux.

Принцип использования iTunes аналогичен Finder. Единственное, нужно удерживать клавишу Shift на клавиатуре для возможности выбора ранее загруженных ipsw образов для восстановления.

В репозиториях Debian есть пакет idevicerestore, но старый и не поддерживает восстановление macOS. Воспользовавшись шпаргалкой с небольшими изменениями можно быстро собрать и установить пакет последней версии и зависимости.

Для развёртывания последней доступной версии macOS:

idevicerestore -e -l

Для развёртывания конкретной версии macOS 13.6 Ventura:

idevicerestore -e ~/Downloads/UniversalMac_13.6_22G120_Restore.ipsw

idevicerestore start

Спустя 10-15 минут получаем готовую к работе macOS 13.6 Ventura

idevicerestore finish

6. Административная установка по сети

Технология сетевой загрузки NetBoot позволяла администраторам использовать Mac как бездисковые тонкие клиенты. Затем появились типы загрузки NetInstall и NetRestore, позволяющие выполнять административные установки ОС и восстановление по сети. Сейчас технология считается старевшей и не доступна для современных Mac.

Поддерживается компьютеры Mac с процессором PowerPC начиная с оригинального iMac 1998 года выпуска, то есть все, которые именуют как "New World ROM Mac".

Поддерживаются компьютеры Mac с процессором Intel:

  • MacBook Pro выпущенные до 2017 года включительно

  • MacBook Air выпущенные до 2017 года включительно

  • MacBook выпущенные до 2016 года включительно

  • Mac mini выпущенные до 2014 года включительно

  • iMac выпущенные до 2017 года включительно, кроме iMac Pro

  • Mac Pro выпущенные до 2013 года включительно

Создание образа выполняется утилитой System Image Utility. Позже стали доступы шаги в разделе "Система" в Automator. Изначально утилита была встроена в OS X Server, а так же поставлялась отдельно в пакете "Server Tools", затем было вновь встроено в ОС с версии OS X 10.10.

NetInstall - тоже самое, что и загрузка с дистрибутива. При использовании образов от 10.7 фактически запускается упомянутый ранее Recovery. Дополнительно к установке можно настроить автоматизацию процесса: подготовка диска, установка ОС, установка пакетов, ввод в домен.

NetRestore - восстановление Mac по сети с пред-настроенного образа.

NetBoot - использование Mac в качестве тонкого клиента.

На закате технологии разработчики не уделяли должного внимания работе сервиса или специально сломали. Начиная с macOS 10.12.4 Sierra механизмы NetInstall и NetRestore не работали должным образом и в итоге стали практически бесполезны из-за отсутствия работающей кастомизации и, как следствие, автоматизации. Позже перестал работать и NetBoot. Начиная с macOS 10.15 Catalina поддержка полностью удалена из ОС.

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

Пример создания образа NetBoot для тонкого клиента из раздела NetBoot с пред-настроенной macOS 10.13:

Create macOS NetBoot Image

Для создания NetInstall в качестве источника необходимо указать дистрибутив ОС. На выходе получаются "образы" в виде каталога, имя которого заканчивается на ".nbi"

NetBioot nbi files
Если требуется добавить какие-то файлы в образ, то можно смонтировать DMG и добавить всё то, что необходимо. Такие параметры, как имя образа и описание, можно изменить в файле NBImageInfo.plist.

Для обслуживания Mac с процессором Intel потребуется macOS 10.13, проводное подключение к сети, DHCP и набор северных утилит версии 5.6.3. В более новых версиях NetInstall удалён из состава Server.app. В настройках необходимо указать сетевой интерфейс и хранилище для образов и пользовательских данных для бездисковых тонких клиентов. Подготовленные ранее пакеты образов необходимо перенести в /Library/NetBoot/NetBootSP0 и переключить тумблер. В свойствах образов можно изменить протокол передачи данных NFS/HTTP. В настройках образа NetBoot есть чекбокс для возможности запуска на бездисковых Mac. Настройки демона и образы находятся на вкладке "Settings":

macOSServer NetInstall Settings

Клиенты, подключенные к серверу, отображаются на вкладке "Connections":

macOSServer NetInstall in Process

Для обслуживания Mac с процессором PowerPC и ранних Mac с процессором Intel, можно развернуть универсальную OS X Server 10.5 Leopard. Это позволит не только выполнять установки и запуск тонких клиентов на ранних версиях OS X, но и запускать тонкие клиенты на Mac OS 9.
Обзор количества доступных образов и состояния служб:

OS X Server NetBoot Overview

Клиенты, подключенные к серверу, отображаются на вкладке "Clients":

OS X Server NetBoot Clients

Mac с процессором PowerPC подключается к NetBoot серверу только по проводной сети, а Mac с процессором Intel может подключатся как по проводной, так и по беспроводной сети, при этом поддерживаются только встроенные сетевые интерфейсы.

Есть несколько способов указать компьютеру на запуск с сервера:

  • Для загрузки образа по умолчанию необходимо во временя запуска компьютера удерживать на клавиатуре клавишу "N".
  • Для выбора образа на этапе запуска компьютера необходимо отрыть загрузочное меню удержанием клавиши Alt/Option
  • Для установки выбранного образа по умолчанию для всех последующих запусков компьютера необходимо в панели управления запустить апплет "Загрузочный диск" и выбрать необходимый вариант.

Выбор загрузочного диска в Mac OS 9:

Select Startup disk (OS9)

Выбор загрузочного диска в OS X 10.11:

Select Startup disk OS X

 

Возможные проблемы

Если вы всё выполняете верно, но установка ОС, например macOS 12 Monterey, не может быть выполнена из-за ошибки "a required firmware update cannot be installed", то, скорее всего, ранее оригинальный NVME диск был заменён на диск от сторонних производителей. Проблема в том, что программа установки ОС не может выполнить обновление прошивки EFI с таких NVME дисков. Предположительно это ограничение действовало до версии 195.x.x.x.x.

Если оригинальный диск остался, можно подключить его в виде внешнего и выполнить установку ОС, а после обновить ОС на внутреннем.

Если диска не осталось, есть вариант запуска обновления прошивки вручную.

1) Загружаемся в Recovery и отключаем SIP через терминал:

csrutil disable

2) Возвращаемся в ОС и монтируем образ SharedSupport.dmg из дистрибутива macOS 12 Monterey:

hdiutil attach "/Applications/Install macOS Monterey.app/Contents/SharedSupport/SharedSupport.dmg" -nobrowse -noverify -quiet

3) Распакуем каталог с прошивками:

unzip "/Volumes/Shared Support/com_apple_MobileAsset_MacSoftwareUpdate/*.zip" "AssetData/boot/EFI/EFIPayloads/*" -d ~/Temp

4) Перенесём каталог с прошивками в Temp и удалим ненужное дерево каталогов:

mv ~/Temp/AssetData/boot/EFI/EFIPayloads ~/Temp && rm -r ~/Temp/AssetData/

5) Размонтируем SharedSupport.dmg:

umount "/Volumes/Shared Support"

6) Перейдём в каталог и разберёмся с файлами:

cd ~/Temp/EFIPayloads/ && ls

list EFI PayLoads

iMac MacBook Mac mini Mac Pro EFI Files

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

sudo bless -mount / -firmware MM71.scap --recovery --verbose

8) Выключаем Mac, через несколько секунд включаем.

После выполнения процедуры прошивки и загрузки ОС открываем информацию о системе и фиксируем изменение версии прошивки. Если всё хорошо, включаем SIP.

9) Входим в режим Recovery и включаем SIP:

csrutil enable

Повторно пробуем выполнить установку или обновление ОС.

Для старых компьютеров прошивки EFI можно загрузить с сайта поддержки и обновить вручную с pkg пакета. Начиная с macOS 10.12 Sierra и до macOS 10.15 Catalina все прошивки были запакованы в пакет FirmwareUpdate.pkg, который находится в образе дистрибутива InstallESD.dmg. В сети так же встречаются подобные проблемы с установкой macOS 10.15 Catalina на APFS контейнер SSD стороннего производителя.

Извлечь прошивки EFI из пакета можно так:

Монтируем образ InstallESD.dmg:

hdiutil attach "/Applications/Install macOS Sierra.app/Contents/SharedSupport/InstallESD.dmg" -nobrowse -quiet

Распаковка пакета:

pkgutil --expand "/Volumes/OS X Install ESD/Packages/FirmwareUpdate.pkg" ~/Temp/FWs

Каталог FWs не нужно создавать предварительно. Файлы прошивок имеют аналогичную логику именования и будут находиться в каталоге ~/Temp/FWs/Scripts/Tools/EFIPayloads.

Всё выполняется на свой страх и риск повреждения устройства.

Если Вы купили Mac на вторичном рынке, переустановили ОС и внезапно оказалось, что этот компьютер привязан через DEP к зарубежной компании или учебному заведению, то самым разумным решением будет вернуть устройство продавцу и забрать деньги. Фактически такое устройство можно считать краденым. Но если вы осознаёте и принимаете все риски, то есть выход из ситуации. Удалить привязку DEP с серверов Apple само-собой не получится, но с помощью проекта skipmdm от энтузиастов можно запретить этому компьютеру связываться с некоторыми серверами Apple, а так же удалить установленные параметры и использовать компьютер как обычно. Для этого в Recovery после установки ОС необходимо выполнить интерактивный скрипт:

curl https://raw.githubusercontent.com/skipmdm-phoenixbot/skipmdm.com/main/Autobypass-mdm.sh -o Autobypass-mdm.sh && chmod +x ./Autobypass-mdm.sh && ./Autobypass-mdm.sh

На сайте разработчика решения есть подробная инструкция использования, в том числе и в видео-формате.

Не все продавцы сообщают о подобных "особенностях". Некоторые скрывают это намеренно, другие не знают, так как покупали устройство на вторичном рынке, но не сталкивались с проблемами, потому что не переустанавливали ОС.

Перед приобретением б/у устройства можно выполнить проверку, чтобы узнать текущее состояние ОС на предмет подключения к DEP

sudo profiles status -type enrollment

Так же дополнительно стоит посмотреть на содержимое файла hosts

cat /etc/hosts

На чистой системе файл содержит только ссылки на localhost. Если же вы наблюдаете "deviceenrollment.apple.com", "mdmenrollment.apple.com", "iprofiles.apple.com" ссылающиеся на 127.0.0.1 или 0.0.0.0, то с большей вероятностью тот, кто готовил компьютер к продаже, воспользовался проектом skipmdm или подобными решениями.

 

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

Mac с процессором Apple: Включаем компьютер и удерживаем кнопку питания до появления загрузочного меню. Нажимаем и удерживаем Command+D.
Mac c процессором Intel:
Включаем компьютер и удерживаем клавишу D или Alt/Option + D.
Компьютеры выпущенные до июня 2013 для диагностики используют Apple Hardware Test (AHT), после Apple Diagnostics.

Если вы испытываете проблемы с запуском AHT, то есть возможность создать загрузочный накопитель из образа AHT для конкретной модели Mac. Ссылки на образы можно найти c помощью одноимённого проекта на GitHub.

Для некоторых старых моделей компьютеров в сети можно найти утёкшие образы Apple Service Diagnostics (ASD) для выполнения расширенных тестов оборудования.

По завершению Apple Diagnostics, система сообщит код возможной проблемы. Описания кодов можно найти на странице поддержки.

Дополнительно можно воспользоваться другими загрузочными инструментами диагностики, которые вам известны, например для проверки ОЗУ - memtest.

Mac с процессором PowerPC не имеют встроенных средств тестирования, но для большинства "New World ROM Mac" компьютеров доступны образы AHT, которые можно найти на тематических сайтах.

 

Заключение

Подводя итог можно с уверенностью сказать, что установить последнюю совместимую ОС на исправный компьютер Mac начиная с 2010 года выпуска за небольшим исключением - пара пустяков: необходимо только одно сочетание клавиш и качественное интернет соединение. Если под рукой есть ещё один современный компьютер с Linux, macOS или Windows, то восстановление ОС через DFU выполняется за 10-15 минут без учёта времени на загрузку IPSW образа.

Сложности и непонимание у многих пользователей начинаются из-за отсутствия нормального интернета, явного желания использовать для установки ОС USB-накопитель, потребности установить конкретную версию ОС, неоригинальных или неисправных комплектующих, неисправности устройства в целом или этот компьютер подключен к DEP и фактически принадлежит зарубежной компании или учебному заведению.

Добавить комментарий