mercredi 22 octobre 2008

triple, quadruple, ... boot sur un macbook pro

Bon, c'est encore le bazar. Le Mac utilise un machin au boot qui s'appelle EFI avec un système de partition appelé GPT. Tout ceci est incompatible avec le bon vieux bios des pc et sa table de partition MBR. Il y a heureusement des solutions mais rien de ce que j'ai trouvé ne supporte les partitions étendues/volumes logiques donc on est limité dans le nombre de partitions.

EFI: un bios évolué et moderne
en cours de rédaction.
cf http://en.wikipedia.org/wiki/Extensible_Firmware_Interface
En résumé, EFI est un replaçant moderne pour le bios des pc initialement proposé par Intel.
Apple utilise EFI sur ses Mac Intel.

Les partitions du Mac

Sur un mac intel, le partitionnement suit un standard nommé GPT (Guid partition table) pour tout ce qui est partitionnement du disque. GPT a l'avantage d'enterrer tout un tas de limitations des partitions usuelles des PC (taille maxi de disque, nombre de partitions, ...).

Problème: si on démarre sur un système qui ne connait pas la table de partition GPT, il risque de sacager le disque. C'est la raison pour laquelle le standard GPT prévoit une table de partition MBR compatible avec les tables de partition des pc.

Cette table MBT vient en plus de la table de partition GPT. Les outils de partitionnement Apple créent (et recréent à chaque utilisation), une table de partition MBR contenant une partition couvrant tout le disque. Cette table est une table de protection qui assure que les programmes qui ne connaissent que MBR et pas GPT ne sacageront pas le disque.

Si l'on souhaite utiliser un système d'exploitation (OS) ne gérant que les tables MBR, il faut alors que la table MBR reflète la partie du disque qu'utilisera/verra cet OS.

Des systèmes d'exploitation gérant les partitions GPT peuvent être installés plus loin.

Exemple de mon configuration triple boot:
  1. partition EFI (inutile sur mon mac mais pourra le devenir l'avenir. Il est prudent de la laisser)
  2. partition Mac OS
  3. partition windows vistapartition d'échange entre les 3 OS (FAT 32 pour l'instant)partition linuxpartition de swap
  4. La partition MBR reflète les 4 premières partition. De ce que j'ai compris, le système GPT/MBR n'est pas compatible avec les partitions MBR étendues.

Pour en arriver là, j'ai procédé de la façon suivante :
  1. réduire la taille de la partition Mac OS soit via l'utilitaire de disque (graphique) de Mac OS, soit via la commande diskutil en ligne de commande (ex.: sudo diskutil resizeVolume /dev/disk0s2 50G)
  2. installer refit sous Mac OS. refit est un gestionnaire de boot qui fournit un outil de synchronisation de table GPT/MBR au boot. voir http://refit.sourceforge.net/. Pour avoir refit tout le temps au boot, j'ai fait : sudo /efi/refit/enable-always.sh dans un terminal sous Mac OS.
  3. créer les partitions avec l'outil de votre choix (gestionnaire de disque Mac OS, gpared sur le CD bootable ubuntu)
  4. arrêter la machineau reboot,
  5. passer sous refit (touche At au boot)
  6. lancer le gestionnaire de partition (ràf: nom à vérifier) et lui dire de synchroniser les tables MBR et GPT

Il suffit ensuite de booter sur les CD d'installation des systèmes d'exploitation pour les installer.
J'ai eu un soucis avec vista qui ne voulait pas reconnaitre la partition que je lui avais préparé. Solution adoptée: effacer la partition avec vista, la recréer, rebooter, faire un coup de synchronisation de partition GPT/MBR avec refit, relancer l'installation de vista.
Pour ubuntu, installer grub sur la partition MacOS (/dev/sda2 ou /dev/hda2) mais surtout pas en tête de disque. Attention: l'emplacement d'installation par défaut de grub est mauvais. Il faut cliquer sur "Avancé" lors de la dernière phase de l'installation pour choisir l'emplacement d'installation de grub.

Pour y voir clair dans tout ça, je conseille fortement la lecture de la section "myths & Facts" de la doc de eEFIt: http://refit.sourceforge.net/myths/


Sources :