donderdag 15 maart 2012

MacBook triple boot met OS X, rEFIt, Windows 7 en Ubuntu 11.10 Linux

Na vier pogingen is het eindeljik gelukt: een werkende triple-boot met OS X 10.7, Windows 7 en ubuntu 11.10 Linux op een MacBook model 2009 alu unibody.
Werkelijk heel veel artikelen zijn er al op het internet hierover geschreven, en ik volgde een aantal trouw (bjivoorbeeld deze) , maar eerst zonder resultaat. Mijn werkwijze:
  • Mac OS X installeren 
  • dan rEFIt installeren 
  • met Apples schijfhulpprogramma (diskutility) 4 partities gemaakt in deze volgorde : 
  1. Mac OS X, 
  2. Windows 7, 
  3. Linux swap, 
  4. Linux root. 
  • Windows 7 installeren : succesvol 
  • Linux installeren ... 
en op dit punt stuitte ik op een probleem. rEFIt klaagt dat de GPT en MBR partitietabellen niet in sync waren. rEFIt geeft op de Partitioning Tool pagina de volgende foutmelding:
Status: Analysis inconclusive, wil not touch this disk. 

 

en weigert nog langer om Windows of Linux te starten. Als ik start in OS X dan zijn de partites
Als ik een goed rond-google, dan ben ik niet de enige met deze foutmelding. Hele volksstammen kregen voor mij dezelfde foutmelding. Een werkende fix kon ik (nog) niet vinden. De tip om een gptsync.deb te downloaden in Linux is precies hetzelfde als wat rEFIt in het bootmenu aanbiedt onder "Partitioning Tool", maar die niet werkt.

Plan B

Ik lees ergens dat het beter is om Windows op de laatste partitie te zetten, maar dat is waarschijnlijk een vereiste voor Windows XP. Ik heb Windows 7 eerder wel met succes op partitie 2 gebruikt. De indeling die ik wil maken is als volgt.

  • EFI partitie op 1,
  • MAC op 2,
  • Linux op 3 en
  • Windows op 4.

Mijn idee is om 3 OS-partities te maken. Dan zijn er inclusief met de verplichte EFI-partitie maximaal 4 partities en dat precies wat de hybrid MBR kan bevatten. Volgens mijn informatie kan de hybrid MBR alleen 4 primaire partities bevatten en geen extended partities. Er is geen swappartitie voor Linux. De geemuleerde MBR-partitietabel kan hiermee goed gesynchroniseerd worden. Dat is althans het plan. . . maar weer meldt gptsync : Status: Analysis inconclusive, will not touch this disk.

Ik had met Schijfhulpprogramma (diskutility) onder Mac OSX ruimte gereserveerd voor sda3 (linux) en sda4 (windows). Beide had ik geformatteerd op FAT. Windows installatie volgde op sda4, maar Windows had zijn bootloader op sda3 gezet! Dus formatteer sda3 niet in FAT, maar op HFS+. Dat houdt hem onzichtbaar tijdens Windowsinstallatie.

Na 3 herinstallaties van OS X, Windows en Linux lees ik interessante informatie op de pagina van Rod Smith over Hybrid MBRs welke mij eindelijk hoop geeft op herstel. Het hele schema van Apple om de GUID Partition Table (GPT)-schijf uit te rusten met een spiegel-MBR partitietabel om niet GPT-bewuste besturingssytemen om de tuin te leiden stuurt alles in het honderd. Na de Linux installatie is de MBR aangepast en is een BIOS-partitie toegevoegd, zijn de MBR partitietabel en de GPT verschillend en zowel Apple schijfhulpprogramma als rEFIt zijn totaal de weg kwijt, waardoor Windows en Linux niet meer willen starten.

Op aanwijzing hiervan heb ik de MacBook gestart vanaf een Ubuntu 11.10 liveCD. Ik heb vervolgens GPT fdisk van dezelfde auteur gedownload en geinstalleerd:
dpkg --install gptfdisk-*.deb
Nadat ik alles over Hybrid MBRs heb gelezen en nu ik alles weet van protective MBRs en hybrid MBRs , kan ik pogen de boel te herstellen.
gdisk /dev/sda
Via het recoverymenu via "r"  maak ik een hybrid MBR aan. In de hybrid MBR neem ik behalve de protective  MBR ook op partities 2 3 4 , dus OSX partitie, Linux en Windows. Het WERKT!

Als laatste punt vergeet niet nog even in Linux de swapfile aan te maken. We maken een swapfile en geen swappartitie omdat er geen ruimte meer is voor een extra partitie. Er zijn er al 4 in gebruik en in de schaduw-MBR kunnen er maar 4 en de GPT ondersteunt geen logische partities. We gaan ervan uit dat de laptop zoveel werkgeheugen heeft dat swappen niet nodig is, volstaat een wisselbestand of swapfile. Die maak ik in de map /mnt en ik neem het swapfile in gebruik met de volgende commando's:
dd if=/dev/zero of=/mnt/3GB.swap bs=1M count=3072
mkswap /mnt/3GB.swap
swapon /mnt/3GB.swap
De swapfile is nu in gebruik. Om dit na de volgende herstart ook te gebruiken moet in /etc/fstab een regel worden toegevoegd (bijvoorbeeld met nano) als vtolgt.
/mnt/3GB.swap   none    swap    sw      0       0
 Dat was alles.


1 opmerking:

  1. Omdat rEFIt niet meer onder aktieve ontwikkeling is, wordt op de website van rEFIt aangeraden om te kijken naar rEFInd. Dit is een fork van rEFIt en wordt wel aktief ontwikkeld. Zie de website http://www.rodsbooks.com/refind .

    BeantwoordenVerwijderen