Ce samedi a été une après midi bidouille.
Mon frère s’est commandé un Optibay, un étui en métal permettant d’y loger un second disque dur à mettre à la place du lecteur optique (lecteur DVD si vous préférez).
L’installation du matos s’est passé sans soucis, le MacBook Pro milieu 2009 retrouve une seconde jeunesse avec un SSD en disque principal (le disque dur de base du Mac se retrouvant en second pour stocker tout pleins de choses, notamment une partition dédié à Windows).
Sauf que arrivé à l’installation du dit Windows … Je me suis rendu compte que j’avais complètement oublié que le support de Bootcamp sur un Macbook relativement ancien ne pouvais se faire qu’en présence d’une galette officielle de Windows dans le mangeur de disque … Pas cool :'(
Et histoire d’enfoncer encore le clou un peu plus … Impossible de booter par clé USB comme vous le feriez sur un Macbook récent (vous verrez plus loin dans l’article), bref la misère :/
Quoi qu’il en soit, l’esprit du système D m’emplis et tel un Mac Gyver des temps moderne, je me suis mis au défi d’installer Windows 7 avec seulement un ISO (légal / non modifié) et sans utiliser de périphériques externes. C’est parti !
Bootcamp veut pas ? Demandons-lui plus gentiment !
Ayant déjà pas mal touché à la structure des partitions Mac, je savais pertinemment que simplement formater son disque dur en NTFS et démarrer dessus comme un vieux PC (oui parce que maintenant il y a ces saloperies de UEFI qui t’oblige à faire 40 manips avant de pouvoir booter) ne fonctionneras pas. En effet, Mac OS n’utilise pas le MBR (Master Boot Record, petite partie au tout début du disque dur réservé à la correspondance entre les différentes partitions et leurs places sur le disque) mais un EFI qui est indépendant du disque et calcul lui-même les différents placements de partitions.
Bref tout cela pour dire que je n’ai pas envie de me prendre la tête à tenter de reconstruire une partoche telle que l’aurais fait Bootcamp, autant lui demander (avec un fouet clouté et quelques martinets) de la faire lui-même.
Avant toutes choses, nous aurons besoin de quelques outils :
- XCode (disponible sur l’AppStore)
- VMWare Fusion (prenez la version d’essai si vous ne voulez pas l’acheter, on en a besoin seulement pour l’installation, vous pourrez le supprimer après coup 😉 )
- Un driver permettant l’écriture de fichiers sur un support NTFS (pour ma part j’utilise une vielle version de Paragon NTFS)
Il va nous falloir modifier l’application « Assistant Boot Camp » se trouvant dans le dossier « Utilitaires » de vos apps Mac. Faites en tout d’abord une sauvegarde histoire de pouvoir revenir en arrière en cas de problème.
Suivez ensuite ces quelques étapes :
- Faites un clic droit sur « Assistant Boot Camp » puis « Afficher le contenu du packet ».
- Allez dans le dossier « Contents » et copiez le fichier « Info.plist » quelque part pour l’éditer (sur le bureau par exemple).
- Ouvrez le avec XCode et parallèlement, ouvrez les « Informations système » (se trouvant aussi dans le dossier « Utilitaires » de vos apps Mac).
- Ajoutez au début de la liste « DARequiredROMVersions » votre « Version de la ROM de démarrage » se trouvant dans les infos système.
- Ajoutez à la liste « PreUSBBootSupportedModels » (toujours au début) votre modèle de Mac (là encore trouvable dans les infos système).
- Sauvegardez et remplacez le Info.plist de l’application originale par celui-ci (un mot de passe vous sera demandé).
- Ouvrez le Terminal (toujours au même endroit, « Utilitaires ») et tapez cette commande :
sudo codesign -fs - /Applications/Utilities/Boot Camp Assistant.app
Lancez votre Assistant Boot Camp modifié et oh joie ! Plus d’alerte comme quoi vous ne pouvez continuer sans CD 😀 Du coup, il reste plus qu’à partitionner. Faites comme bon vous semble sur ce point.
Et l’installation de Windows dans tout ça ?
Bon, bah vu qu’on a un assistant fonctionnel, on va se faire une clé USB et booter dessus et le tour sera joué ! … Haha, si seulement c’était si simple x)
Étant sur un vieux Mac, vous vous rendrez compte que vous ne pouvez pas booter sur la clé en appuyant sur Option (Alt) au démarrage et que le seul moyen de boot viable (celui après le redémarrage une fois la partition créer) ne va pas bien loin, Windows étant incapable de reconnaitre la dite partition (erreur 0x80300024).
On va donc faire sans, il ne nous reste plus qu’à « monter » le disque dur sur lui-même … Heu attends, c’est … What ?
Pour cela, nous allons fabriquer une VM un peu spéciale, une VM qui aura comme disque dur virtuel votre disque dur physique #diskception
Tout d’abord, ouvrez votre terminal et tapez y : df -H
Cela devrait vous afficher ce genre de choses :
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk0s2 249G 108G 141G 44% 26350123 34489619 43% /
devfs 190k 190k 0B 100% 642 0 100% /dev
/dev/disk1s2 1000G 433G 567G 44% 105636992 138469674 43% /Volumes/Energic
map -hosts 0B 0B 0B 100% 0 0 100% /net
map auto_home 0B 0B 0B 100% 0 0 100% /home
Ce qui va nous intéresser sont les disques dur en /dev/disk, le reste osef :3 Repérez le disque dur où va se retrouver votre partition Windows (sans le sX) en vous aidant de sa taille (genre sur mon exemple, on voit que c’est le disque dur d’1To (1000 Go) et donc /dev/disk1).
Ensuite, tapez cette commande :
/Applications/VMware Fusion.app/Contents/Library/vmware-rawdiskCreator print /dev/disk1
Vous devriez avoir quelque chose comme ça :
Nr Start Size Type Id Sytem
1 40 409600 GPT EE Efi System
2 411648 976361472 GPT EE Basic Data
Vous aurez peut-être d’autres partitions, mais ici, c’est le « Basic Data » qui nous intéresse. Notez que si vous en avez plusieurs, aidez vous là encore de la taille pour trouver le bon ID (Nr) de partition.
Maintenant que vous avez toutes les infos, créons notre VM. Pour cela, lancez VMWare et faites comme si vous faisiez une VM classique à partir d’une image disque (laissez le créer un disque dur virtuel temporaire et retenez le nom de celui-ci (par défaut c’est « Disque Virtuel »)). Une fois créée, arrêtez la VM si elle s’est lancée automatiquement et fermez complètement VMWare.
Allez à l’endroit où se trouvent votre fichier de machine virtuelle (le .vmwarevm) et faites un clic droit « Afficher le contenu du packet ». Supprimez tous les .vmdk et tapez ces deux commandes dans le terminal :
cd /home/votrenom/emplacementdevotrefichier.vmwarevm
/Applications/VMware Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk1 2 "Disque Virtuel" ide
Veuillez bien entendu changer les éléments en violet par vos propres informations déduis plus haut.
Redémarrez VMWare et vous constaterez qu’il vous demandera votre mot de passe. C’est normal, faites et installez Windows comme si c’était une VM normale. Sans vous en rendre compte, vous être en train d’installer Windows sur une partition physique, le disque dur virtuel créé via les commandes ci-dessus faisant le lien avec la partition physique 🙂
Il se peut que l’installation fasse planter de manière violente VMWare, ce n’est pas grave. L’important est que la première partie de l’installation soit complétée (celle avant le premier redémarrage, qui inscrit l’ensemble des fichiers système).
Une fois ceci fait, redémarrer votre Mac sur Mac OSX. Je précise, car à ce stade, la partition Windows apparaitra si vous avez appuyé sur Option (Alt) mais vous obtiendrez une erreur 0xc000000e.
Sachez que nous avons fait le plus dur, car maintenant, c’est plus que du clic clic 🙂 Nous avons réussi à créer une partition bootable et reconnu par Mac, même si l’installation de Windows effectuée dans la VM est non fonctionnelle.
La prochaine étape est de monter l’ISO de votre Windows 7 (double cliquez dessus, c’est la magie de Mac, pas besoin de Deamon Tools ou autre logiciel bourré de logiciels espions :D) et copiez tout son contenu dans le nouveau disque dur Windows (le vrai cette fois, d’où la nécessité d’avoir un drivers pouvant écrire sur le NTFS). N’hésitez pas à effacer tout ce qu’il s’y trouve avant, mais ne le formater surtout pas !
Redémarrer l’ordinateur en bootant cette fois sur la partition Windows. Installez Windows comme à l’accoutumé en choisissant la bonne partition et sans la formater. Après plusieurs redémarrages de Windows, vous verrez que celui-ci vous propose de faire un checkdisk qui va vous détecter des tonnes d’erreurs et qui va durer pas mal de temps. C’est normal, laissez faire … En même temps, notre méthode étant un peu ninja, ce n’est pas étonnant que Windows n’aime pas. x)
Cool ! Mais c’est fini ?
Hé bah non ! Ce serais trop simple. x)
En fait, Windows est proprement installé, mais il va vous falloir installer les drivers. Étant sur Mac, le choix le plus simple reste encore d’utiliser ceux fourni par Bootcamp … Sauf que sur un ancien Mac, vous aurez ce joli petit dialogue d’erreur quand vous lancerez le setup.exe 🙁
La solution est d’aller dans le dossier « Divers » puis « Apple » et de lancer BootCamp.msi en administrateur. Pour cela, ouvrez le menu démarrer, tapez « cmd » et appuyez respectivement sur Control + Maj + Entrée. L’invite de commandes Windows devrais démarrer en tant qu’administrateur. Déplacez vous à l’endroit où se trouve le dossier des drivers Bootcamp (en utilisant « cd c:votrecheminDriversApple »), puis tapez BootCamp.msi. L’installation devrais se lancer sans aucun soucis 🙂
Il nous reste une dernière chose à changer. A chaque démarrage, Windows vous propose soit de démarrer sur Windows 7, soit sur un « Windows Setup » qui est en fait le disque d’installation de Windows que nous avions copié tout à l’heure. Damned !
Pas de panique, il y a une commande pour régler ce problème. Ouvrez de nouveau cmd en administrateur et tapez :
bcdedit
Vous devriez avoir quelque chose qui ressemble à ça :
Gestionnaire de démarrage Windows
---------------------------------
identificateur {bootmgr}
device partition=C:
description Windows Boot Manager
locale fr-FR
inherit {globalsettings}
default {current}
resumeobject {08a78ac0-cd48-11e3-a3ac-a2e0aa6fdbe2}
displayorder {current}
{7619dcc9-fafe-11d9-b411-000476eba25f}
toolsdisplayorder {memdiag}
timeout 30
Chargeur de démarrage Windows
-----------------------------
identificateur {current}
device partition=C:
path Windowssystem32winload.exe
description Windows 7
locale fr-FR
inherit {bootloadersettings}
osdevice partition=C:
systemroot Windows
resumeobject {08a78ac0-cd48-11e3-a3ac-a2e0aa6fdbe2}
nx OptIn
Chargeur de démarrage Windows
-----------------------------
identificateur {7619dcc9-fafe-11d9-b411-000476eba25f}
device ramdisk=[boot]sourcesoot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path windowssystem32ootwinload.exe
description Windows Setup
locale en-US
inherit {bootloadersettings}
osdevice ramdisk=[boot]sourcesoot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot windows
detecthal Yes
winpe Yes
ems Yes
Ce qui nous intéresse, c’est l’identifiant en violet. Bien entendu, il sera différent chez vous 😉
Notez le et tapez ceci :
bcdedit /delete {7619dcc9-fafe-11d9-b411-000476eba25f} /cleanup
Et voilou, le tutoriel s’arrête ici. J’espère que vous aurez appris des choses même si vous n’avez pas effectué les dites manipulations.
A bientôt pour de nouvelles aventures !
Bonjour,
Merci pour ce super tuto !
Je doute d’une chose, c’est pour l’installation des drivers sur un mac non compatible… Chez moi l’installation se fait mais je ne pense pas que tous les drivers soit installés…
Il existe deux versions du package BootCamp, chacun responsable d’un type de Mac.
Regarde la table de compatibilité ici et prends bien la version correspondante : https://support.apple.com/fr-fr/HT205016#tables
Tu peux connaitre l’année de ton Mac en allant sur le logo de la pomme tout en haut à gauche de l’écran puis « À propos de ce Mac » sur OSX.
Si aucune des deux versions ne fonctionne, dis-moi ce qui ne va pas et on fouillera ;3
Super Tuto, fonctionne très bien même si je doute que tous les pilotes se soit installés sur ma machine…
Merci !
Super tuto