Как стать автором
Обновить

Offline восстановление OSX с раздела Recovery HD

Время на прочтение 3 мин
Количество просмотров 77K


Предыстория


В свете выхода OS X Mavericks Golden Master решил посмотреть на нового зверя, установив его на морально устаревший iMac7,1. Установка прошла успешно, обычным способом из рабочей системы версии 10.7. Но все работало очень медленно. Этот mac пережил не одно обновление поколений ОС и ни единой установки с «0». Ввиду отсутствия ценных данных — решено было поставить начисто. Я переформатировал раздел из режима восстановления, aka Recovery HD, и вот тут меня ожидал неприятный сюрприз и даже не один. Подробности того, как удалось уговорить, уже не кисоньку из Купертино, без доступа к Интернет и загрузочного устройства

Сюрприз первый


При установке, Recovery HD был обновлен с версии 10.7 до версии 10.9, а отсюда следует сюрприз второй…

Сюрприз второй


Internet Recovery — известный механизм восстановления OSX через интернет. Авторизуемся в Apple Store, если OSX куплена, то через интернет установщик качает необходимые файлы. Работает как часы, точнее работало. Есть маленькая проблема — Mavericks пока нет в Apple Store, а DMG файл с операционкой был получен из Dev Apple, поэтому восстановить его обычным способом не вышло. "An unknown error has occurred" это то, что меня встречало при попытке авторизации.
Почесав репу, я создал загрузочную флешку. Тут меня ожидал сюрприз третий…

Сюрприз третий


iMac отказывается видеть USB как загрузочный диск, по непонятной (мне) причине. При этом Disk Utility, в режиме Recovery, видит его нормально. Сбросив NVRAM, SMC и вдоволь наигравшись со всеми найденными дома флешками, решил попробовать переносной диск. Если кротко — см. результат про флешки. DVD писалки и, главное, 2х слойного носителя под рукой не было — я приуныл и пополз в Google.

Ларчик просто открывался


Результат 2х дневного рысканья по профильным форумам позволил установить Mavericks без доступа к интернет и без возможности загрузки с внешнего носителя.
Все просто, копируем папку Packages в корень любой флешки с объемом более 4х Гб. Для этого нужен скачанный из Dev Apple (или полученный другим способом) установочный dmg файл.

Добыть эту папку можно так:


Перезагружаемся в режим восстановления (с зажатым Alt), подключаем флешку и запускаем Terminal


Проверяем список устройств, нас интересует macHD — метка моего жесткого диска в iMac и usb-osx — метка флешки с каталогом Packages в корне.
-bash-3.2# diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS macHD                   249.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0MB    disk0s3
...
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *7.7 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS usb-osx                 7.4 GB     disk3s2


Смотрим куда примонтированы эти устройства (пути нужны для формирования команды установки ниже)
-bash-3.2# mount | grep macHD
/dev/disk0s2 on /Volumes/macHD (hfs, local, journaled)

-bash-3.2# mount | grep usb-osx
/dev/disk3s2 on /Volumes/usb-osx (hfs, local, nodev, nosuid, noowners)


Запускаем процесс установки.
-bash-3.2# installer -pkg /Volumes/usb-osx/Packages/OSInstall.mpkg -target /Volumes/macHD
installer: Package name is OS X
installer: Installing at base path /Volumes/macHD
2013-10-13 21:36:12.016 installer[411:817f] Looking for system packages
2013-10-13 21:36:12.092 installer[411:817f] no system packages found
2013-10-13 21:36:12.093 installer[411:817f] No or Invalid system receipts found on /Volumes/macHD/Recovered Items
2013-10-13 21:36:12.093 installer[411:817f] Attempting fallback using: /System/Library/PrivateFrameworks/SystemMigration.framework/Resources/FallbackSystemFiles.plist
2013-10-13 21:36:12.423 installer[411:817f] Finding system files...
2013-10-13 21:36:13.907 installer[411:817f] Writing system path cache.
2013-10-13 21:36:13.941 installer[411:817f] FSF cache NOT written: /Volumes/macHD/Recovered Items/System/Library/Caches/com.apple.FindSystemFiles.plist
No mount point for /Volumes/Image Volume/.IABootFiles
Cant determine mount point of /Volumes/Image Volume/.IABootFiles
Could not statfs() 
Could not determine filesystem of 
installer: The install was successful.


К сожалению процесс установки неинформативен (не видно прогресса), косвенно можно наблюдать за изменением свободного места на разделе macHD в соседней вкладке терминала.
-bash-3.2# df -h | grep macHD
/dev/disk0s2  232Gi  3.4Gi  229Gi    2%   881294   59958448    1%     /Volumes/macHD
...
/dev/disk0s2  232Gi  3.5Gi  229Gi    2%   911436   59928306    1%     /Volumes/macHD


Установка длится, примерно, 1 час, после завершения на диске занимает 7.3Gi.

После окончания — перезагружаемся.
-bash-3.2# reboot

После перезагрузки, нас поприветствует свежеустановленная OSX


Бонус


Немного поэкспериментировав, выяснил интересный побочный эффект — подобным способом можно произвести downgrade операционной системы, заменив содержимое каталога Packages более ранними версиями (10.7, 10.8)

Вместо заключения


Надеюсь статья была полезной, принимаются замечания и нецензурная брань. Для себя получил приятное подтверждение того, что под «рюшечками» симпатичного GUI OSX, скрывается мощнейшая командная строка. Просто нужно уметь ее готовить.
Теги:
Хабы:
+35
Комментарии 31
Комментарии Комментарии 31

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн