Table des matières

Créer un DVD (ou CD) multibootable ultime pour PC

Pour ne pas multiplier les CDs, on peut regrouper sur un dvd ou cd unique plusieurs installateurs pour des systèmes d'exploitation ou pour des logiciels (par ex. Office) dont on possède évidemment la licence originale !

<note>Ces pages sont la compilation des infos que j'ai glanées ici ou là (encore en cours d'élaboration)</note>

Bootable CD Wizard : Gestionnaire de CD Bootable à images multiples

sources

Autres pages :

En vrac, quelques notes glanées ici ou là

Introduction

Nous allons créer un DVD (ou un CD si tout tient dessus) de démarrage (“bootable”) capable de :

A chacun de choisir ce qu'il veut intégrer…

Deux méthodes de travail sont possibles :

Plusieurs logiciels peuvent être utilisés :

Nous utiliserons la dernière version, améliorée disponible ici : 2.01a, RescueCD, avec les explications sur le forum : [Tutorial] How to make a multiboot CD/DVD, This one works

De quoi aurons-nous besoin ?

Outre du temps et de la patience (il faut être méthodique et posé…), il nous faut :


et des logiciels :

Préparation

[/]             --> recevra les images des disquettes de boot pour les OS de type 9x et les répertoires pour les disquettes de boot des OS de type NT
    | BOOT      --> recevra le système cdshell
    |
    | PRO1           (pour XP Pro, recevra PRO1.DAT)
    | HOM1           (pour XP Home, recevra HOM1.DAT)
    | 2PRO           (pour 2000 Pro, recevra 2PRO.DAT)
    | NT4W           (pour NT4 WorkStation; recevra NT4W.DAT)
    |
    | SETUP      --> recevra les contenus de tous les cds (DVD\SETUP\WINXPPRO par exemple)
           | WIN95
           | WIN98SE
           | WINME
           | WINXPPRO
           | WINXPHOM
           | WIN2000
           |        | ADVSERV (2000 Advanced Server)
           |        | SERVER (2000 Server)
           |        | PRO (2000 Pro)
           | WINNT4
           |       | SERVER (NT4 Serveur)
           |       | WRKSTN (NT4 WorkStation)
           | WIN2003
                    | DCT (2003 Datacenter)
                    | ENT (2003 Enterprise)
                    | STD (2003 Standard)
                    | WEB (2003 Web)

On peut créer cette arborescence d'un coup avec le script batch suivant (utilisable sous XP, téléchargeable sur mon site : ici) :

CreeArborescence.bat
@echo off
set racine=
set /p racine="Chemin complet de la racine du dvd : 
for %%i in (SETUP, BOOT, PRO1, HOM1, 2PRO, NT4W) do md %racine%\%%i
for %%i in (WIN95, WIN98SE, WINME, WINXPPRO, WINXPHOM, WIN2000, WINNT4, WIN2003) do md %racine%\setup\%%i
for %%i in (ADVSERV, SERVER, PRO) do md %racine%\setup\WIN2000\%%i
for %%i in (SERVER, WRKSTN) do md %racine%\setup\WINNT4\%%i
for %%i in (DCT, ENT, STD, WEB) do md %racine%\setup\WIN2003\%%i
pause

Placer toutes les images des disquettes de démarrage (*.IMA pour la famille 9x et *.DAT pour la famille NT), dans un même répertoire,

On peur le batch suivant (téléchargeable sur mon site : ici) pour les installer au bon endroit :

CopieImagesDisquettes.bat
@echo off
set racine=
set /p racine="Chemin complet de la racine du dvd : "
if exist %racine% goto racineExiste
echo Le chemin %racine% n'existe pas.
goto Fin
 
:racineExiste
set dskt=
set /p dskt="Chemin complet du répertoire contenant les images des disquettes de démarrage de Windows (*.IMA et *.DAT) : "
echo famille 9x
for %%i in (WIN95, WIN98SE, WINME) do (
  if exist %dskt%\%%i.IMA copy %dskt%\%%i.IMA %racine%\
  if not exist %dskt%\%%i.IMA echo erreur : %dskt%\%%i.IMA introuvable...
)
echo famille NT
for %%i in (NT4S, NT4W, 2ADV, 2SRV, 2PRO, PRO1, HOM1, 3DCT, 3ENT, 3WEB) do (
  if exist %dskt%\%%i.DAT copy %dskt%\%%i.DAT %racine%\
  if not exist %dskt%\%%i.DAT echo erreur : %dskt%\%%i.DAT introuvable...
)
 
