Chameleon v2 Acte II : partition EFI

( 11 Votes )

Cette méthode est toujours d'actualité et en partie simplifiée par Chameleonv2. Le plus complexe et le moins automatisé consistera à personnaliser le dossier /Extra.

Qu'est-ce qu'une partition EFI ?


La partition EFI n'est présente que si le disque possède une table de partition GUID (voir GUID Vs MBR)

Quand vous formatez un disque en GUID dans l'Utilitaire de Disque, il crée une petite partition cachée de 200Mb en FAT32 nommée EFI. Cette partition sert à l'origine à stocker les drivers de l'EFI d'apple mais n'est plus utilisée...
Nous allons donc nous servir de cette partition pour y placer un EFI et les extensions nécessaire à un boot optimal. Nos Extensions seront donc à l'abris dans cette petite partition (reformatée en HFS+) de sorte que nous ne devrions plus craindre grand chose des mise à jour à venir.

Installation sur partition EFI dans l'installateur Chameleonv2(RC1)

Rien de plus simple pour cette partie, sélectionner Personnaliser puis Chameleon EFI HFS


Paramétrer sa partition EFI


 Monter la partition pour l'éditer :


Passer Root !

sudo -s

Créer un dossier /Volume/EFI

mkdir -p /Volumes/EFI/

Identifier le disque système (/)

diskutil info / | grep Identifier

Monter le disque

mount_hfs /dev/diskXs1 /Volumes/EFI

