Conseils sur le dual-boot pour Windows XP Embedded

 

Par Sean D. Liming
Microsoft Embedded MVP
Directeur général, SJJ Embedded Micro Solutions

Mars 2005
S'applique à Microsoft® Windows® XP Embedded

Résumé

Le dual-boot constitue l'une des techniques les plus intéressantes lorsque l’on se familiarise avec Windows XP Embedded. Cet article traite des astuces qui permettent de résoudre les problèmes liés à la configuration du dual-boot.

Table des matières

Paramètres de configuration

Fichier Boot.ini

Chemins ARC

Lettres de lecteur

Virtual PC - une meilleure solution

Introduction

De nombreux développeurs utilisant Windows® XP Embedded pour la première fois choisissent leur propre système de développement comme plateforme Windows XP Embedded cible. Cette méthode, connue sous le nom de « dual-boot », permet au développeur de compiler le système d'exploitation Windows XP Embedded dans Windows XP Professionnel, de télécharger le système d'exploitation sur une partition ou un disque dur distinct, puis de redémarrer l'ordinateur sous Windows XP Embedded. Le dual-boot permet de faire des économies, dans la mesure où il élimine la nécessité d'acheter un deuxième ordinateur comme cible.

Les développeurs qui travaillent dans cet environnement sont néanmoins confrontés à la difficulté de configurer les paramètres adéquats dans Windows XP Embedded et dans le fichier boot.ini. Les forums de Windows XP Embedded regorgent de questions concernant les chemins ARC (Advanced RISC Computing), les paramètres du fichier boot.ini et les problèmes liés aux lettres de lecteur. Dans les sections qui suivent, nous tenterons d'apporter une réponse à ces questions.

Paramètres de configuration

Du temps de Windows NT Embedded, il suffisait, pour paramétrer le dual-boot entre Windows NT et Windows NT Embedded, de modifier le chemin ARC dans le fichier boot.ini de la partition active primaire. Aujourd'hui cependant, le registre est plus étroitement impliqué. Par conséquent, pour Windows XP puis pour Windows XP Embedded, la lettre de lecteur et le chemin ARC doivent être écrits dans le registre. Lorsque vous installez Windows XP, ces paramètres sont définis automatiquement.

Avec Windows XP Embedded, en revanche, vous devez les définir manuellement dans Target Designer en fonction de votre configuration personnalisée. La figure 1 présente un exemple de la section des paramètres de l'unité cible. Le système d'exploitation résidera dans la seconde partition du premier disque dur, et la taille de la partition est de 2 Mo.

Paramètres de l'unité cible - La lettre de lecteur est-elle correcte ?

Figure 1. Paramètres de l'unité cible - La lettre de lecteur est-elle correcte ?

La lettre de lecteur E est-elle correcte ? Comment déterminer ces paramètres ? Les sections qui suivent proposent des conseils sur leur configuration.

Fichier Boot.ini

Le fichier boot.ini fourni avec Windows NT permet de faire coexister plusieurs instances d'un système d'exploitation sur un même ordinateur. Vous pouvez en effet amorcer différents systèmes d'exploitation tels que DOS, Windows 9X, Windows 2000, Windows XP et Windows XP Embedded. En règle générale, ces systèmes résident sur des disques durs ou sur des partitions distinctes dans l'ordinateur, et le fichier boot.ini contient les chemins ARC pointant vers chaque installation.

Lorsque vous créez l'image de Windows XP Embedded, Target Designer crée automatiquement un fichier boot.ini qui contient un chemin ARC fondé sur la valeur définie dans les paramètres de l'unité cible. Dans un scénario impliquant le dual-boot, le fichier boot.ini de l'image n'est pas utilisé, ni même les fichiers NTLDR et NTDETECT qui se trouvent à la racine de l'image.

Lors de l'amorçage d'un ordinateur, le test de démarrage POST du BIOS est exécuté et configure l’ordinateur de façon à lancer le système d'exploitation. Lorsque le BIOS du système a terminé l'analyse de la ROM, il recherche une unité d'amorçage telle qu'un lecteur de disquettes ou de CD-ROM, un périphérique USB Flash, un client PXE ou un disque dur. Sur un disque dur, le BIOS analyse les premiers secteurs, nommé « secteur de démarrage principal » (MBR, Master Boot Record). Le MBR contient l'ensemble des informations relatives aux partitions et aux pistes, qui permettent au BIOS de localiser la partition active primaire. Il doit exister une seule partition active primaire par système.