:Fin
pause

Pour simplifier la tâche, on peut télécharger une archive contenant les images des secteurs de boot modifiés pour les différents systèmes d'exploitation. Il suffira d'utiliser les images de secteurs de boot nécessaires…

Nous utilisons la totalité des cds d'installation. Cela permet d'utiliser les fichiers setup.exe (ou install.exe) pour chaque OS, pour éventuellement vérifier la compatibilité matériel, ou faire des mises à jour depuis une version plus ancienne de Windows.

processusboot

Préparation des fichiers

OS de la famille Windows NT (NT4, 2000, XP, 2003)

La procédure est exactement la même pour les différents systèmes d'exploitation de la famille NT.

Deux solutions :

Version de WindowsNom du fichier de secteur de bootRépertoire de démarrageRépertoire contenant les fichiers d'installation
NT4 ServeurNT4S.DATD:\DVD\NT4S\D:\DVD\SETUP\WINNT4\SERVER
NT4 WorkStationNT4W.DATD:\DVD\NT4W\D:\DVD\SETUP\WINNT4\WRKSTN
2003 Datacenter3DCT.DATD:\DVD\3DCT\D:\DVD\SETUP\WIN2003\DCT\
2003 Enterprise3ENT.DATD:\DVD\3ENT\D:\DVD\SETUP\WIN2003\ENT\
2003 Standard3STD.DATD:\DVD\3STD\D:\DVD\SETUP\WIN2003\STD\
2003 Web3WEB.DATD:\DVD\3WEB\D:\DVD\SETUP\WIN2003\WEB\
XP ProPRO1.DATD:\DVD\PRO1\D:\DVD\SETUP\WINXPPRO\
XP HomeHOM1.DATD:\DVD\HOM1\D:\DVD\SETUP\WINXPHOM\
2000 Advanced Server2ADV.DATD:\DVD\2ADV\D:\DVD\SETUP\WIN2000\ADVSERV
2000 Server2SRV.DATD:\DVD\2SRV\D:\DVD\SETUP\WIN2000\SERVER
2000 Pro2PRO.DATD:\DVD\2PRO\D:\DVD\SETUP\WIN2000\PRO

Voici la méthode pour chaque système :

Pour une installation sans surveillance, se reporter à la page start

OS de la famille Windows 9x (95, 98 SE, ME)

Pour les systèmes d'exploitation de la famille 9x, la méthode est différente de celle des OS de la famille NT, qui nécessitent un répertoire de démarrage.

Ici, pas besoin de répertoire de démarrage, mais d'une (image de) disquette avec support CD-Rom, qui lance l'installation depuis le CD.

Deux solutions :

Nous prendrons l'exemple de Windows 98 SE.

La procédure est exactement la même pour les différents systèmes d'exploitation de la famille 9x. Il suffira de répéter la méthode pour chaque OS à installer, en modifiant les noms des répertoires et des fichiers selon le tableau ci-dessous.

Version de WindowsNom de l'imageRépertoire contenant les fichiers d'installation
95WIN95.IMAD:\DVD\SETUP\WIN95\
98 SEWIN98SE.IMAD:\DVD\SETUP\WIN98SE\
MEWINME.IMAD:\DVD\SETUP\WINME\

OS de la famille Windows Vista (Vista, Seven)

