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
Autres pages :
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
Outre du temps et de la patience (il faut être méthodique et posé…), il nous faut :
et des logiciels :
C:\DVD
, que nous figurerons par [/]), comportant environ 11 Go libres (avant optimisation par CDIMAGE qui évite les doublons, les fichiers peuvent occuper 7 Go), créer la structure suivante (c'est un exemple de dénominations) :[/] --> 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) :
@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 :
@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.
La procédure est exactement la même pour les différents systèmes d'exploitation de la famille NT.
Deux solutions :
Version de Windows | Nom du fichier de secteur de boot | Répertoire de démarrage | Répertoire contenant les fichiers d'installation |
---|---|---|---|
NT4 Serveur | NT4S.DAT | D:\DVD\NT4S\ | D:\DVD\SETUP\WINNT4\SERVER |
NT4 WorkStation | NT4W.DAT | D:\DVD\NT4W\ | D:\DVD\SETUP\WINNT4\WRKSTN |
2003 Datacenter | 3DCT.DAT | D:\DVD\3DCT\ | D:\DVD\SETUP\WIN2003\DCT\ |
2003 Enterprise | 3ENT.DAT | D:\DVD\3ENT\ | D:\DVD\SETUP\WIN2003\ENT\ |
2003 Standard | 3STD.DAT | D:\DVD\3STD\ | D:\DVD\SETUP\WIN2003\STD\ |
2003 Web | 3WEB.DAT | D:\DVD\3WEB\ | D:\DVD\SETUP\WIN2003\WEB\ |
XP Pro | PRO1.DAT | D:\DVD\PRO1\ | D:\DVD\SETUP\WINXPPRO\ |
XP Home | HOM1.DAT | D:\DVD\HOM1\ | D:\DVD\SETUP\WINXPHOM\ |
2000 Advanced Server | 2ADV.DAT | D:\DVD\2ADV\ | D:\DVD\SETUP\WIN2000\ADVSERV |
2000 Server | 2SRV.DAT | D:\DVD\2SRV\ | D:\DVD\SETUP\WIN2000\SERVER |
2000 Pro | 2PRO.DAT | D:\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
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 Windows | Nom de l'image | Répertoire contenant les fichiers d'installation |
---|---|---|
95 | WIN95.IMA | D:\DVD\SETUP\WIN95\ |
98 SE | WIN98SE.IMA | D:\DVD\SETUP\WIN98SE\ |
ME | WINME.IMA | D:\DVD\SETUP\WINME\ |
Le systeme de WINDOWS 7 (c'est presque la même chose pour WINDOWS VISTA) utilise principalement 2 fichiers :
boot.wim
qui contient les informations concernant le boot lui-mêmeinstall.wim
qui contient tout (fichiers, configurations, softs,…) ce qui concerne les différentes versions d'installations présentes sur le DVD de WINDOWS 7. C'est ce fichier qui installe notre WINDOWS 7<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 :
Pour plus d'information, voir : http://fr.wikipedia.org/wiki/Format_Windows_Imaging_(WIM) et http://toutwindows.com/ws2008_wds_WIM.shtml </note>
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 fichier | Suppression possible ou action à effectuer |
---|---|
bootfix.bin | Ces 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. |
.bak | Les 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.sif | On 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.bin | On 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>
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).
D:\DVD\SETUP\UBCD503\
, qui contiendra tous les fichiers d'Ultimate Boot CD. Le nom du dossier rappelle la version.ubcd503.iso
).D:\DVD\SETUP\UBCD503\IMAGES\
dans D:\DVD\IMAGES\
. Cela recrée la même arborescence de fichiers que sur le CD d'origine, ainsi l'appel des images de boot peut se faire sans manipulation particulière.D:\DVD\SETUP\UBCD503\BOOT\
dans D:\DVD\UBCD\
.bbie ubcd503.iso
(si les 2 fichiers sont dans le même répertoire).
image1.bin
obtenu en ubcd503.dat
que l'on place dans D:\DVD\IMG_BOOT\
.ubcd503.dat
avec un éditeur hexadécimal (comme Free Hex Editor). Rechercher les occurences de /boot
et les remplaçer par /ubcd
. Sauvegarder le fichier.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
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
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.
@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”.
[SetupData]CatalogSubDir="\i386" [SetupHotfixesToRun] CMD\RunOnce.cmd
<note tip>
</note>
@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.
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
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
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 !
Suivre ce guide.
Suivre ce guide