Dans une configuration avec dual-boot, Windows XP Professionnel réside dans la partition active primaire et seul le fichier boot.ini se trouvant dans cette partition est utilisé (ainsi que les fichiers NTLDR et NTDETECT de cette même partition). Une fois créée l'image de Windows XP Embedded, vous devez modifier manuellement le fichier boot.ini dans la partition de Windows XP Professionnel, de façon à y ajouter le deuxième chemin ARC. Voici un exemple :

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect

Que les fichiers soient ou non utilisés, il est recommandé de copier dans la partition l'image intégrale de Windows XP Embedded, y compris les fichiers d'amorçage qui se trouvent à la racine. Vous aurez besoin de ces fichiers lorsque vous travaillerez avec un système autonome.

Chemins ARC

Le système se sert du chemin ARC pour déterminer l'emplacement du système d'exploitation. Le chemin multi(X)disk(Y)rdisk(Z)partition(W)\<rép_windows> fournit un pointeur vers l'emplacement du système d'exploitation sur l'unité. Il peut néanmoins s'avérer difficile de déterminer les valeurs de X, Y, Z et W.

Il existe également une convention de chemin ARC, scsi(X)disk(Y)rdisk(Z)partition(W)\<rép_windows>, utilisée avec les unités SCSI. Ces dernières sont plus complexes, dans la mesure où vous pouvez utiliser conjointement ces deux types de chemins ARC. Étant donné que les performances des lecteurs IDE (y compris Serial ATA) ont été considérablement améliorées et que les unités SCSI ont perdu de leur popularité, les exemples de cet article utilisent des types de chemins ARC IDE. Pour obtenir des informations complémentaires sur le support SCSI, reportez-vous à l'article MSDN traitant des chemins ARC, dans la section Référence du présent document. Nous pouvons donc déterminer que les valeurs de X et Y sont toujours 0 : multi(0)disk(0). Restent les valeurs de Z et W.

La valeur de Z fait référence au numéro de disque, qui commence par 0. L'ordre des disques est généralement défini par le bus IDE ou SATA (IDE 0 ou IDE 1 et SATA 0 ou SATA 1). Le bus indique également si le disque est une unité primaire ou secondaire.

La valeur de W fait référence au numéro de la partition, sur le disque défini par la valeur de Z. Les numéros de partition commencent par 1.

Voici plusieurs exemples destinés à éclaircir ces concepts.

Exemple 1 : Vous souhaitez que Windows XP Embedded démarre depuis la deuxième partition du deuxième disque IDE (lecteur secondaire IDE0). Le chemin ARC est alors le suivant :

multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect

Exemple 2 : Vous souhaitez que Windows XP Embedded démarre depuis la troisième partition du quatrième disque IDE (lecteur secondaire IDE1). Le chemin ARC est alors le suivant :

multi(0)disk(0)rdisk(3)partition(3)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect

Exemple 3 : Vous souhaitez que Windows XP Embedded démarre depuis la deuxième partition du premier disque IDE (lecteur primaire IDE0). Le chemin ARC est alors le suivant :

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect

Notez que les chemins ARC se terminent par \WINDOWS. Les développeurs qui ont migré depuis Windows NT sont souvent déconcertés, car l'ancien répertoire se nommait \WINNT. Désormais, les fichiers principaux de l'image de Windows XP Embedded se trouvent tous dans le répertoire \WINDOWS, de sorte que le chemin ARC doit également contenir \WINDOWS. Si vous entrez \WINNT, vous obtenez l'erreur suivante lors de l'amorçage :

Windows n'a pas pu démarrer, car le fichier suivant est absent ou endommagé :
<Racine Windows>\System32\hal.dll.
Réinstallez une copie du fichier ci-dessus.

Lettres de lecteur

La lettre de lecteur est le paramètre qui pose le plus de problèmes et qui est souvent le plus difficile à déterminer. Si vous la définissez incorrectement, le système d'exploitation redémarrera indéfiniment sans lancer l'agent FBA (First Boot Agent) de Microsoft Windows XP Embedded.

Lorsque vous créez une deuxième partition, Disk Manager lui attribue automatiquement une lettre de lecteur. Dans la figure 2, l’outil Gestion des disques a attribué la lettre E à la deuxième partition devant être utilisée pour Windows XP Embedded sur le disque primaire. Le lecteur de CD-ROM utilise la lettre D.