Le systeme de WINDOWS 7 (c'est presque la même chose pour WINDOWS VISTA) utilise principalement 2 fichiers :

<note> Le Format de fichier .WIM

En fait l'installation de ces OS consiste en un déploiement d'une image WIM identique sur chaque PC.

WIM signifie Windows IMaging. C'est un fichier image disque. Ce format est utilisé nativement pour l'installation de Windows Vista, de Windows Server et de WINDOWS 7.

Contrairement aux fichiers images orientés secteurs (.iso, .cue, …), un fichier WIM est orienté partitions ; il contient, en plus des fichiers d'une partition, des métadonnées sur les fichiers contenus dans la partition.

Le format WIM est donc indépendant du matériel (taille des secteurs) et les fichiers identiques au sein d'un fichier WIM (qui peut contenir plusieurs images de partitions) ne sont stockés qu'une fois. Comme ceux ci sont stockés dans une base WIM, la surcharge réseau et disque est réduite lors de leur ouverture.

En outre, les images WIM doivent être déployées sur un volume ou une partition déjà créés. Cela peut se faire au sein de l'environnement de pré-installation Windows PE 2 à l'aide de la commande diskpart

Les images contenues au sein d'un fichier WIM sont référencées par un numéro d'index. Un fichier WIM peut aussi être partitionné en de multiples fichiers (.svm) afin, par exemple, d'être enregistrés sur CD ou DVD.

Explication technique sur le FORMAT .WIM :

  1. L'en-tête (WIM Header) : définit le contenu, des informations sur le fichier (version, taille, compression) et l'emplacement des éléments clefs.
  2. Fichiers (File Ressources) : il s'agit du package à proprement parler, contenant les fichiers.
  3. Métadonnées (Metadata Ressource, une ressource de Métadonnées par image) : fournissent les attributs de fichiers et la structure des répertoires des images capturées.
  4. Table d'allocation (Lookup Table) : contient les emplacement des fichiers dans les images.
  5. XML : informations additionnelles sur les images (au format XML)
  6. Table d’intégrité : informations d’intégrité permettant de s'assurer de l'application correcte des images lors de leur déploiement.

Pour plus d'information, voir : http://fr.wikipedia.org/wiki/Format_Windows_Imaging_(WIM) et http://toutwindows.com/ws2008_wds_WIM.shtml </note>

Nettoyage des fichiers inutiles

Pour que notre DVD fonctionne correctement, il faut supprimer quelques fichiers inutiles (qui peuvent êtres gênants).

Chercher dans le répertoire DVD et ses sous répertoires les fichiers suivants :

Type ou nom de fichierSuppression possible ou action à effectuer
bootfix.binCes fichiers affichent “Appuyez sur n'importe quelle touche pour démarrer depuis le cd…”. On peut supprimer ces fichiers pour lancer directement l'installation du système d'exploitation que l'on a choisi.
.bakLes fichiers .bak sont des fichiers de sauvegarde qui ont été créés par votre éditeur texte et/ou hexadécimal. Ils peuvent êtes supprimés.
txtsetup.si_S'il en existe, ils peuvent être supprimés.
txtsetup.sifOn peut supprimer des fichiers “txtsetup.sif” qui seraient dans des répertoires “i386”.
Attention de NE PAS supprimer ces fichiers s'ils sont dans les répertoires de démarrage (PRO1, PRO2, 3ENT, NT4S, etc).
setupldr.bi_S'il en existe, ils peuvent être supprimés.
setupldr.binOn peut supprimer des fichiers “setupldr.bin” qui seraient dans des répertoires “i386”.
Attention de NE PAS supprimer ces fichiers s'ils sont dans les répertoires de démarrage (PRO1, PRO2, 3ENT, NT4S, etc).

<note tip>Si on ne fait pas ce nettoyage de fichiers, on aura des messages d'erreur comme “Le programme d'installation ne trouve pas le contrat de licence d'utilisateur final.”.</note>

Intégration de Ultimate Boot CD

On peut intégrer au DVD tout le contenu du Cd “Ultimate Boot CD”. Ultimate Boot CD regroupe plusieurs utilitaires gratuits, de partitionnement, formatage, récupération…

Cette procédure fonctionne à partir de la version 2.2 de Ultimate Boot CD, qui utilise également CD Shell, ce qui simplifie son intégration dans le DVD.

Voici la procédure à suivre (exemple de Ultimate Boot CD 5.0.3).

Voila, tous les fichiers sont prêts pour intégrer Ultimate Boot CD.

Pour lancer Ultimate Boot CD, il faudra ajouter dans le fichier cdshell.ini une commande chain /IMG_BOOT/ubcd503.dat.

Ce qui peut donner une ligne complète de la forme suivante (touche U pour lancer Ultimate Boot CD) :

if $lastKey == key[U]; then chain /IMG_BOOT/ubcd503.dat

Ajout de fichiers permettant d'installer des programmes windows

Ajout de fichiers personnels

Arborescence du DVD

Vérifions maintenant que l'arborescence de notre DVD ressemble à ce qui suit. Si c'est le cas, tout va bien.

<note tip>Ce qui suit n'est qu'un exemple qui comporte XP Pro et Server 2003, mais on peut ajouter autant de versions qu'on veut tant qu'elles tiennent sur le DVD</note>

C:\DVD\ - Source du DVD Multi-boot
C:\DVD\BOOT\ - répertoire CDShell
C:\DVD\i386\ - répertoire réduit pour Windows XP Pro (facultatif)
C:\DVD\PRO1\ - 1er répertoire de boot pour XP Pro
C:\DVD\PRO2\ - 2e répertoire de boot pour XP Pro
C:\DVD\3ST1\ - 1er répertoire de boot pour Server 2003
C:\DVD\3ST2\ - 2e répertoire de boot pour Server 2003
C:\DVD\SOFTWARE\SOFTWARE\ - répertoire contenant les logiciels
C:\DVD\SOFTWARE\Install.cmd - fichier CMD qui s'occupe de l'installation des logiciels
C:\DVD\SOFTWARE\SOFTWARE_ALL\ - répertoire contenant le logiciel pour tous les OS
C:\DVD\SETUP\XP\Professional\i386\CMD\RunOnce.cmd
C:\DVD\SETUP\Server2003\Standard\I386\CMD\RunOnce.cmd

Créer le menu de démarrage multiboot

Création d'un menu de boot (CDShell)

L'écriture de script avec CD Shell est très simple : il suffit de modifier l'exemple que l'on trouvera à http://www.msfn.org/board/post-a13636-cdshell.ini selon les besoins.

Rester simple, pour le menu de boot, utiliser CD Shell, des fichiers winnt.sif simples, etc. On pourra raffiner, seulement après avoir terminé avec succès et booté tous les OS. On trouvera à la fin de ce guide quelques options pour raffiner.

Télécharger le fichier cmd à dézipper (sur mon site)

Le lancer et naviguer jusqu'au répertoire du DVD. En se terminant, il ouvre create_boot_folders.cmd ; le modifier selon les besoins.

Il crée le répertoire de boot PRO1, modifie setupldr.bin, modifie txtsetup.sif, crée le secteur de boot PRO1.bin et copie les fichiers repères WIN51, WIN51IP et WIN51IP.SP1 (WIN51IP.SP2 si Service Pack 2). (Noter que PRO1.bin a exactement 4 lettres en majuscule)

call create_boot_folder.cmd C:\DVD\SETUP\XP\Professional C:\DVD PRO1 FOO 0

Avec NotePad, créer un fichier texte dans PRO1 et le renommer en winnt.sif.

[GuiUnattended]
DetachedProgram="%SystemRoot%\System32\cmd.exe /c @ECHO something>%SystemDrive%\XPPRO.TAG"

Cette instruction dit à winnt.sif de créer un fichier repère qui identifie l'OS en cours d'installation. Dans ce cas, le fichier repère sera XPPRO.TAG, mais on peut spécifier ce qu'on veut.

Création de RunOnce.cmd

@echo off
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist "%%i:\software\Install.cmd" call %%i:\software\Install.cmd
exit

Pour cela, on peut se servir de la méthode RunOnceEx (explications en anglais). RunOnceEx ne se lance qu'à la première connexion, de sorte que les applications peuvent avoir besoin de redémarrage. La méthode ci-dessus contourne ce problème : elle est “sans redémarrage”.

Lancement de RunOnce.cmd à partir de Svcpack.inf

[SetupData]CatalogSubDir="\i386"

[SetupHotfixesToRun]
CMD\RunOnce.cmd

<note tip>

</note>

Creation du fichier Install.cmd

@echo off
REM next line makes sure the *.TAG extension is identified
setlocal enableextensions
REM checks for the XPPRO.tag file and go to the corresponding section:
if exist %SystemDrive%\XPPRO.TAG call :XPPRO
REM checks for the XPPRO2.tag and go to the corresponding section:
if exist %SystemDrive%\XPPRO2.TAG call :XPPRO2
REM checks for the SERVER2003.tag file and go to the corresponding section:
[if exist %SystemDrive%\SERVER2003.TAG call :SERVER2003
REM End
goto :end

:XPPRO
REM Here we'll add the software to install to the XP Pro version. Example:
REM "%~dp0" refers to the full path the Install.cmd is in, so you don't have to worry about drive letters
start /wait %~dp0\Software\Program1.exe /s
start /wait %~dp0\Software\Program2.exe
start /wait %~dp0\Software\Program3.exe /qn
REM End this section
REM end of this section :
goto :end

:XPPRO2
REM Here we'll add the software to install to the XP Pro Unattended version. Example:
start /wait %~dp0\Software\Program1.exe /s
start /wait %~dp0\Software\Program2.exe
start /wait %~dp0\Software\Program3.exe /qn
REG IMPORT %~dp0\Software\Tweaks.reg
REM End this section
REM end of this section :
goto :end

:SERVER2003
REM Here we'll add the software to install to the Server 2003 version. Example:
REG IMPORT %~dp0\Software\Workstation.reg
start /wait %~dp0\Software\ProgramA.exe /s
start /wait %~dp0\Software\ProgramB.exe
REM End this section
REM end of this section :
goto :end

:end
REM Here we'll add the options for every OS.
start /wait %~dp0\SOFTWARE_ALL\AntiVirus.exe
start /wait %~dp0\SOFTWARE_ALL\Firewall.exe /s
REM Applying tweaks to the registry. Independent of the TAG:
REG IMPORT %~dp0\Software\Tweaks.reg
del /f /q %SystemDrive%\*.TAG
del /q /f %SystemRoot%\*.bmp
del /q /f %SystemRoot%\system32\dllcache\*.scr
del /q /f %SystemRoot%\system32\setupold.exe
del /q /f %SystemRoot%\system32\presetup.cmd
exit

Install.cmd recherche les fichiers repères ; quand il en trouve un, il fait l'action correspondante.

On constate que les applications sont installées directement depuis le DVD (sans copie sur le disque, ce qui gagne du temps) ; il est donc inutile d'employer OEMPreInstall=Yes ou [GuiRunOnce] dans winnt.sif, que l'on peut cependant encore employer pour lancer d'autres choses si besoin.

Ajout d'une option Unattended

Dans cette section, nous allons apprendre à ajouter une option qui permet une installation de Windows sans intervention.

C'est peut-être le moment de lire le fichier ref.chm dans Microsoft Deployment Tools, il explique comment régler winnt.sif pour une installation.

Le fichier winnt.sif permet de sauter quelques étapes fastidieuses de l'installation, comme de taper le numéro de série, définir la langue ou le clavier ou même de sauter toutes les étapes avec la commande UnattendMode=FullUnattended.

Une fois winnt.sif créé, lui ajouter ces lignes pour qu'il repère l'OS à installer :

[GuiUnattended]DetachedProgram="%SystemRoot%\System32\cmd.exe /c @ECHO something>%SystemDrive%\XPPRO.TAG"
XP_Pro:
print c "\n\cXXMicrosoft Windows XP Professional \n"
print "1) Regular \n"
print "2) Unattended \n"

XP_Pro_Key:
if $lastKey == key[1]; then chain /PRO1.DAT
if $lastKey == key[2]; then chain /PRO2.DAT

Créer le fichier de démarrage (automatique) pour Windows

Créer le fichier ISO (CDImage)

Il ne nous reste plus qu'à créer l'ISO pour tester notre our DVD.

Nous suivrons le tutoriel de CDImage en ligne de commande, mais on peut aussi suivre celui de la version GUI de CDImage si on veut.

Placer cdimage.exe dans le même répertoire que le DVD :

C:\CDImage.exe
C:\DVD

Automatisation du processus

Créer un fichier batch que l'on peut lancer chaque fois que l'on veut créer l'ISO.

Pour cela, ouvrir le bloc-notes et y recopier le code ci-dessous. Enregistrer ce fichier où on veut et le renommer en .bat, comme C:\makeiso.bat.

DEL C:\*.ISO
start cdimage.exe -lDVD -t01/01/2006,12:00:00 -b\DVD\BOOT\loader.bin -h -n -o -m \DVD C:\AIODVD.iso
EXIT

Maintenant, chaque fois qu'on exécute makeiso.bat, il crée l'ISO pour nous.

Il reste à tester l'ISO (par exemple avec VMware) et ajouter d'autres OS !

Tester le fichier ISO (avec VmWare ou Virtual PC)

Graver le DVD (ou le CD) multiboot

Possibilités de la méthode

En pratique

Compléments

Ajout de Windows 98

Suivre ce guide.

Ajout de drivers

Suivre ce guide

Ressources supplémentaires