NB : Si vous êtes en IDE, vous pouvez relancer le Finder (Alt+clic droit sur l'icône du Dock) et voir apparaitre la partition EFI. En AHCI elle n'apparaîtra pas.

 Editer /Volumes/EFI/Extra/com.appe.Boot.plist


sudo nano /Volumes/EFI/Extra/com.apple.boot.plist

NB : L'installateur recopie votre com.apple.Boot.plist actuel. Vos EFI Strings sont aussi recopiés.

Mettre à jour les Extensions et le fichier Extensions.mkext avec le scripte "updateEFI.sh"

Voici en attendant mieux un scripte qui devrait vous faciliter la vie : update_efi.sh (v2 - fr).zip
Créer un dossier "KEXT" sur le bureau et placez-y toutes les extensions à installer. Attention, il va tout remplacer ! Ce n'est donc pas vraiment une mise à jour.
En root, glisser le scripte dans le terminal :





Le scripte s'occupe désormais de tout. Il devrait vous retourner le message "terminé !" si tout va bien.

NB: La première fois un message d'erreur apparait car Extensions.mkext n'existait pas encore.
Démonter la partition EFI

umount -f /Volumes/EFI
Voilà, le répertoire /Volumes/EFI sera automatiquement effacé par le système. Il faudra donc chaque fois répéter toutes les étapes ci-dessus.

Bonus : Réparer la partiton EFI après l'installation d'un autre OS

Voici tout ce dont vous avez besoin : efi_boot_RescuePlacer le répertoire efi_boot_Recue sur le bureau et ouvrir le Terminal.

Passer Root

sudo -s
Identifier votre disque

diskutil info / | grep Identifier
Aller dans le réperoire

cd ~/Desktop/efi_boot_Rescue
Placer stage 0 bootloader sur le disque cible

fdisk -f boot0 -u -y /dev/rdiskX
Placer stage 1 bootloader sur la partition cible (partition EFI)

dd if=boot1h of=/dev/rdiskXs1
Rendre le disque bootable

fdisk -e /dev/diskX
Voilà, au prochain reboot Chameleonv2 sera de nouveau à sa place.
 

Commentaires 

 
0 #1 sand 06-04-2009 17:52
Hello,

Avec le script suivant, il ne devrait plus y avoir d'erreur lors du premier run.
De plus, le fichier mkext de sauvegarde précédant n'est plus écrasé par le nouveau (enfin, ce n'est pas sure à 100% car le process id '$$' n'est pas garanti unique...)

Attention, ce script n'a pas été testé...

----------------------------------
#!/bin/bash

cd /Volumes/EFI/Extra

echo "Updating EFI boot cache"
[ -e "Extensions.mkext" ] && mv Extensions.mkext Extensions.mkext.$$
chmod -R 644 Extensions
chown -R 0:0 Extensions

kextcache -a i386 -m Extensions.mkext Extensions > update.log 2>&1
chmod 644 Extensions.mkext
chown 0:0 Extensions.mkext
echo "done."
Citer
 
 
0 #2 07-04-2009 13:34
Merci pour les tutos, c'est vraiment super ce que vous faites!!

L'install sur la partition EFI cachée marche bien pour moi tant que je ne branche pas mon disque avec XP (MBR).
Lorsque je branche le disque XP alors ça se bloque sur un écran noir.
Apparemment c'est un pb connu, mais qqun sait-il si c'est une limitation définitive ou un bug de la RC1?
Y aurait-t-il moyen de dire au bootloader de ne pas s'occuper du disque MBR pour que je puisse au moins booter sur ma partition leopard?
Citer
 
 
+1 #3 07-04-2009 13:53
J'ai remarqué une chose lorsque l'on fait une install en mode "partition EFI":
l'installer copiera automatiquement toutes les kext présents dans /Extra/Extensions et construit automatiquement le Extensions.mkext.
Même chose pour le com.apple.boot.plist s'il est présent dans /Extra.
Comme ça on n'a pas trop besoin de aire de shell.
Citer
 
 
0 #4 24-04-2009 09:26
Salut peut on faire la meme manip sur un Raid0 logiciel?
Citer
 
 
0 #5 09-05-2009 17:13
Bonjour,

Cette commande ne passe pas: "fdisk -e /dev/rdiskX" ("X" remplacé par "0" pour moi)...

ça m'indique: "Enter 'help' for information" ...
Citer
 
 
-1 #6 09-05-2009 21:51
Franchement, il faudrait être plus clair pour ceux qui débutent...

-> "Voilà, le répertoire /Volumes/EFI sera automatiquement effacé par le système. Il faudra donc chaque fois répéter toutes les étapes ci-dessus."

Comment ça, "chaque fois"????
De quoi on parle là???

_______________ _______________ _______________ ______________

->" Editer /Volumes/EFI/Extra/com.appe.Boot.plist:


sudo nano /Volumes/EFI/Extra/com.apple.boot.plist "


Pourquoi l'éditer, y mettre quoi encore???

PS: Puis merci beaucoup d'avoir indiqué qu'il fallait faire "Ctrl - X" pour sortir, car dans nano " ^ " est égale à "Ctrl"(pas clair du tout ça)...Il fallait le savoir, hein???
_______________ _______________ _______________ _______________


Je vient de planté mon système maintenant à cause de tout ça, j'ai plus de son, j'ai l'impression que mes Kext ne se chargent plus. Pfffff, BRAVO VRAIMENT ...
Citer
 
 
0 #7 sonotone 10-05-2009 21:12
Citation en provenance du commentaire précédent de Piouff :
Je vient de planté mon système maintenant à cause de tout ça, j'ai plus de son, j'ai l'impression que mes Kext ne se chargent plus. Pfffff, BRAVO VRAIMENT ...


Je crois que tu ne peux que t'en prendre à toi même si tu ne maîtrise pas ton installation, pourquoi incriminer les autres?
Citer
 
 
0 #8 pm974 17-05-2009 12:38
Salut tout le monde et merci de vos commentaires !

J'ai amélioré le script de mise à jour de la partiton EFI (c'était trop galère).

J'ai appris à faire ça ici :
www.tuteurs.ens.fr/.../script.html

Sur ce, bon dimanche, bonjour chez vous, bonne lecture sur darwinx86.org et longue vie au projet !
Citer
 
 
0 #9 pm974 17-05-2009 12:39
Citation en provenance du commentaire précédent de kiki :
Salut peut on faire la meme manip sur un Raid0 logiciel?

Non, je ne pense pas. Mais tu peux toujours tester et nous dire si ça marche...
Citer
 
 
0 #10 08-07-2009 23:39
Après avoir scrupuleusement suivi cette démarche(très bien expliqué) je me retrouve bouche ouverte lorsque je vois chameleon qui reste bloqué sur "starting Darwin x86" après avoir pu choisir la partition à démarrer... quelqu'un a une idée quelconque ?
Merci
Citer