
                   Le HOWTO Windows 95 + Windows 3.x + Linux

Robert Goodwin, <Robert.Goodwin@mcc.ac.uk>, traduit par Olivier Tharan,
<Olivier.Tharan@int-evry.fr>

   Aot 1996

1. Introduction

   Ce document a d'abord t crit en janvier 1996. J'y ai inclus divers
   commentaires, informations et questions reus depuis lors. Ce document
   est aussi disponible en japonais ; voyez l'ensemble de documentations
   Linux en japonais  http://epsenewsc.kyoto-u.ac.jp/JF/JF.html.

2. Dmarrer plusieurs systmes d'exploitation

   Si vous voulez dmarrer plusieurs systmes d'exploitation (et que vous
   ne voulez pas les dmarrer  partir d'une disquette !), vous avez
   besoin d'utiliser une sorte de _gestionnaire de dmarrage_.

   Windows 95 n'a pas _vraiment_ de gestionnaire de dmarrage -- il a des
   options de dmarrage, mais pour moi on peut configurer un
   ``gestionnaire de dmarrage'' pour dmarrer n'importe quoi.

   On peut configurer Lilo pour dmarrer quasiment n'importe quoi, comme
   le peuvent les gestionnaires de dmarrage d'OS/2 et de Windows NT.
   Lequel vous utilisez dpend entirement de vous ; cela dpend de ce
   que vous voulez sur votre systme. Si vous utilisez le gestionnaire de
   dmarrage d'OS/2, par exemple, il vous ``cache'' les ``autres''
   partitions de genre DOS.

3. Autres endroits  regarder

   Si vous voulez juste Windows 95 et Linux, vous aurez srement besoin
   du HOWTO Windows 95 + Linux. On peut trouver la dernire version  :

http://www.in.net/~jkatz/win95/Linux-HOWTO.html

   On peut installer Windows 95 et Linux sur un mme disque ; les
   problmes couverts dans le reste de ce document tournent autour du
   fait que DOS ne permet pas d'avoir plus d'_une_ partition DOS primaire
   par lecteur.

   Si vous voulez utiliser le gestionnaire de dmarrage de NT, jetez un
   coup d'oeil  http://www.bcpl.lib.md.us/~dbryan/directboot.html. Pour
   ajouter Linux (ou d'autres, comme OS/2), il y a un petit programme
   sympa qui fabrique des fichiers de secteurs de dmarrage pour les
   utiliser avec le chargeur NT. Vous pouvez trouver de l'information
   l-dessus 
   http://ourworld.compuserve.com/homepages/gvollant/otherl.htm.

   Vous pouvez aussi fouiller dans LOADLIN.EXE qui vous permet de
   ``dmarrer'' Linux en dmarrant d'abord sous DOS.

4. Pourquoi ce HOWTO ?

   Ce document traite des problmes suivants :

     * Comment arriver  faire cohabiter Windows 3.x sur la mme machine
       que Windows 95 sans problmes (et que pourraient tre ces
       problmes de toute faon) ;
     * Comment viter les problmes sur une machine sous Windows 95 qui
       peut aussi tre dmarre sous DOS  distance ;
     * Comment installer Windows 95 avec Linux sans devoir rinstaller
       Lilo (avec le dmarrage fastidieux de Linux sur disquette).

   Bien que le systme de fichiers de Windows 95 vive au-dessus de la FAT
   standard DOS, il lui fait certaines choses dplaisantes. Dmarrez
   votre machine Windows 95  partir d'une disquette DOS bootable et
   lancez Norton pour vrifier le disque (mais _ne_ le laissez tenter
   aucune rparation ou vous mettrez en l'air quelques noms de fichiers
   ``longs'').

   On me demande en ce moment de supporter des applications  la fois
   dans l'environnement Windows 95 et Windows 3.x (les deux tournent soit
   en local soit dmarrent  partir du rseau). J'ai dvelopp la
   procdure dcrite dans ce document pour me permettre de faire tout
   ceci avec un seul PC.

   Ne demandez pas pourquoi une personne d'Unix a termin dans cette
   position :-)

5. Elments ncessaires

   Si vous tes prpar  vous plonger dans les sources de Lilo (Lilo 1.7
   ou plus, je crois), il est possible de faire tout ceci avec _un_
   disque dur. Ceci fonctionne en changeant le contenu de la table des
   partitions au moment du dmarrage du systme ; si vous n'tes pas
   confiant pour essayer a, ne le faites pas !

   Sinon, vous aurez besoin de _deux_ disques durs. Ceci est d 
   certaines limitations de DOS/Windows concernant le dmarrage et
   l'allocation des lettres de lecteurs. Croyez-moi, j'ai essay de le
   faire fonctionner avec un seul (mais je ne voulais pas changer les
   sources de Lilo).

