25 April 2013

Мой Boot Camp — куда хочу, туда и ставлю

Development for MacOS
Исторически сложилось, что на моем MacBookPro Mid 2010 одновременно стояли три оси: Mountain Lion (10.8.3), Lion (10.7) и Snow Leopard (10.6). Все было бы хорошо, если для MacOS существовали бы 3ds Max и утилитка для создания всевозможных текстур The Compressonator, а старый верный ноутбук Toshiba, который спасал меня в такие ситуации, не ушел на пенсию по состоянию материнской платы. Нужно было создавать раздел Boot Camp, да так, чтобы не полетели остальные системы.


Образ Windows под VMWare у меня был, но почему-то в MacOS 10.8 он катастрофически тормозит (по сравнению с тем же 10.7 или 10.6). В итоге я решил что 10.6 мне уже вряд ли пригодится, а на его место как раз встанет раздел Boot Camp с Windows. Но корявая маковсякая Дисковая утилита так не думала.

Изменение разделов


Раздел с Snow Leopard я полностью отчистил, но при попытке удалить его, дисковая утилита выдавала мне ошибку из серии «Слишком маленький размер изменений...». Плюс раздел был всего 30Gb, а мне нужно было хотя бы 50Gb. Не беда, открываем терминал и смотрим где у нас какие диски:
diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Mountain Lion           249.9 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS Mac OS Lion             220.0 GB   disk0s4
   5:                  Apple_HFS Snow Leopard            30.0 GB    disk0s5

Далее я объединил Mac OS Lion и Snow Leopard одной командой:
diskutil mergePartitions "Journaled HFS+" "Mac OS Lion" disk0s4 disk0s5
Формат такой: diskutil mergePartitions "<формат раздела>" "<имя нового объединенного раздела>" <первый раздел> <второй раздел>

А потом разбил объединенный раздел на два, уже нужного мне размера:
diskutil resizeVolume disk0s4 200G MS-DOS Windows 50G
Формат команды: diskutil resizeVolume <ID раздела> <размер после изменения> <формат второго раздела> <имя второго раздела> <размер второго раздела>

Разбиение разделов завершено:
diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Mountain Lion           249.9 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS Mac OS Lion             200.0 GB   disk0s4
   5:       Microsoft Basic Data Windows                 50.0 GB    disk0s5

Таблицы разделов GPT и MBR


Признаться честно, я не уверен, что то, что я делал дальше с таблицами разделов, было необходимо. Буду рад увидеть поправки в комментариях.
Update: Оказалось, что синхронизировать GPT и MBR обязательно. Если у Вас в GPT 4е или меньше разделов, то можно одним кликом это сделать через rEFIt Tools прямо на экране загрузки. Если раздел с виндой 5й или больше, то надо прописывать MBR вручную игнорируя Recovery разделы (Mac OS X Boot), чтобы влезли обязательный EFI System, реальные Мак разделы и раздел с Windows.
Итак, скачав замечательную утилиту rEFIt и запустив Partition Inspector, который идет в комплекте, я увидел такую картину:
Current GPT partition table:
 #      Start LBA      End LBA  Type
 1             40       409639  EFI System (FAT)
 2         409640    488428743  Mac OS X HFS+
 3      488690888    489960431  Mac OS X Boot
 4      489960432    880585431  Mac OS X HFS+
 5      880848896    976773119  Basic Data

Current MBR partition table:
 # A    Start LBA      End LBA  Type
 1              1           976773119  ee  EFI Protective

Как видим MBR не в курсе наших дисков, это я исправил следующими командами:
sudo fdisk -e /dev/disk0
edit 1 //изменить первую запись, она ВСЕГДА должна занимать место с 1 по 39
ee //это формат раздела, для EFI Protective это "ee"
n //жмем n
1 //начало раздела
39 //размер раздела

edit 2
af 
n
409640 
488019104

edit 3
af 
n
489960432 
390625000

edit 7
07
n
880848896 
95924224

write //чтобы записать все изменения
y //готово

