Капризный Recovery HD в Lion: как его не потерять и как его вернуть

Новинкой OS X Lion стал Recovery HD — специальный скрытый раздел восстановления, который создаётся на жёстком диске по соседству с основным разделом, на который вы ставите систему. Предназначение этого раздела достаточно обширно: это и возможность переустановки системы, возможность переразметить диск, выполнить команду в терминале, восстановиться из резервной копии Time Machine и даже доступ к Safari. В общем, Recovery HD позволяет делать примерно то же, что раньше разрешалось осуществлять с установочного DVD системы. На всех новых Маках этот раздел — вообще единственный способ переустановки системы, потому что никакими физическими носителями нынешние компьютеры Apple вообще не комплектуются.

Всё бы здорово, но с разделом восстановления в Apple перемудрили. Мало того, что он слишком надёжно скрыт от глаз, так он ещё и норовит самопроизвольно удалиться при внесении каких-либо изменений в структуру разделов диска. К этому также надо прибавить конфликты с Ассистентом Boot Camp — то раздел восстановления мешает ставить Windows, то наоборот; иными словами, теперь у маководов есть новый источник головной боли. Сегодня мы хотели бы прояснить ситуацию вокруг этого раздела и рассказать, как сделать его резервную копию, а также как его можно восстановить в случае необходимости.

Самая главная проблема Recovery-раздела — его скрытность. Вы не увидите его ни в Finder, ни в каких-либо других файловых менеджерах. Его нет даже в Дисковой утилите. Увидеть его можно лишь по терминальной команде diskutil list, смонтировать — по терминальной команде diskutil mount «Recovery HD», а более-менее удобный способ что-нибудь с ним сделать состоит в активации меню отладки Дисковой утилиты через Терминал командой:

[php]defaults write com.apple.DiskUtility DUDebugMenuEnabled 1[/php]

Но и этого недостаточно: надо будет также зайти в Дисковую утилиту и в меню «Отладка» включить опцию «Показать каждый раздел». Лишь после этого раздел восстановления станет виден Дисковой утилите:

Этого уже достаточно, чтобы прямо в Дисковой утилите сделать резервную копию раздела восстановления в образ. Нажмите на панели инструментов кнопку «Новый образ» и укажите надёжное место для хранения этого образа.

Как быть, если вдруг случится страшное и вы потеряете раздел восстановления? Увы, тут всё уже не так просто. Конечно, вы можете через ту же Дисковую утилиту создать новый раздел на диске (для этого слева выбираете искомый диск — именно диск, а не раздел на нём, справа переходите на вкладку «Раздел диска» и нажимаете на плюсик, потом вводите размер раздела). Хотя исходный размер раздела восстановления — 650 МБ, меньше гигабайта под него выделить вам Дисковая утилита не даст. Впрочем, это не критично. Главное — обзовите раздел Recovery HD. Переименовать раздел можно из контекстного меню раздела в сайдбаре Finder или Path Finder.

Проблема тут в другом — если вы развернёте на созданный вами раздел резервную копию (например, через Carbon Copy Cloner или снова через Дисковую утилиту), то вы не получите системный раздел восстановления в полном смысле слова. Хотя по начинке он ничем не будет отличаться от «правильной» копии, он будет восприниматься системой как обычный раздел диска.

Причина этого — идентификатор типа раздела в таблице GUID. По умолчанию все создаваемые разделы помечаются как обычные, а для того, чтобы Mac OS X видела, что перед ней именно раздел восстановления, нужно присвоить этому обычному разделу другой идентификатор. Это тоже делается через Терминал. Самое занятное, что для этого требуется размонтировать весь диск, поэтому вам нужно будет загрузиться с какого-либо внешнего носителя (по идее, если у вас есть внешний носитель, то на Recovery HD можно смело забить, только если вам не нужно полное шифрование диска через FileVault).

Допустим, вы загрузились с загрузочной флешки и запустили Терминал из меню утилит. Сначала вам надо будет узнать, какой номер диска и номер раздела соответствуют тому разделу, который вы будете превращать в Recovery HD. Для этого вводите команду diskutil list. Видите примерно такой список:

Находите в перечне разделов тот, который вы превращаете в Recovery HD. В колонке IDENTIFIER находите номера диска и раздела. Например, если там написано disk4s2, то у вас диск №4 и раздел №2. Номер раздела — величина неизменная, а вот номер диска при наличии у вас нескольких винчестеров — вещь переменчивая, потому что при следующей загрузке диски могут пронумероваться уже иначе.

Затем вы вводите команду:

[php]gpt -r show diskN[/php]

N в команде выше меняете на номер диска. Видите карту разделов GPT для выбранного диска:

Это всё тот же перечень разделов, но с ценной для нас дополнительной информацией. В столбце index показаны номера разделов — находите здесь нужный вам. Затем запоминаете и выписываете для него значения, указанные в столбцах start и size. Первая цифра — это номер сектора диска, с которого начинается раздел. Вторая цифра — размер раздела в секторах.

А дальше надо приступать к невиданному извращению — ручной правке карты разделов GPT. Надо предупредить, что это, пожалуй, одна из самых опасных операций, которую только можно выдумать на Маке. Любая ошибка в любой цифре грозит вам смертью всей информации на диске, поэтому будьте максимально внимательны и перепроверяйте все команды по три-четыре раза, чтобы не пришлось потом пожалеть о своём пристрастии к подобным экспериментам.

Сначала вы отключаете все разделы на выбранном диске (N меняете на номер диска)

[php]diskutil unmountDisk diskN[/php]

Потом удаляете из таблицы разделов запись, указывающую на то, что на диске есть раздел, который должен стать разделом восстановления. M вы меняете на номер этого раздела, N — на номер диска (ни в коем случае не перепутайте!):

[php]gpt remove -i M diskN[/php]

Потом снова отключаете разделы:

[php]diskutil unmountDisk diskN[/php]

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

  • M вы меняете на номер раздела на диске
  • START вы меняете на номер стартового сектора, который вы узнали по команде gpt -r show
  • SIZE — на размер раздела в секторах из той же команды
  • 426F6F74-0000-11AA-AA11-00306543ECAC — идентификатор таблицы разделов GUID, который соответствует разделу восстановления Apple. Вводить его нужно точно так же, как написано в команде
  • N меняете на номер диска (например, disk4)

Сама команда выглядит так:

[php]gpt add -i M -b START -s SIZE -t 426F6F74-0000-11AA-AA11-00306543ECAC diskN[/php]

Если вы введёте верные данные, то сконвертируете ваш обычный раздел в Recovery HD. Если неверные… лучше не будем об этом :)

Да, чтобы отключить меню отладки в Дисковой утилите, воспользуйтесь командой:

[php]defaults write com.apple.DiskUtility DUDebugMenuEnabled 1[/php]

Вбивать её нужно из-под загруженной системы.