Snow Leopard est sorti, Apple se targue d’avoir un système pleinement 64-bit (enfin..) et pourtant, seulement quelques machines peuvent booter avec un kernel 64-bit, les machines ‘pro’.
Pour les personnes ayant une machine 64-bit et un EFI 64, il peut être frustrant de ne pas profiter d’un Kernel 64-bit, ce qui est mon cas.
Il est néamoins possible d’outrepasser cette limite, ça relève un peu de la bidouille donc ne vous lancez pas tête baissée dedans, d’autant que pour l’utilisateur lambda il n’y a que peu d’intérêt.
Comment Apple a fait pour prévenir d’un boot en 64 ?
Il y a juste une valeur hard-codée dans le fichier boot.efi qui empêche le boot en 64 selon le modèle de votre machine.
Il va donc falloir modifier ce fichier pour permettre le boot en 64-bit, notez que je ne fais pas de SAV en cas de problème.
Bon on va y aller pas à pas, de quoi avez vous besoin :
- Un proc 64-bit toute la famille des c2d.
- Un EFI 64, pour vérifier si votre EFI l’est, voir ci-dessous.
1 | ioreg -l -p IODeviceTree | grep firmware-abi |
- Etre admin de la machine.
- Un editeur hexadecimal (HexEdit par exemple)
- 2 ordis, ce n’est pas ogligatoire, mais en cas de problème si votre machine ne boot plus c’est mieux.
Première étape, on modifie le fichier de préférences com.apple.Boot.plist en ajoutant le flag arch=x86_64
1 | sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist |
1 2 3 4 5 6 | <dict> <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> </dict> |
Ensuite on fait une copie du fichier boot.efi et on la renomme en boot-64.efi.
1 | cp /System/Library/CoreServices/boot.efi ~/boot-64.efi |
Voici le tableau contenant les valeurs qui nous intéressent (Source)
| Model (with 64-bit EFI) | Byte Position in boot.efi | Old value | New value |
| Mac Mini | 0x266D8 | 0×00 | 0×04 |
| MacBook | 0x266E8 | 0×00 | 0×04 |
| MackBook Air | 0x266F8 | 0×00 | 0×04 |
| iMac | 0×26718 | 0×08 | 0x0C |
Ouvrez boot-64.efi avec l’editeur hexadecimal et changez la ligne correspondant à votre machine.
Pour ma part, étant sur un MacBook voici la ligne que j’édite :
0x266E0: 38 47 01 00 00 00 00 00 04 00 00 00 00 00 00 00
Enregistrez et copiez le fichier boot-64.efi dans CoreServices.
1 | sudo cp boot-64.efi /System/Library/CoreServices/ |
Dernière étape, changer les informations de boot, pour cela on utilise la commande bless, après avoir changé les droits et les flags du fichier.
1 2 3 4 | [Nyx0uf@Nyxoufs-MacBook ~]$ cd /System/Library/CoreServices/ [Nyx0uf@Nyxoufs-MacBook /System/Library/CoreServices]$ sudo chown root:wheel boot-64.efi [Nyx0uf@Nyxoufs-MacBook /System/Library/CoreServices]$ sudo chflags uchg boot-64.efi [Nyx0uf@Nyxoufs-MacBook /System/Library/CoreServices]$ sudo bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot-64.efi |
On reboot, si tout c’est bien passé, vous devriez être en 64-bit, vous pouvez le vérifier à l’aide de la commande uname -a ou dans les informations système.
Si votre machine ne boot plus, j’ai envie de dire owned… Plus sérieusement ré-utilisez la commande bless afin de rétablir le boot original, c’est là que le deuxième ordinateur devient utile.
1 | sudo bless --folder /Volumes/MAC_QUI_BOOT_PLUS/System/Library/CoreServices --file /Volumes/MAC_QUI_BOOT_PLUS/System/Library/CoreServices/boot.efi |

imonamac
septembre 4th, 2009 à 20:01
Et ca redemarre a chaque fois en 64 bit systematiquement sans refaire la manip ? Pourquoi ne pas faire juste 6 et 4 pendant le demarrage ?
Nyx0uf
septembre 4th, 2009 à 22:18
Oui ça démarrera toujours en 64 tant que les infos de boot ne seront pas rechangées.
La combinaison 6+4, oui, mais il faut toujours changer le fichier boot.efi sinon tu booteras pas en 64-bit sur une machine non pro
superparati
septembre 17th, 2009 à 20:31
Bonsoir
J’utilise un MacBook Pro de 2009, dois-je utiliser la valeur prévu pour le MacBook ? ou une autre (le tableau ne fait pas mention des valeurs à modifier pour les MBP et pour les MacPro)
Cordialement
superparati
septembre 17th, 2009 à 20:37
je n’ai pas fait attention à la mention machine non « Pro ».
Cependant, dans les informations système, le noyau et extensions ne sont pas en 64bits.
Nyx0uf
septembre 17th, 2009 à 20:40
Bha une machine Pro t’as juste à modifier le fichier /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Ou appuyer sur les touches 6+4 lors du boot (moins pratique sur un portable^^)
superparati
septembre 23rd, 2009 à 17:43
Pour information, le logiciel Vmware fusion de fonctionne par sur les Mac dont le kernel est en 64 bits.
Wozniak
novembre 5th, 2009 à 21:16
Ca marche sur un Mac Pro avec un efi 32 bit ? (Mac Pro 1,1)
Nyx0uf
novembre 5th, 2009 à 21:46
Avec un EFI 32 non je ne crois pas, enfin cette manipe ne suffira pas tout du moins :/
superparati
décembre 2nd, 2009 à 00:58
je reviens vers ta bidouille, depuis quelques temps j’essaye avec peu d’espoir de remettre le kernel en 64bits. Je modifie le fichier en mode root (su).
Qu’il y ai les lignes arch=x86_64 ne change rien, le kenel tournera toujours en 32bits.
Une idée ? (je vais réparer les autorisations.)
Merci
Nyx0uf
décembre 2nd, 2009 à 10:04
Envoie moi ta config par mail.