Seconde partition associée à la lettre E.

Figure 2. Seconde partition associée à la lettre E.

Vous pourriez aisément présumer que la lettre E est celle de Windows XP Embedded, et configurer les paramètres de l'unité cible comme dans la première illustration. Or, ce n'est PAS le cas.

Pour déterminer la lettre de lecteur correcte, supposez que le système démarre sous DOS sans pilote de CD-ROM, et que tous les lecteurs sont dotés du système de fichiers FAT (File Allocation Table). Si vous accédiez à chaque partition sous DOS, les lettres seraient réparties de la sorte :

  • C dans Windows XP Embedded demeure C dans DOS.
  • E dans Windows XP Embedded devient D dans DOS, car le lecteur de CD-ROM n'est pas chargé.

La lettre de lecteur correcte est donc D. Dans la figure 1, les paramètres de l'unité cible doivent indiquer la lettre D plutôt que E. S'il ne s'agit pas de la méthode la plus scientifique qui soit, elle permet du moins de déterminer la lettre idoine.

Notez qu'il vous faudra jongler avec ces lettres de lecteur si votre système est équipé de plusieurs disques durs.

Virtual PC - une meilleure solution

Le dual-boot ne constitue pas nécessairement la meilleure méthode pour tester Windows XP Embedded. D'aucuns préfèreront un système cible distinct, par exemple si le fabricant OEM prévoit de livrer un système qui n'exécute que Windows XP Embedded.

Il est naturel de chercher à réaliser des économies et à explorer de nouvelles solutions. Il se peut toutefois que vous ne parveniez pas à amorcer le système d'exploitation. Or, ce type de mésaventure peut être évité. Sans compter un autre inconvénient de taille : vous devez cesser l'accès à votre système de développement pour amorcer un système d'exploitation de test, ce qui ralentit le processus global de développement.

Il est par conséquent préférable de recourir à Virtual PC (VPC) plutôt qu'au dual-boot. VPC se révèle en effet très efficace sur les travaux de longue haleine, lorsqu'il n'est pas possible d'utiliser un système cible secondaire. Mieux encore, il n'est pas nécessaire de redémarrer l'ordinateur chaque fois que vous souhaitez exécuter une version de Windows XP Embedded.

Depuis la publication de cet article, vous pouvez télécharger la version d'essai de Virtual PC 2004 valable 45 jours, en vous rendant sur ce site Microsoft. Pour obtenir des informations complémentaires sur l'utilisation de Windows XP Embedded avec VPC, reportez-vous au document Windows XP Embedded Toolkit, disponible à l'adresse www.sjjmicro.com.

Conclusion

L'utilisation du dual-boot sur un ordinateur de développement en vue de tester Windows XP Embedded constitue une méthode rapide pour se familiariser avec l'outil. Une bonne connaissance des chemins ARC et des lettres de lecteur vous aidera à réussir cette configuration.

SJJ Embedded Micro Solutions

Le développement d'un système intégré ne se limite pas à la création d'une image à l'aide de quelques composants. Les développeurs doivent en effet tenir compte de la manière dont le système est utilisé, fabriqué et pris en charge en contexte. SJJ Embedded Micro Solutions choisit une approche architecturée destinée à offrir une solution adaptée à votre produit. Forts de notre expérience dans de nombreux domaines, nous avons mis en œuvre divers projets Windows Embedded, parmi lesquels : clients légers, consoles de jeu, contrôles industriels, systèmes de voix sur IP, matériels de test, appareils électroniques grand public et produits pour l'automobile.

Si vous avez besoin d'assistance pour la mise en œuvre de votre projet Windows XP Embedded, contactez-nous à l'adresse sales@sjjmicro.com ou consultez notre site www.sjjmicro.com.

Besoin d'aide sur Windows XP Embedded SP2 ? Découvrez le nouveau Windows XP Embedded Supplemental Toolkit, qui couvre Windows XP Embedded Service Pack 2.

Pour en savoir plus

Pour obtenir des informations complémentaires sur Windows XP Embedded, visitez le site Windows Embedded.

Pour consulter la documentation en ligne et l'aide contextuelle incluses avec Windows XP Embedded, reportez-vous à la documentation Windows XP Embedded.

Ressources supplémentaires

L'agent FBA redémarre indéfiniment

Conventions d'affectation de noms et utilisation des chemins BOOT.INI et ARC

Mode d'attribution, de réservation et de stockage des lettres de lecteur dans Windows 2000