Не могу загрузиться в режиме восстановления OS X

Я хотел бы, чтобы я недавно установил Debian Linux на свой Macbook, что потребовало переразметки жесткого диска.

Теперь я не могу загрузиться в режиме восстановления. Удерживание Command + R при загрузке вызывает режим восстановления Интернета. Удержание Option при загрузке вызывает диспетчер запуска, в котором указан Recovery HD, но если я выберу его, загрузится обычная OS X.

Я использую Retina MacBook Pro начала 2015 г. 13 дюймов на OS X 10.11.4.

$ sudo gpt -r show /dev/disk0
gpt show: /dev/disk0: Suspicious MBR at sector 0
    start       size  index  contents
        0          1         MBR
        1          1         Pri GPT header
        2         32         Pri GPT table
       34          6         
       40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
   409640  843043264      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
843452904    1269536      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
844722440  123046872      4  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
967769312     262144         
968031456    8811424      5  GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
976842880     262147         
977105027         32         Sec GPT table
977105059          1         Sec GPT header

$ sudo fdisk /dev/disk0
Disk: /dev/disk0    geometry: 60821/255/63 [977105060 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE    0   0   1 - 1023 254  63 [         1 -     409639] <Unknown ID>
*2: AF 1023 254  63 - 1023 254  63 [    409640 -  843043264] HFS+        
 3: AF 1023 254  63 - 1023 254  63 [ 843452904 -    1269536] HFS+        
 4: 83 1023 254  63 - 1023 254  63 [ 844722440 -  123046872] Linux files*

 $ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            431.6 GB   disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3
   4:           Linux Filesystem                         63.0 GB    disk0s4
   5:                 Linux Swap                         4.5 GB     disk0s5

$ diskutil cs list
No CoreStorage logical volume groups found
Не могли бы вы ввести следующие команды в окне приложения терминала и опубликовать результаты на свой вопрос. Команды не изменят ваш компьютер и могут потребовать ваш пароль для входа. Команды sudo gpt -r show /dev/disk0, fdisk /dev/disk0, diskutil listи diskutuil cs list. Вы можете просто вырезать и вставить результаты в свой вопрос. Кто-то очистит вывод. Также добавьте модель/год вашего Mac и версию OS X, которую вы используете.
@DavidAnderson конечно! Добавлено к моему вопросу.

Ответы (1)

Из опубликованных вами результатов я вижу, что GUID для раздела восстановления неверен. Это раздел номер 3 в таблицах. Правильное значение в GPT будет 426F6F74-0000-11AA-AA11-00306543ECAC. Команда fdiskтакже показывает неправильное значение в таблице MBR. Здесь правильное значение должно быть AB. Если вы не можете загрузиться в свой раздел восстановления после восстановления этих таблиц, я бы предположил, что содержимое раздела повреждено.

Насколько мне известно, в OS X нет утилиты для такого вида ремонта. (Технически вы можете использовать эту ddкоманду, но ни один здравомыслящий человек не будет пытаться использовать ее ddдля решения этой проблемы.) Я бы рекомендовал скачать и установить gdiskкоманду отсюда . Для установки вам может потребоваться изменить настройки на панели «Безопасность и конфиденциальность» в «Системных настройках».

Чтобы использовать эту gdiskкоманду, вам необходимо отключить защиту целостности системы (SIP). Обычно это можно сделать в режиме восстановления. Поскольку вы не можете загрузиться в режиме восстановления, вы можете использовать продукт под названием «rEFInd». Многие пользователи Linux уже установили этот продукт на свои компьютеры Mac. Если вы этого не сделаете, вы можете создать версию флэш-накопителя USB, которую можно использовать для отключения/включения SIP. Инструкции даны здесь .

Примечание. Поскольку у вас уже установлен Debian Linux, вы можете запустить его gdiskиз этой операционной системы. Поскольку у меня не установлена ​​эта операционная система, я не собираюсь заниматься этим дальше. Вы можете получить дополнительную информацию с этого сайта . Также gdiskможет быть доступно при загрузке с внешнего аварийного диска. Если он доступен в Linux или с аварийного диска, вам не придется отключать SIP.

После gdiskустановки и отключения SIP вам нужно будет внести три изменения. Эти изменения включают изменение как таблицы разделов GUID (GPT), так и таблицы разделов основной загрузочной записи (MBR). Изменения перечислены ниже.

  1. Измените тип GUID для раздела 3 в GPT с 48465300-0000-11AA-AA11-00306543ECAC на 426F6F74-0000-11AA-AA11-00306543ECAC. Примечание: gdiskиспользует значение AB00для представления значения 426F6F74-0000-11AA-AA11-00306543ECAC.
  2. Убедитесь, что атрибут для раздела 3 имеет значение 0002000000000000. В приведенном ниже примере я предполагаю, что текущее значение атрибута равно 0000000000000000. Если нет, внесите соответствующие исправления.
  3. Измените идентификатор раздела 3 в таблице MBR с AFна AB.

В приведенном ниже примере я создаю и монтирую разреженный образ в формате /dev/disk1. Затем я использовал это изображение в качестве входных данных для gdiskкоманды. Это было сделано для имитации условий на вашем компьютере. Вы будете вносить изменения в свой/dev/disk0 .

Steelhead:~ davidanderson$ sudo gdisk /dev/disk1
GPT fdisk (gdisk) version 1.0.1

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): t
Partition number (1-5): 3
Current type is 'Apple HFS/HFS+'
Hex code or GUID (L to show codes, Enter = AF00): ab00
Changed type of partition to 'Recovery HD'

Command (? for help): x

Expert command (? for help): a
Partition number (1-5): 3
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
  No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 49
Have enabled the 'Undefined bit #49' attribute.
Attribute value is 0002000000000000. Set fields are:
49 (Undefined bit #49)

Toggle which attribute field (0-63, 64 or <Enter> to exit): 

Expert command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 2 3 4
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): y

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default AF): af
Set the bootable flag? (Y/N): y

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default AB): ab
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #4 (MBR partition #4)
Enter an MBR hex code (default 83): 83
Set the bootable flag? (Y/N): n

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/disk1.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
Steelhead:~ davidanderson$ 

В этот момент я бы перезагрузил ваш Mac.

Какова цель атрибута «Неопределенный бит № 49»?
@klanomath: я понятия не имею, для чего этот бит. OS X помещает его в GPT при создании раздела восстановления OS X. Впервые я заметил это, когда писал свою утилиту readgpt . Насколько я знаю, ни diskutil, gptни любая другая команда приложения OS X Terminal не имеет возможности изменить атрибут GPT.
Большое спасибо, это помогло. Одно примечание: я внес изменения в Debian /dev/sda, а не из него./dev/disk0