Эта история о том, как простая переустановка затянулась на несколько дней.
И как я пытался подружить EFI и Legacy в MacBook Pro.
Предыстория
В 2018 году я себе приобрел в личное пользование MacBook Pro 15 дюймов, конца 2011 года. Можно уже сказать что он старый, да только на замену прошлого Lenovo он был просто как атомный реактор.
Очень удачно попался с нестандартной комплектацией, а 1680х1050 экраном и увеличенной графикой. И кажется что всё хорошо, можно пользоваться и будет тебе счастье, только для работы одной Mac OS будет мало и через некоторое время я стал ставить на его Windows. И тут я встретил большие проблемы.
Поиск проблем
Большинство информации в интернете рекомендуют ставить через bootcamp, что я и решил сделать как советуют. Только вот мой bootcamp не мог поставить windows. Из предложенного он мог только скачать пакет драйверов и создатьудалить раздел для новой ОС. На этом его функционал закончился. Поиск предлагает переписать несколько строк кода — безрезультатно.
Отложив это дело не надолго я стал искать по ноутбуку информацию. Банально это сверить серийный номер с сайтом и посмотреть что за он. Только официальный сайт ничего полезного не рассказывает. Позже я стал проверять по версии EFI(BootRom) и SMC. И тут я был очень удивлен!
Если версия EFI иногда обновляется с приходом новых обновлений из AppStore, то SMC не обновляется вообще. Конечно, на официальном сайте есть раздел и можно скачать новую версию, что кажется вполне логичным. Только вся проблема в том, что у каждого ноутбука своя версия SMC и всё, она не может меняться(только в самых крайних случаях). В интернете набрел на сайт где рассказывают по модельно в каком ноутбуке должна зашита «эта» версия SMC. Как оказалось, у меня версия от 13 дюймового 1.69f4. В конце концов я пытался понизить версию SMC, а результатов не было. Система говорила что обновилась, а изменений нет.
После всех поисков я терял надежды и решил просто поставить с флешки. И тут разочарование! Система мою звуковую карту видит в системных устройствах, а при попытке установить AMD графику я получаю код ошибки 32. И после установки Intel HD Graphichs я получаю чёрный экран. Пробовал разные сборки, везде один и тот-же результат. В конце концов решение было найдено довольно банально, придя к отцу, взяв его MacBook Pro mid 2012 и поставив в его свой SSD, я поставил Windows и всё было хорошо, я имел одну AMD графику и рабочий звук с остальной периферией. Только я знал что это не вечно и может случиться так что второго ноутбука не будет а переустановить надо. И вот тогда я столкнулся с этим снова.
Таблетка от всех болезней
Практически 95% ресурсов требуют установку через BootCamp, мне эта идея не нравилась, всегда было приятно ручками вручную всё делать. Из прошлой работы Windows я узнал что она работает в режиме Legacy. Я был очень удивлен и не понял как так может быть, если у меня всё работает в системах EFI. По этому в интернете набрел на информацию по конвертации диска из обычного в «гибридный». Тем самым я могу использовать его как GPT и MBR одновременно.
Первым делом мне нужно узнать разметку своего диска.
Я получаю ответ:
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 204799960 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
205209600 294907904 3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
500117504 655
500118159 32 Sec GPT table
500118191 1 Sec GPT header
sudo fdisk /dev/disk0
Disk: /dev/disk0 geometry: 31130/255/63 [500118192 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*1: EE 0 0 2 - 1023 254 63 [ 0 - 500118191] <Unknown ID>
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
mbp-mansi:~ mansi$
Далее, я начинаю редактировать структуру, согласно информации о разделах:
sudo fdisk -e /dev/disk0
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> edit 1
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 0 0 2 - 1023 254 63 [ 1 - 409639] <Unknown ID>
Partition id ('0' to disable) [0 - FF]: [EE] (? for help) EE
Do you wish to edit in CHS mode? [n] N
Partition offset [0 - 500118192]: [63] 1
Partition size [1 - 500118191]: [500118191] 409639
fdisk:*1> edit 2
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
2: AF 1023 254 63 - 1023 254 63 [ 409640 - 204799960] HFS+
Partition id ('0' to disable) [0 - FF]: [AF] (? for help) AF
Do you wish to edit in CHS mode? [n] N
Partition offset [0 - 500118192]: [409640] 409640
Partition size [1 - 499708552]: [499708552] 204799960
fdisk:*1> edit 3
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*3: 0C 1023 254 63 - 1023 254 63 [ 205209600 - 294907904] Win95 FAT32L
Partition id ('0' to disable) [0 - FF]: [C] (? for help) 0C
Do you wish to edit in CHS mode? [n] N
Partition offset [0 - 500118192]: [205209600] 205209600
Partition size [1 - 294908592]: [294908592] 294907904
fdisk:*1>
После чего выставляем флаг на третий раздел командой flag 3, и закрываем утилиту, командой exit или q. И проверяем что у нас получилось.
sudo fdisk /dev/disk0
Disk: /dev/disk0 geometry: 31130/255/63 [500118192 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 0 0 2 - 1023 254 63 [ 1 - 409639] <Unknown ID>
2: AF 1023 254 63 - 1023 254 63 [ 409640 - 204799960] HFS+
*3: 0C 1023 254 63 - 1023 254 63 [ 205209600 - 294907904] Win95 FAT32L
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
И что бы убедиться у нас всё получилось на 100%, можно скачать дополнительный пакет gdisk и запустить его с такой командой
sudo gdisk /dev/disk0
GPT fdisk (gdisk) version 1.0.4
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):
И если всё сделали верно, раздел с MBR стал гибридным.
EFI shell legacy mode?
Самое интересное теперь в установке Windows. Она у нас не пойдет как обычно, система попросту не даст установиться. Это и логично, мы ведь загружаем установку в режиме EFI и требуем работу с GPT разметкой а система не ставит в данном режиме на MBR.
WinNTSetup отлично помогла установить операционную систему. После выбора языка, вызываем консоль сочетанием клавиш Shift + F10 и переходим в каталог с программой, которую предварительно скопировали на флешку. А тут всё просто, запускаем её, указываем файл с установкой, куда хотим ставить и жмём старт. После чего идёт распаковка файлов, запись загрузчика и всё, система почти установлена.
После успешной установки закрываем программу, выходим из установки и перезагружаем ноутбук и выбираем новый раздел с Windows и ждём чудо. Система может перезагрузиться несколько раз, что вполне нормально и после нескольких минут ожидания мы получаем рабочую версию Windows c одной графикой и работающим звуком.
Заключение
После подобных манипуляций и информации в интернете, работа приложения BootCamp становится всё понятнее и понятнее. Она делает данные операции автоматически, мы всё правили вручную. А теперь, после такой информации уже не страшно переустанавливать всё и замена ssd на больше с установкой всех ОС займет на много меньше времени.
Полезные ссылки:
BootCamp — support.apple.com/en-us/HT201468
gdiskfdisk — www.rodsbooks.com/gdisk
Конвертация GPT в гибридный — apple.stackexchange.com/questions/308824/how-to-convert-a-drive-from-the-gpt-format-to-the-hybrid-gpt-mbr-format-when-usi?rq=1
WinNTSetup — wntsetup.ru
Автор: Артур