Cet article détaille l’installation d’une Debian Wheezy sur un Mac Mini en OS X 10.8. Pour pouvoir démarrer un OS non Apple, il faut installer un boot manager non bridé tel que refind (celui d’Apple ne présente que les partitions Apple). Concernant Linux, l’installation de GRUB EFI est obligatoire, ce qui nécessite en plus la copie d’un fichier sur la partition EFI (partition 1) du disque dur. Ces deux points étant effectués, un système Linux peut être installé et lancé sur un poste Mac.

Vérification du firmware EFI

Je n’ai pas eu de problème avec mon poste mais il est bon de savoir quel type de firmware EFI vous possèdez : 32 ou 64 bits. Pour ce faire, la commande à utiliser est la suivante :

$ ioreg -l -p IODeviceTree|grep firmware
| |   "firmware-revision" = <0a000100>
| |   "firmware-abi" = <"EFI64">
| |   "firmware-vendor" = <4100700070006c0065000000>

Redimensionnement de la partition Mac OS X

La partition de Mac OS X doit être redimensionnée avant de pouvoir installer un nouveau sytème. Le redimensionnent s’effectue à chaud avec l’utilitaire de disque. Ne touchez pas au schéma de partitionnement sous risque de perte de données !

Pour information, voici mon partitionnement final.

Utilitaire disque : partition Mac redimensionnée

Installation de refind

Le boot manager est disponible ici : http://www.rodsbooks.com/refind/.

Toute l’installation est automatisée et aucune configuration n’est nécessaire :

# ./install.sh
Installing rEFInd on Linux....
ESP was found at /boot/efi using vfat
Copied rEFInd binary file refind_x64.efi

Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.

Installation has completed successfully.

On peut ensuite passer au partitionnement du disque dur.

Création des partitions GPT pour Linux

Le partitionnement est effectué avec gptfdisk : http://sourceforge.net/projects/gptfdisk/

On initialise au préalable la table MBR. Aucune partition MBR n’est à ajouter :

$ sudo gdisk /dev/disk0
> x
> n
> o

Disk size is 625142448 sectors (298.1 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
1                     1    625142447   primary     0xEE

> w

Le partitionnement GPT peut débuter : je crée ici une partition pour /boot et une partition LVM (si vous ne souhaitez pas de LVM, créez autant de partitions nécessaires). Attention, il faut laisser un espace libre de 128 Mo entre la partition Mac et la partition Linux /boot. Ceci est obligatoire sous peine de planter votre système OS X lors d’une mise à jour.

$ sudo gdisk /dev/disk0
> p
> n (first sector: +128M, size: +256M, type 8300)
> n (all remaining, type 8E00)
> p

Number  Start (sector)    End (sector)  Size       Code  Name
1              40          409639   200.0 MiB   EF00  EFI system partition
2          409640       314726519   149.9 GiB   AF00  Customer
3       314988664       315512951   256.0 MiB   8300  Linux filesystem
4       315512952       625142414   147.6 GiB   8E00  Linux filesystem

> w

Le partitionnement EFI étant terminée, l’installation Linux peut débuter

Installation de Wheezy

L’installation Debian est faite à partir du CD en mode expert (touche C au boot).

A l’étape de partitionnement, il faut utiliser la partition 4 pour /boot et la partition 5 pour LVM. Je crée ensuite un VG de 3 LV : swap, / et /home. Pour la sélection des packages, j’ai pour habitude faire une clean install donc seule l’installation du serveur SSH est activée. L’étape cruciale est au niveau du bootloader : il ne faut pas l’installer car il s’agit de GRUB pour système MBR.

L’installation étant finalisée, il reste à installer GRUB pour EFI.

Installation de GRUB EFI

On redémarre à nouveau sur le CD Debian mais en mode rescue.

On lance un chroot sur la partition racine du système Linux (partition 5), puis les commandes suivantes dans le shell :

# mount /dev/sda4 /boot
# mkdir /boot/efi
# mkdir /dev/sda1 /boot/efi
# apt-get install grub-efi
# grub-install /dev/sda4
# ls /boot/efi/EFI/
APPLE  debian
# update-grub

La partition /boot est montée, puis la partition EFI dans /boot/efi. Le package GRUB est installé.  J’installe ensuite GRUB sur la partition /boot (/dev/sda4). Le bootloader de GRUB est alors copié sur la partition EFI afin qu’il puisse lancer son stage2 présent sur /boot et au final Linux. Je finalise en mettant à jour le menu GRUB.

Le système Linux est maintenant démarrable. En cas de non démarrage du système par GRUB, les commandes précédentes sont à effectuer de nouveau à partir d’un boot en mode rescue, en chrootant sur la partition racine.

Sous Linux, les packages suivants seront nécessaires pour la prise en charge du matériel :

# apt-get install cpufrequtils firmware-b43-installer