воскресенье, 15 июня 2014 г.

MAC OSX + BOOTCAMP и почему это плохо.


Всем, конечно же, известно, что есть такая фича в Mac OS X, как BootCamp, который позволят поставить на Мак Винду. Но вот так уж повелось, что не все понимают, как эта "фича" функционирует, и уж тем более не знают, какие проблемы это может вызвать.



Начнём с того, BootCamp, это не просто красиво завёрнутый инсталлятор винды, который можно и игнорировать, это ещё и технология в загрузчике EFI, которая позволяет эмулировать BIOS для этой самой винды.

Причём, работает он даже в том случае, если вы решили вообще убить макось и поставить винду "с ноля", "вместо" Mac OS. Просто вы этого не замечаете. Вся фишка заключается в том, что Mac OS, как и современные материнские платы ПК, работают не с BIOS, а с EFI (на ПК UEFI). Этот самый EFI представляет собой некое микроядро linux, которое содержит в себе инструкции по взаимодействию с железом.

Отличием от BIOS'а является куда более широкий перечень возможностей. Так, например, в EFI могут быть зашиты драйверы для железа (чем, собственно, и пользуется Apple), из-за чего, например, при запуске системы вы видите не VESA экран 640х480, а вполне полноценное разрешение своего монитора.

MBR и GPT

Но есть и ещё один качественный скачок, который разделяет людей и их ПК на до-EFI и пост-EFI человечество... Это поддержка новой системы разметки дисков GPT, вместо старого, не очень доброго MBR. Не очень доброго потому, что поддержка дискового пространства в нём ограничивается 2Тб, от чего и понадобился GPT. Так, купив новый жёсткий диск ёмкостью 4Тб, на старой материнке вы получите жалкие 2Тб, без возможности как-то повлиять на печальность ситуации.

Но вот беда, до недавнего времени (Windows 7 64bit), ОС от M$ не поддерживали такой тип загрузки и установки. И именно для того, чтобы справиться с этой ситуацией был создан BootCamp. В общем, при установке Windows по умолчанию ваш Мак запускает её в режиме эмуляции BIOS, давая возможность винде чувствовать себя комфортно.

А как же MBR и GPT, спросите вы? Да вот так - BootCamp совмещает ОБЕ системы разметки. Так, на диске есть и MBR разметка и GPT и при загрузке соответствующей системы, вы получаете либо одно либо другое. И вот тут-то и появляются косяки.

В общем, все мы сталкивались с ситуацией с повреждением разметки диска. Это вполне такая обычная ситуация, которую решает CHKDISK в Windows и "дисковая утилита" в MacOS. Так вот, CHKDISK при установке в BootCamp не знает, что на дисках есть что-то кроме разметки MBR и вносит свои изменения. Потом вы грузитесь в MacOS, которая знает, что существует MBR и GPT, но при этом не знает, что вы что-то поменяли в MBR разметке.

Мысль понятна?

В жизни это оборачивается порчей файлов. Небольшое смещение тут же отражается на ваших картинках, и вообще всех форматах файлов, не достаточно защищённых от рассыпания. Я думаю, каждый хоть раз сталкивался с подобным. Однако, в случае с Маками, эта проблема может стать систематической.

Как же решить эту проблему?

Есть несколько решений, которые, различающиеся степенью геморройности и самопожертвования.

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

Так, например, как бы мне ни нравились Mac OS X или Linux, есть CATIAv5, которая есть только под Windows и, соответственно выбор ограничен. И всякие слои совместимости не помогут, т.к. речь идёт о ПО стоимостью в 30+ тыс. убиенных енотов в год и поддержку на нестандартных конфигурациях обеспечивать не возьмётся никто и никогда. А капризность столь сложного ПО зашкаливает и возможная ошибка скорее всего приведёт к падению и потере кучи времени. То есть не допустима.

Есть, также, и вариант аккуратного использования двух систем - после каждой загрузки Mac OS X вам потребуется открыть дисковую утилиту и прогнать проверку диска и проверку раздела bootcamp.

Ну и, наконец, есть третий вариант - установка Windows в режиме EFI. Тогда Windows и MacOS X будут работать в нативном режиме разметки и загрузки и проблемы не будет.

Казалось бы - вот он, великолепный вариант. Казалось. Вариант великолепен только если забыть про один мааааленький фактор - то, что драйверы BootCamp для Windows заточены под эксплуатацию через эмулятор. А, как я уже упоминал, на Mac'ах в EFI зашиты свои дрова, не ориентированные под Windows.

В общем, этот путь хоть и правильный, но потребует от вас наибольшей эквилибристики на всех этапах установки и настройки.

Но об этом в следующий раз.

TO BE CONTINUED... (если востребовано).

3 комментария:

  1. Отличная статья, ждем продолжения. Сам столкнулся с ошибками диска из-за Bootcamp, ищу решение.

    ОтветитьУдалить
    Ответы
    1. Одно из самых простых решений - это установка двух HDD в MAC - когда на одной чисто MBR и Windows, а на другой - GPT и MACOS. Это решение оптимально для систем, на которых старый EFI, без поддержки нормальных дров. На новых маках (начиная с 2013-14 года выпуска) лучше всего просто ставить в EFI режиме Windows. Там практически нет косяков. В моём случае с iMac late 2011 этого сделать было нельзя, ибо фатально не работал звук, вебкамера, управление яркостью монитора и т.д. Ничего с этим сделать было невозможно - перепробовал всё, даже списывался с разработчиками чипа cirus. А в новых используется UEFI-совместимый EFI, что практически проблем не вызывает.

      Удалить
  2. А можно попросить выложить уже пропатченную папочку UEFI ?

    ОтветитьУдалить