I'm currently traducing the posts in english, my english is not very good, so if you find errors feel free to contact me.
  • Snow Leopard : Forcer le boot en 64-bit

    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

    10 responses to “Snow Leopard : Forcer le boot en 64-bit”


    • imonamac

      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 ?

    • 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

      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

        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.

        • 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

      Pour information, le logiciel Vmware fusion de fonctionne par sur les Mac dont le kernel est en 64 bits.


    • Wozniak

      Ca marche sur un Mac Pro avec un efi 32 bit ? (Mac Pro 1,1)

    • Avec un EFI 32 non je ne crois pas, enfin cette manipe ne suffira pas tout du moins :/


    • superparati

      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

    • Envoie moi ta config par mail.


     Leave a reply




Rss Feed Tweeter button