6. Ce qu'il en ressortira

   Un mot sur les noms de priphriques. J'ai vu des systmes qui
   utilisent /dev/hdc pour nommer le troisime disque IDE (premier disque
   IDE sur le deuxime contrleur) et /dev/hdd pour le quatrime. J'ai
   aussi vu des systmes qui utilisent /dev/hd1a et /dev/hd1b (ce qui
   donne des partitions comme /dev/hd1a3, etc.). Mon systme utilise la
   deuxime mthode de nommage, mais j'ai chang les noms en /dev/hdc et
   /dev/hdd pour limiter les confusions.

   Voici une brve description de ce que j'ai maintenant --- regardez les
   lettres de lecteurs parce qu'elles changent...

   Si vous utilisez un contrleur IDE secondaire, vous aurez peut-tre
   besoin de crer les entres dans /dev vous-mme (/dev/hdc* et
   /dev/hdd*). Ceci peut tre le cas si vous ajoutez un deuxime disque 
   une machine qui a dj un disque IDE et un CD-ROM IDE ; votre deuxime
   disque dur serait /dev/hdc. J'ai essay cet arrangement sans
   problmes.

   J'ai :

     /dev/hda - premier disque dur /dev/hdb - lecteur CD-ROM /dev/hdc -
     deuxime disque dur

   _Option 1 :_
          En allumant la machine, je peux permettre  la _boot ROM_ de la
          carte Ethernet de dmarrer DOS  distance. Le lecteur C: est la
          premire partition DOS sur le _premier_ disque IDE (dans mon
          cas /dev/hda1). Le lecteur D: est la premire partition DOS sur
          le _deuxime_ disque IDE (dans mon cas /dev/hdc1), et le
          lecteur F: est la deuxime partition DOS sur le _deuxime_
          disque IDE (/dev/hdc2). Le CD-ROM devient F:.

   _Option 2 :_
          Permettre  Lilo de dmarrer le systme par dfaut (Linux,
          naturellement).

   _Option 3 :_
          Interrompre Lilo et lui demander une option que j'appelle dos.
          Ceci dmarre DOS  partir de /dev/hda1 et, comme avec l'option
          1, le disque C: est /dev/hda1, le disque D: est /dev/hdc1 et le
          disque E: est /dev/hdc2. Le CD-ROM devient F:.

   _Option 4 :_
          Interrompre Lilo et demander une option que j'appelle win95.
          Ceci dmarre Windows 95  partir de la premire partition DOS
          sur le _deuxime_ disque IDE (dans mon cas /dev/hdc1). Suivez
          ceci avec attention : le disque C: est maintenant la premire
          partition DOS sur le _deuxime_ disque IDE (/dev/hdc1), le
          disque D: est maintenant la premire partition du _premier_
          disque IDE (/dev/hda1), et le disque E: reste la deuxime
          partition DOS sur le _deuxime_ disque IDE (/dev/hdc2). Le
          CD-ROM devient F:.

   Remarquez que le disque C: change selon votre mthode de dmarrage.
   Ceci veut dire que quand vous installez Windows 95, vous l'installez
   dans C:\\WINDOWS, et quand vous installez Windows 3.x, vous
   l'installez dans C:\\WINDOWS mais ce n'est pas le mme endroit :-)

   Remarquez aussi que la troisime partition DOS (que j'utilise comme
   disque de donnes gnral) est E: quelle que soit la manire de
   dmarrer, et que le CD-ROM reste aussi constant.

