Installer Ubuntu en dual-boot avec Windows XP sur le même disque dur en utilisant l'amorçeur de Windows
Ce tutoriel s'adresse aux possesseurs d'un ordinateur probablement tatoué qui souhaitent installer Ubuntu tout en gardant Microsoft® Windows® NT, 2000 ou XP1) sur le même disque dur, en utilisant l'amorçeur de Windows, et sans modifier le MBR.
Il est indispensable d'avoir lu et compris ce document avant de continuer.
Nous vous recommandons aussi d'imprimer la totalité de ce document, afin de l'avoir sous la main durant l'installation d'Ubuntu, et de lire en totalité la procédure avant de commencer. Vous aurez à utiliser une fenêtre de terminal et à exécuter des commandes. L'article est agrémenté de nombreux compléments d'informations (optionnels), qui se trouvent en bas de page afin de ne pas alourdir le texte lui-même.
Pour l'exemple, nous prendrons pour acquis que Ubuntu sera installé à l'emplacement /dev/sda2
. Si vous installez Ubuntu dans un autre emplacement, vous devrez adapter ce document afin qu'il corresponde à votre configuration. Si vous avez besoin d'assistance afin de découvrir cet emplacement, nous vous invitons à utiliser nos forums de discussions ou notre salon de clavardage.
Pré-requis
Pour suivre cette procédure, vous devez disposer :
- d'un Desktop Live CD d'Ubuntu ;
- d'un support de stockage externe, au choix : une disquette, une clé USB, un espace de stockage (compte FTP) ou une adresse de courriel.
Si vous ne l'avez pas encore fait, préparez votre ordinateur comme décrit sur cette page: sauvegardez vos données, créez le CD de restauration de Windows, faites de la place, défragmentez et repartitionnez votre disque.
Ce que nous allons faire
- À l'aide du Desktop Live CD d'Ubuntu, nous chargerons une session d'Ubuntu ;
- Nous copierons le contenu du MBR (Master Boot Record, «Zone d'amorçage»), contenant éventuellement le tatouage, dans le support de stockage externe. Celui-ci devra être exploitable sous Windows ;
- Nous allons installer Ubuntu normalement, mais en demandant d'installer l'amorceur GRUB dans le secteur d'amorçage de la partition racine d'Ubuntu, et non pas dans le MBR (cas par défaut), support du tatouage ;
- Sous Windows, nous ajouterons une entrée de menu à sa procédure de démarrage pour Ubuntu.
Allons-y !
Amorçage d'une session live d'Ubuntu
- Si votre ordinateur est actuellement allumé, insérez le Desktop CD d'Ubuntu dans le lecteur de CD-ROM de votre ordinateur. Si un menu contextuel s'affiche, n'y portez pas attention ;
- Fermez tout et réamorcez (redémarrez) votre ordinateur, en prenant soin de laisser le Desktop CD d'Ubuntu dans votre lecteur de CD-ROM ;
- Vous êtes alors confronté à un écran semblable à celui ci-contre. Si ce n'est pas le cas, votre BIOS n'est pas réglé pour amorcer un système d'exploitation depuis un CD-ROM ; paramétrez votre BIOS afin de pouvoir charger un système d'exploitation depuis un CD-ROM et amorcez de nouveau votre ordinateur ;
- À cette étape, choisissez :
- la langue (« Language ») avec « F2 » ;
- l'arrangement de votre clavier (« Keymap ») avec « F3 ».
- Enfin, choisissez l'entrée de menu Démarrer ou installer Ubuntu (la première option).
Sauvegarde du contenu d'origine du MBR
- Ouvrez un terminal ;
pour la version française du liveCD, tapez :
sudo dd if=/dev/sda of=~/Bureau/mbr446.img bs=446 count=1
Un fichier nommé mbr446.img
devrait se trouver sur votre bureau ;
- Copiez ce fichier sur votre support de stockage externe (disquette ou clé USB) ou envoyez-le-vous par courriel. L'important est d'en avoir une copie de sauvegarde à laquelle vous pourrez faire appel au besoin.
Pour des manipulations de tailles en dessous de 512 ou ne tombant pas juste avec un multiple de nombre de secteurs, il faut prendre l'habitude de définir la taille de bloc à 1 (bs=1) et de définir le nbre d'octets à transférer avec 'count=nnn'.
Cela évite beaucoup d'erreurs…
Installation d'Ubuntu
Commencez à installer Ubuntu en suivant le début de la procédure d'installation graphique normale, mais arrêtez-vous lorsque vous voyez la fenêtre ci-dessous:
Il vous faudra vous arrêtez et faire cette manipulation depuis le menu déroulant se trouvant au bas de l'écran de partitionnement manuel.
A cette étape, ajoutez la procédure suivante :
Lorsque le résumé des opérations à effectuer s'affiche (fenêtre intitulée "Prêt à installer"), au bas de la fenêtre d'installation, cliquez sur le bouton Avancé… (voir image ci-dessous). Indiquez qu'il faut installer le chargeur d'amorçage et précisez que celui-ci doit se trouver dans l'emplacement (hd0,1)
ou sélectionnez le périphérique /dev/sda2
dans le menu déroulant5). Si vous laissez le paramétrage par défaut, le tatouage de votre ordinateur sera effacé. Veillez donc à entrer les bons paramètres.
Puis complétez l'installation.
Ajout d'une entrée de menu pour Ubuntu dans l'amorceur de Windows XP
Une fois l'installation d'Ubuntu complétée, choisissez de rester dans le système du live CD. Nous allons maintenant copier le secteur d'amorçage de Grub : Ouvrez un terminal et tapez :
sudo dd if=/dev/sdxY of=~/grub.bs bs=512 count=1
où sdxY doit être remplacé par la partition sur laquelle vous avez installé Ubuntu (exemple sda2). Le fichier grub.bs apparait maintenant dans le dossier utilisateur. Pour un live CD ubuntu, c'est sous "Ubuntu".
Possibilité 1 : Copiez le fichier grub.bs sur une clé USB et redémarrez.
Possibilité 2 : montez la partition contenant Windows et copiez le fichier grub.bs à la racine.
Redémarrez votre ordinateur.
Aucun choix ne vous est proposé pour charger Ubuntu. C'est Windows XP qui se lance, pour le moment c'est normal. Nous n'avons pas complété cette section.
Récupérez le fichier grub.bs
, que vous avez précédemment généré durant l'installation d'Ubuntu, et copiez-le dans C:\
(sauf si vous avez choisi la seconde possibilité)
- Dans le menu Démarrer, sélectionnez Panneau de configuration → Performances et maintenance → Système ;
- Rendez-vous sous l'onglet Avancé. Dans la rubrique «Démarrage et récupération», cliquez sur le bouton Paramètres ;
- Dans la fenêtre «Démarrage et récupération», sous la rubrique «Démarrage du système», cliquez sur le bouton Modifier pour modifier les options du démarrage ;
- À la toute fin du fichier
boot.ini
qui vient de s'ouvrir, ajoutez la ligne suivante, et uniquement cette ligne :C:\grub.bs="Executer GRUB"
- Vérifiez que la ligne commençant par
timeout
n'assigne pas 0. Cela correspond au temps d'affichage du menu en secondes… sinon, modifiez cela à votre convenance. - Sauvegardez le fichier
boot.ini
modifié. - Validez
Toutefois si votre partition windows est de type FAT32, veillez à ne pas dépasser 8 caractères pour le nom. Sinon vous aurez une erreur liée à HAL.DLL
Exemple correct : grubsda2.bs (8 caractères). Exemple incorrect : grub_sda2.bs (9 caractères).
Pour changer l'ordre de démarrage, redémarrez votre ordinateur. Vous verrez normalement apparaitre "Exécuter Grub" dans le menu. Sélectionnez-le et validez. Désormais, Grub (et donc Ubuntu) sera le choix par défaut lors du démarrage du PC.
boot.ini
, car vous pourriez complètement modifier la routine d'amorçage de votre ordinateur ! Il se pourrait alors que votre ordinateur soit dans l'incapacité de charger un quelconque système d'exploitation installé.
- le retour à la ligne sous Windows (Notepad par exemple) est représentée par les 2 caractères [CR]+[LF] (0x0D+0x0A)
- alors que le retour à la ligne sous Ubuntu (gedit) est représenté uniquement par [LF] (0x0A)
Ce qui apparament ne plait pas au programme de boot qui n'arrive plus à interpréter correctement le boot.ini et se bloque.
Si après toutes ces manipulations, un plantage se produit lorsque l'on sélectionne grub au démarrage
Cela peut arriver notamment dans le cas où vous utilisez karmic et Grub2 et que vous êtes malchanceux ou si vous l'avez installé sur une partition logique. Il existe une méthode alternative pour arriver quand même à ses fins. En effet, le bug vient du fait que pour une raison inconnue, le premier secteur que vous avez récupéré de votre partition où vous avez installé grub est vide, ce qui fait que votre grub.bs ne contient pas de données exploitables. La solution consiste à :
- Sauvegarder le contenu de votre MBR
- Installer grub dans votre MBR
- Récupérer le nouveau contenu du MBR dans le fichier grub.bs
- Restaurer votre MBR grâce à la sauvegarde que vous en aviez faite.
Alors pour commencer, redémarrez sur votre liveCD, et montez la partion où vous aviez installé votre système linux. Ici nous supposerons qu'il s'agit de /dev/sda2, et quelle a été montée dans /media/uuid. Ouvrez un terminal, et entrez les commandes suivantes:
sudo dd if=/dev/sda of=sauvegarde_mbr_xp bs=512 count=1 # sauvegarde du MBR de Windows sudo grub-install --root-directory=/media/uuid /dev/sda # installation de Grub dans le MBR sudo dd if=/dev/sda of=grub.bs bs=512 count=1 # récupération du MBR selon Ubuntu sudo dd of=/dev/sda if=sauvegarde_mbr_xp bs=512 count=1 # restauration du MBR depuis la sauvegarde
Récupérez le nouveau fichier grub.bs obtenu après cette manipulation, montez votre partition système de windows et placez le à la racine à la place du précédent défectueux.
Exemple: tutoriel en images
Voici une présentation picasa qui montre en 174 slides un exemple de mise en œuvre des méthodes préconisées ici dans le cadre d'une installation fine. Attention, cette présentation s'adresse à un public déjà un peu familier d'Ubuntu et ouvert à une découverte plus profonde de son système. Par ailleurs cette présentation ne saurait être suivie au pied de la lettre. Par exemple vous n'aurez probablement pas besoin de désactiver l'acpi. A vous de comprendre l'esprit de la chose, et de savoir l'adapter à vos besoins propres.
Explications additionnelles
Logique de démarrage
Le BIOS, une fois les vérifications de routine sur l'ordinateur terminées, exécute un petit programme, appelé « amorceur » (en anglais, bootloader), qui permet à son tour de démarrer un système d'exploitation. L'amorceur qu'exécute le BIOS doit se trouver dans une petite partie d'un disque dur ou d'une partition : le MBR (Master Boot Record) dans le cas d'un disque, ou secteur d'amorçage dans le cas d'une partition. Par défaut, si des paramètres n'ont pas été modifiés dans le BIOS, celui-ci va exécuter l'amorceur se situant dans le MBR du disque dur maître ; par défaut, Ubuntu installe son amorceur dans ce MBR.
Toutefois, ceci est problématique sur certains ordinateurs de constructeurs, tels Hewlett-Packard, Packard Bell, Acer et d'autres marques, quand on désire conserver une copie fonctionnelle de Microsoft® Windows®. Ces ordinateurs possèdent des routines d'amorçage modifiées qui empêcheront la réinstallation de Windows si le MBR est modifié : on appelle ce principe le tatouage. Comment faire, alors, pour installer Ubuntu tout en gardant la possibilité de réinstaller Windows plus tard ? La solution est d'utiliser l'amorceur déjà en place dans le MBR : Bootmgr pour Vista.
Qu'est-ce que le tatouage ?
Le tatouage est un dispositif, malheureusement de plus en plus commun, que de nombreux constructeurs mettent en place dans leurs ordinateurs. Ce dispositif interdit à la version de Windows livrée avec votre ordinateur d'être installée sur un autre ordinateur. Concrètement, il s'agit de quelques octets placés sur la carte mère, sur le disque dur (en particulier le MBR), sur la partition de restauration de Windows, sur les CD de réinstallation, voire aussi dans le BIOS, et qui communiquent entre eux. Si l'un de ces éléments est changé, votre copie de Windows ne pourra plus être réinstallée, voire même ne plus démarrer. Ce dispositif est utilisé par de grandes marques comme Packard Bell, Hewlett-Packard, Acer, Compaq, Gericom et bien d'autres encore.
Puisque Ubuntu, par défaut, installe GRUB dans le MBR (et donc modifie, réécrit le contenu du MBR), un ordinateur tatoué perd son tatouage. Conséquence de cette perte : il est impossible de réinstaller Windows si besoin est, voire même de le démarrer. Pour éviter cela, la procédure ci-dessus fait en sorte qu'à l'installation d'Ubuntu, GRUB sera placé ailleurs et on utilisera les capacités actuelles de l'amorçeur contenu dans le MBR au moment du tatouage (BootMgr).
D'autres raisons (par exemple, si vous réinstallez fréquemment Windows) peuvent aussi vous inciter à préférer la méthode décrite dans ce tutoriel pour créer un multi-amorçage entre Ubuntu et Windows avec BootMgr.
Installer GRUB ailleurs que dans le MBR
GRUB est un amorceur fréquemment utilisé dans le monde linuxien ; c'est celui que la distribution Ubuntu a choisi d'utiliser. GRUB est un programme fonctionnant en deux parties : une première partie s'installe dans le MBR d'un disque ou le secteur d'amorçage d'une partition, et la seconde partie s'installe dans une partition d'Ubuntu. Ceci est dû à la fois à la nécessité de se trouver dans cet emplacement et la trop petite taille du MBR ou secteur d'amorçage (512 octets dont seulement 446 peuvent être utilisés par l'amorceur).
Lors de l'installation par défaut, avec le Desktop CD d'Ubuntu, la première partie de GRUB (stage1
) est installé dans le MBR, ce qui écrase complètement le contenu actuel du MBR et, par le fait-même, le tatouage de l'ordinateur ; ceci n'est pas envisageable si l'on possède un ordinateur tatoué et que l'on souhaite conserver la possibilité d'utiliser ou réinstaller Windows. De même, si l'on réécrit dans le MBR (ce qui se produit si l'on installe ou réinstalle Windows après Ubuntu), stage1
est effacé et GRUB ne fonctionne plus.
Pour éviter ces deux cas de figure, on a la possibilité d'installer stage1
ailleurs que dans le MBR. Dans le tutoriel précédent, nous l'avons installé dans le secteur d'amorçage de la partition racine d'Ubuntu ; Windows n'y touchera pas. Ceci évite de corrompre le fonctionnement de GRUB.
Utiliser NTLDR
NT Loader (ou NTLDR) est l'amorceur de Windows XP. Par défaut, celui-ci est configuré pour démarrer automatiquement Windows, sans offrir de menu pour charger d'autres systèmes d'exploitation, à l'exception d'autres systèmes Windows s'il y en a plus d'un installés dans l'ordinateur. D'ailleurs, NTLDR ne permet pas d'amorcer un OS Linux. Par contre, il permet d'enchaîner un autre amorceur, qui lui a les capacités d'amorcer un système Linux ; c'est cette capacité que recherche ce tutoriel.
Avec l'astuce que nous avons précédemment décrite, nous pouvons laisser GRUB dans le secteur d'amorçage de la partition racine d'Ubuntu, laisser NTLDR dans le MBR du disque dur. Ce que nous demandons à NTLDR de faire est de passer le relais à GRUB, pour que lui démarre Ubuntu.
Les avantages de cette technique
- On ne modifie pas le contenu du MBR, qui contient éventuellement un tatouage ;
- On ne perd jamais l'amorceur GRUB, puisqu'il est installé sur le secteur d'amorçage de la partition racine d'Ubuntu, et non dans le MBR. Si Windows doit être réinstallé, il est facile de récupérer l'accès à GRUB, car on dispose d'une copie du
stage1
en sauvegarde ; - Lorsque l'on rajoute un nouvel OS, il suffit de répéter une procédure similaire à celle que nous venons de décrire, ce qui fait en sorte que chaque amorceur est indépendant.