Accueil - FAQ - ModBoot -  CD de démarrage -  CD MultiBoot - PE Builder - Ultime DVD - Scr2Htm

Utiliser Windows depuis un CD-Rom


Version 1.0
Page créée le : 31 janvier 2003 (en fait le 25 mais publiée le 31)
Dernière mise à jour : 14 mars 2003 (suppression de la traduction d'origine non retravaillée)


» Introduction
» Matériel et logiciel nécessaire
» Télécharger les utilitaires
» Procédure pas à pas
» Quelques problèmes rencontrés
» Remerciements

 Introduction et principe

Attention, si vous avez Windows XP, utilisez PE Builder, qui fonctionne correctement et est beaucoup plus puissant !

Il a souvent été dit que Windows devait fonctionner depuis un média inscriptible (disque dur), car sinon il y a plusieurs messages signalant des problèmes d'accès à la base de registre. Mais c'est surtout cosmétique, et Windows peut démarrer et fonctionner depuis un CD-Rom.

Cette page explique comment éliminer les messages d'erreur et optimiser le démarrage depuis le CD-Rom, pour utiliser Windows 9x (Windows 95b et Windows 98), éventuellement sans disque dur.

Les avantages à démarrer Windows depuis un CD-Rom :

En fait, tout le problème vient des accès en écriture dans la base de registre. Un CD-Rom avec Windows fonctionnerait, mais en se plaignant sans cesse de ne pas pouvoir écrire. Il faut donc placer la base de registre sur un disque virtuel (ramdisk). La solution est donc basée sur une installation de Windows sur un CD-Rom, dont la base de registre est sur un disque virtuel (8 Mo suffisent pour la base de registre), ce qui permet de l'écrire, sans accès à un disque dur.

Cette page est une traduction/amélioration de c't 11/99, page 206 - Booting Windows From CD-Rom (en anglais).

Cette procédure est non destructrice pour l'installation actuelle de Windows, si on prend garde à bien respecter les instructions et que l'on fait les sauvegardes.

Attention, cette page est encore en construction (amélioration), et à considérer en version Bêta (mais devrait fonctionner), je suis preneur de vos commentaires. Merci de me renvoyer vos retours d'expérience, réussie ou pas, avec vos remarques, pour pouvoir améliorer cette page.

 Matériel et logiciels nécessaires

Pour créer un CD-Rom démarrable Windows, il vous faudra aussi une installation fonctionnelle de Windows, une connaissance des commandes DOS, et environ 3 heures, à cause des nombreux redémarrages nécessaires.

 Télécharger quelques utilitaires nécessaires


Téléchargez xmsdsk, écrit par Franck Uberto.
Téléchargez tweak UI (en français tant qu'à faire).

 Procédure pas à pas pour créer votre CD avec Windows utilisable


J'ai essayé de retravailler la procédure, pour bien faire apparaitre à chaque étape ce qu'il faut faire exactement, dans quel ordre et avec quel outil. J'essaie d'expliquer pourquoi chaque étape est nécessaire. Cela peut paraitre long, mais en fait, chaque étape est simple, et il n'y a pas à se poser de question par rapport aux grands paragraphes descriptifs du texte d'origine.

Attention, je n'ai pas testé très fortement cette méthode, mais j'ai vu sur des sites (en anglais) que plusieurs personnes avaient réussi à construire un tel CD-Rom. Je vous conseille de créer d'abord un CD-Rom simple, et ensuite d'ajouter nombre de vos programmes. Faites moi part de vos retours d'expériences (positifs ou négatifs)...

Voici les étapes à suivre (vous devriez imprimer cette page) :
Sauf indication contraire, les opérations peuvent (doivent) êtres effectuées directement depuis Windows.

  1. Téléchargez les utilitaires nécessaires.

  2. Créez quelques répertoires sur votre disque dur :
    • C:\work pour placer les fichiers utilitaires pour créer l'installation
    • C:\cdrom pour stocker tout ce qui sera sur le CD-Rom
    • C:\cdrom\ramdisk pour stocker tout ce qui sera copié sur le disque virtuel
    • C:\cdrom\ramdisk\winq pour stocker les fichiers Windows à placer sur le disque virtuel
    • C:\backup pour sauvegarder vos fichiers d'origine


  3. Copiez vos fichiers d'origine ("msdos.sys", "io.sys", "config.sys" et "autoexec.bat") depuis C:\ vers C:\backup pour vous faire une copie de sauvegarde qui vous permettra de restaurer votre Windows d'origine.

  4. Copiez le répertoire d'installation de Windows (win95 ou win98), depuis le CD d'installation d'origine sur votre disque dur (C:\win95 ou C:\win98). Cela permettra une installation plus rapide et évitera d'avoir à charger les pilotes de CD-Rom pour la phase d'installation.

  5. Copiez dans le répertoire C:\work les fichiers "dblbuff.sys", "himem.sys", "ifshlp.sys" et "setver.exe" depuis votre répertoire Windows, ainsi que les fichiers "attrib.exe", "edit.com", "keyb.com", "keyboard.sys", "mscdex.exe", "subst.exe", "xcopy.exe", "xcopy32.exe" (et "xcopy32.mod" pour Windows 98) depuis le répertoire \windows\command.

  6. Copiez également dans le répertoire C:\work le fichier "xmsdsk.exe" (qui servira pour créer le disque virtuel).

  7. Créez une disquette de démarrage. Créez le fichier "A:\autoexec.bat" avec les lignes suivantes :
           @echo off
           c:\work\subst.exe R: c:\cdrom
           path c:\;c:\work
           keyb fr

    Principe : le CD-Rom (terminé) utilisera le lecteur R: (fin de l'alphabet), ce qui permet d'être certain que cette lettre de lecteur sera libre, même si on a beaucoup de partitions. Nous utilisons la commande DOS subst.exe, pour assigner une lettre de lecteur (R:) à un répertoire du disque dur (C:\cdrom). Cela permettra d'installer Windows sur le disque R:, pour que tous les liens soient corrects dans la base de registre.

  8. Supprimez le fichier "C:\config.sys" (vous avez bien fait votre sauvegarde ?).

  9. Redémarrez l'ordinateur sous Dos (avec F8 au démarrage) pour protéger l'installation actuelle de Windows.

    Renommez tous les fichiers "win.com", "system.ini" et "system.dat" de tous les répertoires Windows de toutes les partitions (utilisez la commande attrib -r -h -s pour enlever les attributs systèmes et pouvoir renommer les fichiers).

    Principe : si Windows ne trouve pas la base de registre à l'emplacement pas défaut au démarrage, il cherche un fichier "system.dat" (qui contient la base de registre) sur toutes les partitions et démarre à partir de ce fichier. Cela peut faire démarrer un mauvais fichier "system.dat" et occasionner des soucis.

  10. Réinstallez Windows en lançant "setup.exe" (ou "install.exe") depuis le répertoire contenant les fichiers d'installation (C:\win95 ou C:\win98), que vous avez copié sur le disque dur. Setup se plaindra que subst est chargé, mais ce n'est pas grave, appuyez sur "Echap" pour continuer, puis sur "Entrée" pour continuer.

    Attention : utilisez R:\Win comme répertoire de destination de l'installation (et pas C:\Windows).

    Paramétrez l'installation de Windows à votre goût.

  11. Le premier redémarrage de l'installation doit se faire depuis la disquette que vous avez créée (ignorer l'avertissement d'enlever toutes les disquettes).
    En effet, quand Windows est installé sur un disque réseau (ou virtuel avec subst), les chemins dans "config.sys" et "autoexec.bat" ne sont pas corrects. On redémarre donc depuis la disquette pour les corriger, et ajouter "ifshlp.sys", qui permet de gérer la VFAT, à "config.sys".
    Editez "c:\config.sys" avec edit et vérifiez qu'il contient au moins :
           devicehigh=c:\work\himem.sys
           devicehigh=c:\work\ifshlp.sys
           devicehigh=c:\work\dblbuff.sys
           devicehigh=c:\work\setver.exe

    et corrigez tous les autres chemins nécessaires.

    Les chemins pour le nouveau Windows (et Windows\command) doivent être complets pour le futur CD. Sinon, Windows ne trouvera pas "win.com" en démarrant. Editez "c:\autoexec.bat" avec edit et vérifiez qu'il contient au moins :
           @echo off
           c:\work\subst.exe R: c:\cdrom
           path c:\work;r:\win;r:\win\command;r:\win\system
           keyb fr

    et corrigez tous les autres chemins nécessaires.

  12. Retirez la disquette et redémarrez l'ordinateur pour terminer votre installation.

  13. Il faut maintenant paramétrer Windows à votre guise (clé de produit...), et installer tous les pilotes nécessaires, ainsi que les applications de votre choix.

  14. Préparation d'utilisation de la lettre (Q:) du disque virtuel (avec un lecteur virtuel créé par subst).
    Editez c:\autoexec.bat pour ajouter sous (en plus) la ligne subst :
           c:\work\subst.exe Q: c:\cdrom\ramdisk

    L'emplacement des fichiers de la base de registre est spécifié dans le fichier "msdos.sys" du disque de démarrage ("C:\msdos.sys"). Pour l'éditer, il faut d'abord le rendre accessible avec "attrib -s -h -r c:\msdos.sys". Ensuite, adaptez les chemins des premières lignes ainsi :
           [Paths]
           WinDir=q:\winq
           WinBootDir=q:\winq
           HostWinBootDrv=q
    

    Tant que vous éditez le fichier "msdos.sys", ajoutez (ou modifiez) une ligne avec :
           DisableLog=1

    Pour éviter que Windows n'utilise un fichier "system.dat" du disque dur quand démarré depuis le CD-Rom, la base de registre devrait être renommée. Son nom est noté dans "c:\io.sys". Pour le modifier, il faut le rendre visible (avec attrib -s -h -r). Ensuite, l'éditer avec un éditeur hexadécimal (ou "edit /70 c:\io.sys" dans une fenêtre DOS), chercher la chaîne "system.dat" et la remplacer par "system.tat" (vous pouvez laisser le "C:\", il n'a visiblement aucun impact). Cette opération permet que seuls les fichiers nommés "system.tat" soient reconnus comme base de registre, et les fichiers "system.dat" seront ignorés.

    Cette modification est suffisante pour Windows 95, mais pour Windows 98, le nom de la base de registre est enregistré dans le programme de vérification de la base de registre, et on risque un message d'erreur à chaque démarrage en faisant cette modification. Il faut donc désactiver la vérification automatique de la base de registre ("scanregw.exe") au démarrage, avec "msconfig.exe" par exemple.

    Copiez le répertoire du menu démarrer de "c:\cdrom\win" vers "C:\cdrom\ramdisk\winq" maintenant.

  15. Pour remplir votre substitut (temporaire) de disque virtuel, fermez Windows et redémarrez l'ordinateur sous DOS avec votre disquette.

    Copiez les fichiers "system.dat", "system.ini", "user.dat" et "win.ini" depuis "c:\cdrom\win" vers "C:\cdrom\ramdisk\winq" (après les avoir rendu accessibles avec attrib -s -h -r). Si vous avez modifié "io.sys", renommez le fichier "system.dat" du répertoire destination en "system.tat".

  16. Enlevez la disquette et redémarrez, Windows utilisera maintenant la base de registre sur Q:

    Mais Windows a aussi besoin d'écrire dans le répertoire Windows. Nous allons donc mettre ce répertoire en RAM après le démarrage. Sa position est notée dans la base de registre dans la clé HKLM\Software\Microsoft\Windows\CurrentVersion. Utilisez "regedit.exe" pour modifier la valeur de "systemroot" à 'Q:\winq'.

    Redémarrez l'ordinateur.

  17. A présent, le menu démarrer est sur le disque virtuel "Q:\winq" simulé avec subst, mais utilise de la place pour rien. Il faudrait donc le replacer sur le CD.

    Démarrez TweakUI (installez le si ce n'était pas déjà fait) depuis le panneau de configuration, choisissez 'Général' et changez les répertoires pour 'Programmes', 'Menu démarrer' et 'Démarrage' pour utiliser "r:\win\menu démarrer" ou les sous répertoires respectifs. Pour Windows 98, vous devriez aussi modifier 'Bureau' pour utiliser "r:\win\Bureau". En fait, seul le dossier des documents récents devrait rester sur Q:.

    Redémarrez l'ordinateur, les répertoires "q:\winq\Menu démarrer"' et "q:\winq\Bureau" peuvent ensuite être supprimés.

  18. Il est encore temps (mais vite ! ) d'installer les programmes de votre choix ou de modifier les paramètres de Windows. Quand on utilisera le disque virtuel, les changements ne seront plus pris en compte...

    Si après coup vous voulez modifier votre installation existante, il faudra reprendre à partir de cette étape, pour ne pas avoir le ramdisk et que vos modifications soient effectives.

    Attention : un utilisateur me signale que certains programmes de Creative Labs ajoutent des lignes dans autoexec.bat (il faut que je lui demande si c'est juste à l'installation, ce qui ne devrait pas être un problème, ou à l'utilisation), ce qui ne sera pas possible une fois sur le CD-Rom bootable...

  19. Redémarrez l'ordinateur sous DOS avec votre disquette pour pouvoir mettre en place le disque virtuel.

  20. Tapez la commande "attrib -s -h -r c:\cdrom\ramdisk\winq\*.* /s" pour enlever les attributs gênants des fichiers qui doivent aller sur le disque virtuel.

  21. Maintenant, éditez "c:\autoexec.bat" pour supprimer (ou mettre en commentaire avec REM) la ligne "subst Q: c:\cdrom\ramdisk". A la place, ajoutez :

            c:\work\xmsdsk 8000 q: /y /t
            copy c:\command.com q:\
            set COMSPEC=q:\command.com
            c:\work\xcopy c:\cdrom\ramdisk\*.* q:\ /s
    

    Cela crééra un disque virtuel (à la place du subst) et copiera la base de registre et l'interpréteur de commandes sur ce disque virtuel.

    Attention : un utilisateur signale un problème avec cette méthode.

    Redémarrez l'ordinateur.

    Si tout va bien après le redémarrage, vous pouvez supprimer tous les fichiers (et répertoires) dans "C:\cdrom\ramdisk\winq" sauf "system.ini", "user.dat", "win.ini", "control.ini" et "system.tat" ou "system.dat".

  22. Préparer la gravure.

    Avant de graver le CDROM, il faudra passer un "attrib -r -s -h c:\cdrom\ramdisk\winq\*.*", pour enlever les attributs gênants.

    Pour créer un CD-Rom démarrable, il faut une disquette de démarrage, ou un fichier image de disquette de démarrage. Si vous ne pouvez pas créer un CD-Rom démarrable (ou si votre lecteur de CD n'est pas bootable), vous pouvez créer un CD normal et démarrer depuis cette disquette.

    Méthode manuelle de création de la disquette de démarrage (ou regardez un peu plus bas la méthode automatisée) : créez une disquette de démarrage avec "format a: /s" ou "sys a:". Copiez depuis C:\ vers A:\ les fichiers modifiés "io.sys" et "msdos.sys" ainsi que les fichiers "config.sys" et "autoexec.bat" que vous aviez créé sur c:\, en remplacement des fichiers de votre disquette. Ensuite, copiez votre répertoire "C:\work" sur votre disquette (cela créera "A:\work").

    Modifiez "a:\config.sys" pour spécifier les chemins corrects, et les pilotes CD-Rom, du style :

    devicehigh=a:\work\himem.sys
    devicehigh=a:\work\ifshlp.sys
    devicehigh=a:\work\dblbuff.sys
    devicehigh=a:\work\setver.exe
    device=a:\work\aspi8dos.sys
    device=a:\work\aspicd.sys /D:CD001

    Modifiez "a:\autoexec.bat" et remplacez la commande subst par mscdex.exe, pour avoir quelque chose comme :

    a:\work\mscdex.exe /D:CD001 /L:R /M:50
    a:\work\xmsdsk 4000 q: /y /t
    copy a:\command.com q:\
    set COMSPEC=q:\command.com
    a:\work\xcopy r:\ramdisk\*.* q:\ /S
    path q:\;r:\win;r:\win\command;r:\win\system
    r:

    Soyez sur que le buffeur pour mscdex.exe n'est pas trop petit. Avec le classique /M:12 et un disque rapide, Windows risque d'avoir des problèmes au démarrage si les données n'arrivent pas assez vite. Le paramètre /L:R spécifie le lecteur (R:) à utiliser pour le CD-Rom.


    Sinon, utilisez une méthode plus automatisée, basée sur ModBoot : créez une disquette de démarrage avec support CD-Rom, en suivant les explications.

    Copiez depuis C:\ vers A:\ les fichiers modifiés "io.sys" et "msdos.sys".

    Téléchargez le module win9x.cab (1 Ko) et copiez le dans le répertoire \level3 de votre disquette. Déplacez le fichier cdrom.cab du répertoire \level3 vers \level2.

    Voila, votre disquette de démarrage est prête.

  23. Avant de réactiver votre ancien disque système, vous devriez sauvegarder les fichiers "io.sys", "msdos.sys", "config.sys" et "autoexec.bat" depuis c:\ vers un autre répertoire, pour ne pas avoir à tout refaire en cas de problème avec le CD ou si vous souhaitez faire des modifications, ou une autre version. Ensuite, copiez les fichiers depuis c:\backup vers c:\ et remodifiez les fichiers "system.dat", "system.ini" et "win.com" avec leurs noms d'origine.

  24. Il reste à graver les fichiers, avec un système de fichier Joliet (pour les noms longs), en prenant comme racine le répertoire C:\cdrom, et en utilisant la disquette de démarrage pour rendre le CD bootable.

Voila, c'est enfin terminé...

Merci de me faire parvenir vos remarques, retours d'expérience, tout ce qui peut m'aider à améliorer cette page pour que tout le monde en profite !!!

Il faudra que j'affine la fin, avec la fabrication automatisée de la disquette de démarrage, et une procédure de gravage.

Si vous voulez modifier votre installation Windows destinées à fonctionner sur CD-Rom, vous devez remettre en place la ligne "subst Q: c:\cdrom\ramdisk" à la place des 4 lignes mettant en place xmsdsk, et reprendre à cet endroit une fois vos modifications terminées.

Si vous devez basculer entre votre installation d'origine de Windows et celle actuelle, il faut procéder au remplacement des fichiers "io.sys", "msdos.sys", "config.sys" et "autoexec.bat" sur C:\ avec les fichiers sauvegardés et renommer les fichiers du répertoire windows.


 Quelques problèmes rencontrés


Je liste ici quelques problèmes qui ont été rencontrés par des utilisateurs, pour essayer de voir s'ils sont communs à plusieurs personnes, et comment les corriger...
Merci de m'envoyer vos soucis (ou vos solutions) avec un maximum de détail sur la démarche adoptée, le système d'exploitation utilisé, tout ce qui peut aider à cerner (et surtout résoudre) le problème.

  1. Je peux 'booter' depuis le CD-ROM, mais alors, je ne vois qu'un de mes disques durs (j'en ai 2).

    Alors que si je boote à partir de la disquette, je vois, dans l'explorateur, l'ensemble de mes partitions des 2 disques. C'est peut-être une question de temps de réponse du CD-ROM...

    Je ne sais pas vraiment, et je ne comprends pas pourquoi le temps de réponse du CD empecherait de voir les partitions...

  2. Problème à la mise en place du ramdisk : recopie en boucle avec "xcopy" sur le disque virtuel créé avec "xmsdsk".

    La solution trouvée par cet utilisateur est d'utiliser la méthode de la disquette de démarrage de secours de windows 98.

    Dans config.sys, à la place de la ligne xmsdsk :

    devicehigh=a:\ramdrive.sys /E 8000 512 500

    Et dans autoexec.bat (il faut copier le fichier setramd.bat) :
    set EXPAND=YES
    set DIRCMD=/O:N
    set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
    set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
    cls
    call a:\setramd.bat %LglDrv%
    a:\subst Q: %RAMD%:\
    Q:
    mkdir winq
    cd winq
    copy R:\ramdisk\winq\*.*
         

 Remerciements

Les créateurs et traducteurs de la page : c't 11/99, page 206 - Booting Windows From CD-Rom (en anglais).

 

Traduction et modifications par Séverin TERRIER. Tous droits réservés.
Copyright (c) 2003-2003 par Séverin TERRIER. Tous droits réservés.