7. Comment le faire

   En premier, installez Linux ; le disque sur lequel vous l'installez
   n'a pas d'importance, mais comme vous utilisez deux disques il est
   sens de crer une partition de swap sur les deux.

   Crez une partition DOS primaire sur le deuxime disque.
   Malheureusement, le programme DOS FDISK ne vous laissera pas faire
   ceci, vous devez donc utiliser le programme Linux fdisk pour crer la
   partition, mettre le type (6 pour DOS 16 BIT FAT > 32Mb), positionner
   la partition bootable, et suivre _attentivement_ les conseils de la
   page de manuel de fdisk. Celle-ci dcrit comment forcer DOS 
   reconnatre une partition cre de cette manire en utilisant la
   commande dd pour mettre  zro les 512 premiers octets de la
   partition. (En gros, vous faites dd if=/dev/zero of=/dev/XXXX bs=512
   count=1 o XXXX est le priphrique mais soyez _trs_ prudent puisque
   c'est une bonne mthode pour crasher un disque -- par exemple en
   mettant /dev/hda au lieu de /dev/hda1 !)

   Crer la partition DOS primaire sur le premier disque dur peut tre
   fait avec le programme DOS FDISK. Toute autre partition DOS ncessaire
   peut tre cre de la mme manire.

   Les deux partitions primaires doivent tre formates comme des
   partitions DOS bootables ; utilisez FORMAT C: /S et FORMAT D: /S en
   ayant dmarr  partir d'une disquette. Pour viter la confusion,
   donnez aux partitions des noms de volume reconnaissables !

   Editez /etc/lilo.conf pour vous donner l'option de dmarrer  partir
   de l'une des deux partitions DOS primaires. J'ai mis en annexe un
   exemple. Notez l'utilisation de la ligne loader dans ce fichier
   d'exemple. C'est vous qui choisissez sur quelle partition vous
   installez Windows 95 et Windows 3.x ; j'ai utilis le deuxime disque
   dur pour Windows 95 puisque le dmarrage par le rseau de la machine
   donne alors la lettre C: pour le disque DOS normal. De mme (c'est
   utile), installer Windows 95 sur le deuxime disque dur vite d'avoir
    dmarrer Linux  partir d'une disquette de secours et de rinstaller
   Lilo (pourquoi vous devriez faire ceci est expliqu plus bas).
   Rappelez-vous de lancer lilo pour installer les options.

   Si vous pensez ( juste titre) installer Windows 95  partir d'un
   CD-ROM, vous devrez inclure les pilotes correspondants sur la
   partition Windows 95 pour que quand vous dmarrez dessus, le lecteur
   de CD-ROM soit accessible.

   Maintenant dmarrez, en utilisant Lilo, sur le disque que vous voulez
   utiliser pour DOS/Windows 3.x et installez le reste de DOS et de
   Windows 3.x -- l'installation de Windows devrait aller dans le
   rpertoire C:\\WINDOWS comme d'habitude.

   Une fois ceci fait, redmarrez la machine et, en utilisant Lilo,
   dmarrez sur la partition Windows 95. Lancez l'installation de Windows
   95. La procdure d'installation peut suggrer D:\\WINDOWS pour
   installer Windows 95 parce qu'il recherche sur la machine les versions
   existantes de Windows -- _n'acceptez pas ceci_ -- installez Windows 95
   sur C:\\WINDOWS.

   Maintenant, la bonne nouvelle ! Windows 95 est un systme plutt
   arrogant -- quand vous l'installez, il suppose que c'est le seul
   systme d'exploitation sur la machine et continue en crivant son
   propre MBR (Master Boot Record) sur le disque dur. Voici pourquoi vous
   devez en gnral rinstaller Lilo. Si vous avez install Windows 95
   sur le deuxime disque dur, vous avez fait quelque chose que les
   programmeurs de Microsoft(tm) n'ont pas pris en compte. Sur une
   machine o j'ai fait cette opration, Windows 95 a crit son MBR de
   remplacement sur le MBR du _deuxime_ disque dur. Sur une autre, je
   n'ai pas trouv de preuve du tout qu'il l'avait fait. La consquence
   pratique de ceci est que le MBR qui compte, celui du premier disque
   dur, n'est pas chang. Donc quand vous redmarrerez la machine, vous
   serez accueilli par le prompt amical et familier de Lilo.

   Exemple de liste de partitions :

/dev/hda1       *       partition DOS                   (C: ou D: selon le dma
rrage)
/dev/hda2               partition tendue
/dev/hda5               /
/dev/hda6               swap
/dev/hda7               /home

/dev/hdc1       *       partition Windows 95    (C: ou D: selon le dmarrage)
/dev/hdc2               partition DOS                   (toujours E:)
/dev/hdc3               swap

   (Les partitions avec une * sont positionnes bootables (ou _actives_)
   par fdisk.)

   Exemple de lilo.conf :

# /etc/lilo.conf
install = /boot/boot.b
compact
delay = 20              # optionnel, pour les systmes qui dmarrent trs rapid
ement
#prompt                 #  utiliser  la place de delay pour forcer une rpons
e au prompt
#vga = normal   # forcer un tat sain
#ramdisk = 0    # paramtre de paranoaque
#root = current # utiliser la racine "courante"
boot = /dev/hda
image = /boot/vmlinuz
  read-only
  label = linux
