Graver un CD bootable de Windows 2000 avec Service Pack


Ce document explique comment créer un CDROM bootable de Windows 2000 et de Windows XP à partir d'un CD original, et en y intégrant éventuellement le dernier Service Pack (En ce qui concerne Windows 2000, SP1 lors de la première création du présent document, et SP3 actuellement). Cela permet de raccourcir notablement le temps d'installation de Windows, et de bénéficier immédiatement des apports du Service Pack.
 

Cette procédure a été testée avec succès
avec les versions françaises de :

  • Windows 2000 Professionnel et Serveur (build 2195
  • Windows 2000 +  les Service Pack 1, 2 et 3 version française. 
  • Windows XP HOME et PRO (build 2600) + le Service Pack 1

 

Le SP3 version française de Windows 2000 est disponible sur  le site Microsoft
Le SP1 version française de Windows XP est disponible sur le site Microsoft

 

Les logiciels de gravure utilisés ont été :

avec un graveur
SCSI Teac 56S.

La méthode de configuration de CDRWIN commentée ici s'est fortement inspirée de celle décrite dans la FAQ de Windows NT

1.       Préparation de l'image

2.       Ajouts éventuels de pilotes supplémentaires

3.       Intégration d'un Service Pack ("SlipStreaming")

4.       Création du CD avec CDRWIN

5.       Création du CD avec NERO

6.       Correction du bug "Couldn't find NTLDR" survenant avec NERO

Préparation de l'image

Elle consiste à copier dans une partition d'un disque dur le CDROM original de Windows 2000 ou Windows XP. On n'est pas obligé de copier tous les sous répertoires, mais au minimum :

1.       La racine du CD, comportant les fichiers

o        CDROM_NT.5 

o        CDROM_IP.5 (pour Windows 2000 professionnel)
CDROM_IS.5 (pour Windows 2000 serveur)
ces fichiers sont tous identiques, sauf le nom, et sont des fichiers texte contenant la chaîne "W2k" suivie d'une séquence CR/LF (codes 0x0D 0x0A). 

o        bootfont.bin (la police de caractères utilisées lors du boot du CD)

o        AUTORUN.INF

o        SETUP.EXE
ces deux derniers fichiers sont utiles pour relancer éventuellement l'installation depuis Windows.

o        cdrom_sp.tst (créé ultérieurement, lors de l'intégration du SP)

2.       L'arborescence \I386 complète

3.       Le répertoire \BOOTDISK (facultatif, mais recommandé)

Cet ensemble occupe environ un espace disque de :

Ajouts éventuels de pilotes supplémentaires

Il est possible d'ajouter à cette distribution de Windows 2000 ou Windows XP des pilotes de périphériques spécifiques, non standards. Cela est effectué à l'aide de l'outil Microsoft  SYSPREP. En attente d'une traduction ici, la procédure est décrite dans les articles suivants de la Base de connaissances du MSDN :

"Q254078 - How to Add OEM Plug and Play Drivers to Windows 2000 Installations"

"Q236029- How to Set the Driver Signing Policy for Windows 2000 Unattended Setup"

L'outil SYSPREP est disponible gratuitement sur le site de Microsoft : 
http://www.microsoft.com/windows2000/downloads/tools/sysprep/default.asp

Il est disponible également dans le fichier DEPLOY.CAB du sous répertoire  \SUPPORT\TOOLS\ du CD de Windows 2000 ou XP.
Ce fichier peut être décompressé par exemple à l'aide de Winzip ou WinRAR, ou encore en lançant le programme setup.exe situé dans le même répertoire.

Au cas où vous n'auriez pas ce fichier DEPLOY.CAB ou des difficultés à télécharger SYSPREP, il est disponible ici, mais sans garantie de mise à jour. (version actuellement disponible : 1.1)

Consulter également le document écrit par Francois ARELLA :

Créer un CD bootable W2K + SP3 + IE 6 + WMP 7.1 + DX 8.1

Intégration d'un Service Pack ("SlipStreaming")

(dernière modification : 13/08/02 suite au SP3)

Si l'on a besoin de créer plusieurs CDROM (version Professionnel et version Serveur p.ex.), on aura intérêt  à décompresser au préalable le dernier Service Pack (contenu dans un fichier auto extractible, p.ex. W2Ksp3.exe) dans un répertoire quelconque d'une partition d'un disque dur (p.ex.. S:\SP3)
Cette opération peut s'effectuer aisément :

ATTENTION! La procédure de fusion qui va être décrite ne fonctionne que sous Windows 2000 (et au delà). Si on essaie de l'effectuer sous un autre système, un message d'erreur va être généré, dû au problème suivant  :

Windows 9x :

La bibliothèque  CLUSAPI.DLL n'existe pas 

Windows NT4 :

La bibliothèque SETUPAPI.DLL ne possède pas le point d'entrée VerifyCatalogFile

Cette restriction (non contournable) est signalée dans l'article Q265440 de la Knowledge Base du MSDN :
http://support.microsoft.com/support/kb/articles/Q265/4/40.ASP

Pour effectuer la fusion (sans installation) du Service Pack avec l'image du CD de Windows 2000 précédemment copiée sur le disque dur, il faut exécuter dans une fenêtre de commandes le programme update.exe.

Il est situé dans le sous répertoire  \i386\update de l'arborescence du SP décompressé :

Ce programme admet la syntaxe suivante :

On remarquera, par rapport aux
SP 1 et 2 de Windows 2000,
la présence d'une nouvelle option : update -l

qui affiche les "hotfixes" postérieurs au SP en cours.

(NB: il y a un bug dans la barre de titre de la boite de dialogue!)

 

On va donc lui passer en paramètre le commutateur -s: suivi immédiatement (sans aucun espace) du chemin de l'image de Windows 2000, c'est à dire le répertoire racine (celui dans lequel on trouve, par exemple, le fichier AUTORUN.INF).

Cette opération de fusion porte le nom de "SlipStreaming".

Attention, il faut absolument donner le chemin exact
de l'arborescence initiale
contenant les fichiers de Windows 2000 ou Windows XP

Par exemple :  s:\W2k\PRO (le sous répertoire i386 ne doit pas apparaître!)

En cas d'erreur  le message suivant va être affiché :

La commande correcte est donc, par exemple : update -s:S:\W2K\PRO

Il est indispensable de taper cette commande dans une fenêtre de commandes (ou depuis le menu démarrer / exécuter), afin de pouvoir transmettre les paramètres.

Cela lance alors la fusion :

 

 

 

 


On peut vérifier que certains fichiers ont bien été modifiés par le SP3
par exemple :


 

La date du répertoire i386 est désormais 25/06/2002
Par ailleurs, on constate qu'un fichier (de taille nulle) a été ajouté dans la racine, témoignant de la présence du SP : cdromsp3.tst

le fichier cdromsp2.tst que l'on peut voir dans l'exemple ci-contre résulte d'un précédent slipstreaming avec le SP2.
(Il aurait pu être supprimé)

 

 

Création du CD avec NERO

NERO est un des logiciels de gravure les plus connus (avec Easy CD Creator), mais la création d'un CD bootable de type NT avec cet outil est moins évidente qu'avec CDRWIN, essentiellement à cause d'un manque de documentation.

Par exemple l'aide contextuelle affiche ce genre d'informations peu explicites :

Cependant, il est tout à fait possible de réaliser un CD bootable de type NT avec NERO, avec la méthode suivante :

1.       Sélectionner le menu Fichier / Nouveau...
 

2.       Sélectionner CD-ROM (Boot)
 

3.       Afficher l'onglet Boot

1.                               Cocher le bouton Fichier image

2.                               Appuyer sur Parcourir et sélectionner
le fichier cdsector.bin défini précédemment et téléchargeable ici

3.                               Cocher la case Options approfondies

4.                               Sélectionner Pas d'émulation

5.                               Vérifier que la valeur du segment des
secteurs
est bien égale à 07C0

6.                               Indiquer 4 comme Nbre de secteurs lus

 

4.       Afficher l'onglet ISO

1.                               Cocher ISO-Niveau 1

2.                               Cocher ISO 9960

3.                               Cocher Joliet

 

5.       Afficher l'onglet Label (facultatif)

1.                   Indiquer un nom de volume (XP_PRO par exemple)

2.                               Indiquer le nom de l'éditeur (Microsoft)

6.       Appuyer sur Nouveau
puis copier dans le volet de gravure l'arborescence complète de Windows (CD ou Dossier disque) depuis le volet explorateur.
(L'exemple ci-dessous concerne la gravure d'un CD de Windows XP PRO)

 

7.       Sélectionner le menu Fichier / Graver le CD...
 

8.       Le CD ainsi obtenu est bootable!
Windows XP PRO :


Windows 2000 SP3 :



capture d'écran d'une installation de Windows 2000 Server + SP3
effectuée avec les méthodes décrites ci-dessus.

Correction du bug "Couldn't find NTLDR" survenant avec NERO

Bon nombre d'utilisateurs de NERO ont été confrontés à un problème lorsqu'ils ont voulu démarrer l'ordinateur avec un CDROM créé avec  la procédure précédente.
Le message "Couldn't find NTLDR" s'affiche à l'écran, alors que ce fichier existe bien dans la racine, et tout démarrage est impossible.

Cela est du à un paramètre erroné dans la configuration de NERO
Le site de NERO signale ce problème : http://www.ahead.de/en/content/helptool/609.htm
En  résumé, le standard ISO9660 prévoit qu'il y ait toujours un numéro de version après les fichiers. Or ce numéro perturbe le programme d'amorce  du CD de Windows.

Pour corriger cela, et empêcher l'inscription de ce n° de version, dans la clef :

HKEY_CURRENT_USER\Software\Ahead\Nero - Burning Rom\General

il faut que l'entrée "AddISOFileVersion" de type REG_DWORD contienne la valeur 0x00000000 (ou soit absente)

(au lieu de 0x00000001)

Afin d'éviter des erreurs de manipulation, on peut télécharger le fichier hotfixNERO.reg qu'il suffit de fusionner dans la Base de Registres en effectuant un double-clic depuis l'explorateur de Windows.

Ce fichier contient les lignes suivantes :

REGEDIT5

[HKEY_CURRENT_USER\Software\Ahead\Nero - Burning Rom\General]
"AddISOFileVersion"=dword:00000000
 

Merci à Sébastien RIPOCHE qui m'a signalé cette solution.

Comment créer un CD bootable Windows 2000 + SPx + Internet Explorer x + Windows Média Player x + DirectX ?

L’idée m’est venue juste avant la sortie du SP3. Malgré le CD bootable SP2, il me fallait plus d’une heure pour installer un serveur ou une station en Windows 2000.
Quelques recherches sur la toile m'ont rapidement amené à d’excellents sites comme www.tech-hints.com www.thetechguide.com ou le désormais célèbre www.bellamyjc.net de JC Bellamy. Le recoupement d’info m’a permis de réaliser le CD.

Recette :

1.     Intégration du Service Pack 3

2.     L'arborescence \$OEM$
a.      Cmdlines.txt
b.     Les scripts
c.     Winnt.sif

3.     Récupération des sources
a.      Internet Explorer 6
b.      Windows Media Player 7.1
c.    
Directx 8.1

4.     Préparation de l’image du CD

5.     Gravage avec Nero

6.     Et pour les plus curieux…

1.    Intégration du Service Pack 3

Cette technique désormais très célèbre dite du SlipStreaming est connue de tous. Pour les retardataires : http://www.laboratoire-microsoft.org/articles/win/slipstreaming/.


 Le SlipStreaming : intégrer un Service Pack à une distribution de Windows 2000

 

Introduction

Avec Windows 2000, il est possible de créer une version installable du système d'exploitation qui va intégrer directement les corrections d'un Service Pack, cette procédure se nomme le Slipstreaming. Microsoft propose cette fonctionnalité avec Windows 2000 ou avec d'autres produits comme SMS 2.0.

 Décompression des fichiers du Service Pack

Il est nécessaire dans un premier temps de procéder à la décompression des fichiers contenus dans le service Pack (avec Winzip par exemple).
Vous pouvez aussi utiliser le switch -x avec le fichier du service pack, ceci va permettre de décompresser son contenu sans lancer la mise à jour (update.exe).

Exemple :
SP1network.exe -x.

Allez dans le dossier i386 puis update. Vous y trouverez un exécutable nommé update.exe

u : mode sans assistance
f : force les autres application à se fermer lors de l'arrêt
n : ne pas sauvegarder les fichiers pour la désinstallation
o : Remplacer les fichiers OEM sans avertissement
z : Ne pas redémarrer à la fin de l'installation
q : Mode silencieux -- aucune interaction avec l'utilisateur
s:<rep> : Intégrer les fichiers du Service Pack dans <rép>

C'est ce paramètre -s qui va nous permettre d'intégrer les fichiers du service Pack

Intégration des fichiers du service Pack


L'on va copier les fichiers contenus dans le dossier i386 du CD Rom de Windows 2000 vers un dossier qui sera un emplacement réseau partagé.
L'on peut alors lancer la mise à jour des fichiers à l'aide de la commande : update -s:chemin.

A noter qu'il ne faut pas inclure de "i386" dans le chemin pour que cela puisse fonctionner.

Vous pouvez si vous le souhaitez partager le dossier en vue d'une installation réseau ou bien créer un CD-Rom amorcable qui vous permettra d'installer vos Windows 2000 avec un SP1 intégré.

 Remarquons que dans certains cas, lors du démarrage avec les disquettes d'installation de Windows 2000, vous pouvez recevoir un message d'erreur :
"La valeur suivante dans le fichier .SIF utilisé par le programme d'installation est corrompue ou manquante: Valeur '0' dans la section [SourceDiskFiles] avec la clé "SP1.CAB"

Pour résoudre ce problème, copiez le fichier TXTSETUP.SIF à partir du dossier i386 dans le CD avec lequel vous avez généré vos disquettes de démarrage.

Voici cette méthode dans les grandes lignes de.

- Copiez le répertoire \I386 de votre CD sur votre disque dur (ex: C:\ImageCD\I386).
- Décompressez le fichier W2Ksp3.exe à l'aide de Winzip dans un répertoire temporaire.
- Depuis le SP3 décompressé, lancez la commande \I386\update\Update.exe –s:c:\ImageCD

Le SP3 fusionnera avec le répertoire de distribution

2.    L'arborescence \$OEM$

Afin de faciliter le déploiement de ses OS chez les constructeurs et sur de grands réseaux, Microsoft a conçu  une arborescence permettant une pré-installation, l’ajout de drivers spécifiques, des fichiers de réponse et… des scripts !!! Bref tout pour une installation dite OEM.

Créez, cette arborescence dans votre répertoire d’accueil (ex: C:\ImageCD)
Le répertoire \$OEM$ doit être situé au même niveau que le sous-répertoire \I386 précédemment patché.

a.     Cmdlines.txt

Cmdlines.txt est exécuté à la fin de l’installation en mode graphique avant même qu’un utilisateur ne ce soit connecté. Ce qui veut dire qu’il n’y a pas encore de connexion réseau.
Sa syntaxe est la suivante :

[COMMANDS]
"Command_1"

"Command_2"

…………….

"Command_n"

Attention :

Il n'est pas possible d'utiliser de paramètres entre crochets dans le fichier Cmdline.txt. Si vous avez besoin de paramètres, utilisez un fichier batch que vous appellerez depuis Cmdlines.txt.
Placez le fichier batch directement à la racine de \$OEM$

b.     Les scripts

Maintenant créez un fichier batch que vous appellerez ie6.bat comme ci-dessous :

@echo off
echo Installation d’ Internet Explorer 6

echo .

echo Installation…

echo .

echo Veuillez patienter

%systemdrive%\winapps\ie6\ie6setup.exe /C:"ie6wzd /S:""#e"" /Q:A /R:N"

Puis un autre directx.bat :

@echo off
echo Installation de Directx 8.1

echo .

echo Installation…

echo .

echo Veuillez patienter

%systemdrive%\winapps\directx\dxsetup.exe /install /silent 

Et enfin un wmp.bat :

@echo off
echo Installation de Windows Media Player 7.1

echo .

echo Installation…

echo .

echo Veuillez patienter

%systemdrive%\winapps\wmp\setup_wm.exe /Q:A /R:N

Ces trois scripts sont donc à placer directement dans \$OEM$.
Les paramètres /Q:A et /R:N permettent une installation silencieuse et sans reboot .

Maintenant cous pouvez créer le fichier Cmdlines.txt à la racine de l’arborescence de distribution \$OEM$.

[COMMANDS]
".\ie6.bat"

".\directx.bat"

".\wmp.bat"

c.     Winnt.sif

L'utilitaire setupmgr.exe qui se trouve sur les distributions de Windows 2000 permet de créer des fichiers de réponse unattend.txt en vue d'installations automatiques ou personnalisées. Setupmgr.exe se cache dans le fichier Deploy.cab du sous-répertoire \Support\Tools. Il est accompagné de 2 autres fichiers Setupcl.exe et setupmgx.dll également à décompresser avant utilisation . Personnellement, je décompresse tout le Deploy.cab dans c:\winnt\system32 pour être tranquille.

- Lancez setupmgr.exe depuis le menu Démarrer à Exécuter

- Pour créer un nouveaux fichier unattend

- C'est quand même ce qu'on veut !

- Les champs seront pré-remplis avec des valeurs par défaut.

- Gardez le paramètre par défaut.

 

- Votre dossier de distribution est déjà créé puisqu'il s'agit du répertoire \I386…

- Enregistrez le fichier de réponse sous Winnt.sif

Ce fichier est à placer dans votre sous-répertoire de distribution \I386 patché SP3.

Voici le contenu du fichier texte Winnt.sif :

 

;SetupMgrTag
[Data]
    AutoPartition=0
    MsDosInitiated="0"
    UnattendedInstall="Yes"

[Unattended]
    UnattendMode=ProvideDefault
    OemPreinstall=Yes
    TargetPath=\WINNT

 [GuiUnattended]
    OEMSkipRegional=1
    TimeZone=105

[UserData]
    FullName=Arella
    OrgName="Ma Société"
    ComputerName=Marseille
    ProductID="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" 

[Display]
    BitsPerPel=8
    Xresolution=800
    YResolution=600
    Vrefresh=60

[Identification]
    JoinWorkgroup=BDR 

[Networking]
    InstallDefaultComponents=Yes

 

Remarquez que j'ai ajouté ou modifié manuellement certains paramètres:

AutoPartition=0
Permet de systématiquement avoir le choix de la partition d'installation.

OemPreinstall=Yes
Est obligatoire pour prendre en charge l'installation OEM.

ProductID
Se passe de commentaire…

3.    Récupération des sources

a.     Internet Explorer 6

Nous créons un CD bootable Windows 2000, inutile donc d'insérer les sources les fichiers d'installation des autres OS.
Le fichier initial d'installation ie6setup.exe est téléchargeable sur le site de Microsoft.
Il accepte la syntaxe suivante :

Ie6setup.exe /c:"ie6wzd.exe /d /s:""#E"""

Cet assistant permet de ne télécharger que les sources de IE6 pour Windows 2000.
Sauvegardez les sources dans le sous-répertoire \$OEM$\$1\winapps\ie6
(Remarquez au passage qu'on est loin des 70Mo de l'installation complète.)

b.     Windows Media Player 7.1

Téléchargez le fichier mp71.exe en version française et pour Windows 2000 depuis le site de Microsoft et décompressez le avec WINZIP dans le sous-répertoire \$OEM$\$1\winapps\wmp.

http://www.microsoft.com/france/download/default.asp

c.     Directx 8.1

Là encore le fichier dx81NTfrn.exe est téléchargeable en version française et pour Windows 2000 depuis le site de Microsoft.

http://www.microsoft.com/france/download/default.asp

Il est à décompresser toujours avec WINZIP dans le sous-répertoire \$OEM$\$1\winapps\directx

4.    Préparation de l'image du CD

L'image du CD (C:\ImageCD dans mon exemple) doit donc comporter:

-         CDROM_NT.5

-         CDROM_IP.5 (dans le cas d'un Windows 2000 Pro)

-         CDROM_IS.5 (dans le cas d'un Windows 2000 Serveur)

-         Bootfont.bin

-         AUTORUN.INF

-         SETUP.EXE

-         CDROMSP3.TST (créé lors de l'application du SP3)

-         Le répertoire \BOOTDISK

Plus

-         L'arborescence \I386 patchée SP3, comprenant le fichier Winnt.sif  (si souvenez vous)

Plus

-         Notre fameuse arborescence \$OEM$ comprenant le fichier Cmdlines.txt, les 3 scripts, et les sous-répertoires des sources.

5.    Gravage avec Nero

Je vous laisse deviner le site sur lequel j'ai pioché mes infos… Merci M. Bellamy.
Je n'ai absolument rien à ajouter dans ce paragraphe puisque tout est expliqué avec des Snapshoots sur ce lien :
http://www.bellamyjc.net/fr/cdbootable.html#nero

6.    Et pour les plus curieux…

-         Le répertoire \$OEM$ doit être placé au même niveau que le répertoire \I386 pour la réalisation d’un CD, et non dans le répertoire \I386. C’est apparemment un bug que Microsoft ne corrigera pas.
Dans le cas d’une installation en ligne de commande avec un fichier unattend.txt, il faut bel et bien placer le répertoire \$OEM$ sous \I386.

-         A cause d’une erreur de programmation, les fichiers ne sont pas supprimés à la fin de l’installation. Mais rien n’empêche de créer un script qui les efface.

-         Le service Windows Installer comme les services réseaux ne sont pas démarrés pendant cette étape de l’installation.