После всех манипуляций проверяем через Partition Inspector соответствие таблиц:
Current GPT partition table:
 #      Start LBA      End LBA  Type
 1             40       409639  EFI System (FAT)
 2         409640    488428743  Mac OS X HFS+
 3      488690888    489960431  Mac OS X Boot
 4      489960432    880585431  Mac OS X HFS+
 5      880848896    976773119  Basic Data

Current MBR partition table:
 # A    Start LBA      End LBA  Type
 1              1           39  ee  EFI Protective
 2         409640    488428743  af  Mac OS X HFS+
 3      489960432    880585431  af  Mac OS X HFS+
 4 *    880848896    976773119  07  NTFS/HPFS

Выглядит почти одинаково. Раздел Mac OS X Boot (это Recovery) нам не нужен в MBR, только реальные диски. Подробности этой техники можно нужно почитать тут. Обратите внимание, что размер раздела считается как end-start+1.

Установка Windows


К этому моменту у вас должен быть загрузочный DVD с инсталляцией Windows. Сперва я пытался проинсталлить с загрузочной флешки, созданной в Windows 7, но мне постоянно выдавало «No bootable device — insert boot disk and press any key...». С DVD диском все прошло без проблем. При выборе раздела я выбрал мой FAT32 раздел и переформатировал его в NTFS. Винда проинсталлилась успешно.

Установка драйверов Boot Camp


Утилита «Ассистент Boot Camp» сперва мне даже не предлагала скачать драйвера на флешку. Даже после внесения изменений в plist (MacBookPro Mid 2010 видите ли не поддерживается по дефолту), загрузка драйверов дальше половины не шла. Не беда, от сюда качайте подходящий вашему маку pkg, инсталлите его куда-угодно, идете в папку куда проинсталлили, там находите WindowsSupport.dmg, маунтите этот dmg образ и копируете содержимое образа на флешку или прямо на раздел Windows (ведь в MacOS 10.8 созданный раздел с виндой виден и доступен на запись). Далее грузитесь под виндой и запускайте инсталляцию драйверов.

Наводим красоту


Понравилась картинка загрузки мака в начале статьи? Скачайте замечательную штуку rEFIt и набор иконок, сделанный по мотивам найденных в интернете шаблонов. После установки rEFIt, может понадобиться пару раз перезагрузить мак, у меня почему-то только на 2й раз все заработало. Так же можно его подтолкнуть командами:
cd /efi/refit
./enable.sh

Чтобы установить набор иконок, разархивируйте набор в папку /efi/refit с заменой. Так же можете настроить rEFIt поковыряв файл refit.conf, например, установить таймер запуска дефолтной оси или добавить вызов терминала на экран загрузки.

Disclaimer

Все что вы делаете, особенно с разделами и таблицами разделов — вы делаете на свой страх и риск. Мне было страшно, но я делал! В результате я научился менять размер дисков как захочу, не бояться названий GPT и MBR, имею красивую и удобную загрузку мака и, что самое главное, могу спокойно отправляться в путешествие на майские праздники, взяв с собой только один ноут со всем необходимым. Удачных наступающих праздников!

Update

  1. Настоятельно рекомендую перед началом всех процедур сохранить инфо о таблицах разделов, которое выдает Partition Inspector т.к. винда может затереть все таблицы или самому можно что-то «задеть локтем» случайно (лучше всего не на тот же комп, чтобы, если что, можно было загрузиться с диска и вручную все восстановить).
  2. Поставьте rEFIt перед установкой Windows.
  3. Не удаляйте раздел “EFI Protective” из MBR. Согласно информации на странице rEFIt, этот раздел сообщает GRUB, что не надо перезаписывать таблицу GPT. Так же сообщается, что “EFI Protective” должна начинаться с LBA 1.

Tags:mac os xboot camprefit
Hubs: Development for MacOS
+11
46.2k 115
Comments 24
Popular right now
SEO-специалист
December 7, 202064,900 ₽Нетология
UX-дизайнер
December 7, 202047,940 ₽Нетология
Python для работы с данными
December 7, 202031,500 ₽Нетология
iOS-разработчик с нуля
December 7, 202070,740 ₽Нетология