other = /dev/hdc1
  label = win95
  loader = /boot/any_d.b
other = /dev/hda1
  table = /dev/hda
  label = dos
image = /boot/vmlinuz.old
  label = linux.old
  optional
  read-only

8. Quelques questions et rponses

   _Est-ce que cette mthode fonctionne avec les disques SCSI ?_
          On m'a dit que a fonctionnait, mais je n'ai pas pu l'essayer
          moi-mme.

   _Est-ce que cette mthode fonctionne si Linux est compltement sur un
          disque, et DOS et Windows 95 sont sur des partitions sur
          l'autre disque ?_
          Non. Les parties DOS et Windows 95 doivent tre toutes les deux
          sur des partitions primaires _DOS_ d'un disque. Il est possible
          de contourner ceci en recompilant Lilo.

   _J'ai tlcharg une FAQ sur Windows 95 qui parle de la possibilit de
          dmarrer soit DOS soit Windows 95. Si j'installe Windows 3.11
          dans un autre rpertoire que windows elle dit que je peux faire
          tourner Windows 95 et Windows 3.11 en harmonie. Il y a une
          partition._
          Oui, on peut le faire. Ceci peut cependant causer des
          problmes. Windows 95 fait des choses bizarres sur le disque
          FAT et certaines oprations que vous effectuerez avec vos
          anciens DOS et Windows (3.x) peuvent facilement dtruire les
          informations sur les noms de fichiers longs. Par exemple,
          dfragmenter le lecteur en utilisant un utilitaire DOS/Windows
          3.x le fera. Vous vous crez aussi des difficults quand a ne
          fonctionne pas ; vous devez vous soucier des fichiers INI sur
          chaque systme _et_ de la _registry_ Windows 95.

   _Est-ce que le LBA est important ?_
          Oui. Houla ! Les BIOS postrieurs  environ 1994 supportent le
          LBA pour contourner une limite quelque part dans le DOS qui
          empche DOS de pouvoir se dbrouiller avec des numros de
          cylindres suprieurs  1024 (ceci est couvert en plus grands
          dtails dans les FAQs sur le matriel PC). Le LBA joue avec la
          gomtrie des disques , en multipliant le nombre de ttes par 2
          ou 4 (etc.) pour diviser le nombre apparent de cylindres par 2
          ou 4 (etc.) et obtenir un nombre de cylindres infrieur  1024.
          Ceci contourne la limite.

          Linux peut manipuler plus de 1024 cylindres ( condition que la
          partition  partir de laquelle vous dmarrez soit entirement
          en-dessous de 1024 cylindres), et peut donc manipuler des
          grands disques (suprieurs  504 Mo) mme sur des vieilles
          machines (BIOS antrieur  1994). Il peut aussi manipuler des
          grands disques avec les BIOS qui supportent le LBA, que le LBA
          soit activ ou pas.

          Il est vital que _tous_ les systmes d'exploitation voient
          chaque disque sous la mme gomtrie -- ceci parce que les
          numros de la table des partitions sont les numros de
          cylindres _perus_, et non les numros rels. Ainsi, changer
          les paramtres du BIOS pour activer le LBA invalidera le
          contenu existant d'un disque.

          Si votre systme Linux ne _voit_ pas la gomtrie _correcte_
          (c'est--dire la mme que _voit_ DOS), vous devrez ajouter une
          ligne dans lilo.conf : append="hd=x,y,z" o x, y, z
          reprsentent la gomtrie du disque (voyez les pages de manuel
          correspondantes).

   _Mon BIOS ne contient des informations que sur deux disques durs et
          non quatre. Est-ce que a a de l'importance ?_
          Srement ! Avoir quatre disques durs avec des vieux BIOS, sous
          DOS demandait l'utilisation d'un logiciel pilote. Les BIOS plus
          rcents contiennent les informations sur les quatre disques.

          Linux peut sans problmes utiliser quatre disques durs mme
          avec la plupart de ces BIOS plus anciens, mais si vous mettez
          une partition DOS sur le disque 3 vous ne serez capable d'y
          accder que par Linux.

          Ceci est pertinent puisque beaucoup de machines possdent un
          disque IDE, un CD-ROM IDE et, si vous voulez mettre ce document
          en pratique, un autre disque IDE.

   Si vous avez trouv ce document utile, merci de me le faire savoir.
