\documentclass{article}
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage[latin1]{inputenc}
\usepackage{epsfig}
\usepackage{null}
\title{Le HOWTO Windows 95 + Windows 3.x + Linux}
\author{Robert Goodwin, {\ttfamily {\(<\)}Robert.Goodwin@mcc.ac.uk{\(>\)}}, traduit par
Olivier Tharan, {\ttfamily {\(<\)}Olivier.Tharan@int-evry.fr{\(>\)}}}
\date{Août 1996}


\begin{document}
\maketitle

\section{Introduction}



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




\section{Démarrer plusieurs systèmes d'exploitation}



Si vous voulez démarrer plusieurs systèmes d'exploitation (et que vous ne voulez pas
les démarrer à partir d'une disquette !), vous avez besoin d'utiliser une sorte de
{\itshape gestionnaire de démarrage\/}.

Windows 95 n'a pas {\itshape vraiment\/} de gestionnaire de démarrage -- il a des options de
démarrage, mais pour moi on peut configurer un ``gestionnaire de démarrage'' pour
démarrer n'importe quoi.

On peut configurer Lilo pour démarrer quasiment n'importe quoi, comme le peuvent les
gestionnaires de démarrage d'OS/2 et de Windows NT. Lequel vous utilisez dépend
entièrement de vous ; cela dépend de ce que vous voulez sur votre système. Si vous
utilisez le gestionnaire de démarrage d'OS/2, par exemple, il vous ``cache'' les
``autres'' partitions de genre DOS.




\section{Autres endroits à regarder}



Si vous voulez juste Windows 95 et Linux, vous aurez sûrement besoin du HOWTO Windows
95 + Linux. On peut trouver la dernière version à :

\begin{tscreen}
\begin{verbatim}
http://www.in.net/~jkatz/win95/Linux-HOWTO.html
\end{verbatim}
\end{tscreen}


On peut installer Windows 95 et Linux sur un même disque ; les problèmes
couverts dans le reste de ce document tournent autour du fait que DOS ne
permet pas d'avoir plus d'{\itshape une\/} partition DOS primaire par lecteur. 

Si vous voulez utiliser le gestionnaire de démarrage de NT, jetez un coup
d'oeil à \url{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 démarrage pour les utiliser
avec le chargeur NT. Vous pouvez trouver de l'information là-dessus à \url{http://ourworld.compuserve.com/homepages/gvollant/otherl.htm}{}.

Vous pouvez aussi fouiller dans {\ttfamily LOADLIN.EXE} qui vous permet de ``démarrer''
Linux en démarrant d'abord sous DOS.




\section{Pourquoi ce HOWTO ?}



Ce document traite des problèmes suivants :

\begin{itemize}
\item Comment arriver à faire cohabiter Windows 3.x sur la même machine que Windows
95 sans problèmes (et que pourraient être ces problèmes de toute façon) ;
\item Comment éviter les problèmes sur une machine sous Windows 95 qui peut aussi
être démarrée sous DOS à distance ;
\item Comment installer Windows 95 avec Linux sans devoir réinstaller Lilo (avec le
démarrage fastidieux de Linux sur disquette).
\end{itemize}


Bien que le système de fichiers de Windows 95 vive au-dessus de la FAT standard DOS,
il lui fait certaines choses déplaisantes. Démarrez votre machine Windows 95 à partir
d'une disquette DOS bootable et lancez Norton pour vérifier le disque (mais {\itshape ne\/}
le laissez tenter aucune réparation 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
démarrent à partir du réseau). J'ai développé la procédure décrite 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 {\ttfamily :-)}




\section{Eléments nécessaires}



Si vous êtes préparé à vous plonger dans les sources de Lilo (Lilo 1.7 ou plus, je
crois), il est possible de faire tout ceci avec {\itshape un\/} disque dur. Ceci fonctionne
en changeant le contenu de la table des partitions au moment du démarrage du système
; si vous n'êtes pas confiant pour essayer ça, ne le faites pas !

Sinon, vous aurez besoin de {\itshape deux\/} disques durs. Ceci est dû à certaines
limitations de DOS/Windows concernant le démarrage 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).




\section{Ce qu'il en ressortira}



Un mot sur les noms de périphériques. J'ai vu des systèmes qui utilisent
{\ttfamily /dev/hdc} pour nommer le troisième disque IDE (premier disque IDE
sur le deuxième contrôleur) et {\ttfamily /dev/hdd} pour le quatrième. J'ai
aussi vu des systèmes qui utilisent {\ttfamily /dev/hd1a} et
{\ttfamily /dev/hd1b} (ce qui donne des partitions comme {\ttfamily /dev/hd1a3},
etc.). Mon système utilise la deuxième méthode de nommage, mais j'ai
changé les noms en {\ttfamily /dev/hdc} et {\ttfamily /dev/hdd} pour limiter les
confusions.

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

Si vous utilisez un contrôleur IDE secondaire, vous aurez peut-être besoin
de créer les entrées dans {\ttfamily /dev} vous-même ({\ttfamily /dev/hdc*} et
{\ttfamily /dev/hdd*}).  Ceci peut être le cas si vous ajoutez un deuxième
disque à une machine qui a déjà un disque IDE et un CD-ROM IDE ; votre
deuxième disque dur serait {\ttfamily /dev/hdc}.  J'ai essayé cet arrangement
sans problèmes. 

J'ai :

\begin{tscreen}
/dev/hda - premier disque dur
/dev/hdb - lecteur CD-ROM
/dev/hdc - deuxième disque dur
\end{tscreen}


\begin{description}


\item[Option 1 :] \mbox{}

En allumant la machine, je peux permettre à la {\itshape boot ROM\/} de la
carte Ethernet de démarrer DOS à distance. Le lecteur {\ttfamily C:} est la première
partition DOS sur le {\itshape premier\/} disque IDE (dans mon cas {\ttfamily /dev/hda1}). Le
lecteur {\ttfamily D:} est la première partition DOS sur le {\itshape deuxième\/} disque IDE (dans
mon cas {\ttfamily /dev/hdc1}), et le lecteur {\ttfamily F:} est la deuxième partition DOS sur
le {\itshape deuxième\/} disque IDE ({\ttfamily /dev/hdc2}). Le CD-ROM devient {\ttfamily F:}.



\item[Option 2 :] \mbox{}

Permettre à Lilo de démarrer le système par défaut (Linux,
naturellement).



\item[Option 3 :] \mbox{}

Interrompre Lilo et lui demander une option que j'appelle {\ttfamily dos}.
Ceci démarre DOS à partir de {\ttfamily /dev/hda1} et, comme avec l'option 1, le disque
{\ttfamily C:} est {\ttfamily /dev/hda1}, le disque {\ttfamily D:} est {\ttfamily /dev/hdc1} et le disque
{\ttfamily E:} est {\ttfamily /dev/hdc2}. Le CD-ROM devient {\ttfamily F:}.



\item[Option 4 :] \mbox{}

Interrompre Lilo et demander une option que j'appelle {\ttfamily win95}.
Ceci démarre Windows 95 à partir de la première partition DOS sur le {\itshape deuxième\/}
disque IDE (dans mon cas {\ttfamily /dev/hdc1}). Suivez ceci avec attention : le disque
{\ttfamily C:} est maintenant la première partition DOS sur le {\itshape deuxième\/} disque IDE
({\ttfamily /dev/hdc1}), le disque {\ttfamily D:} est maintenant la première partition du
{\itshape premier\/} disque IDE ({\ttfamily /dev/hda1}), et le disque {\ttfamily E:} reste la deuxième
partition DOS sur le {\itshape deuxième\/} disque IDE ({\ttfamily /dev/hdc2}). Le CD-ROM devient
{\ttfamily F:}.



\end{description}


Remarquez que le disque {\ttfamily C:} change selon votre méthode de démarrage.
Ceci veut dire que quand vous installez Windows 95, vous l'installez dans
{\ttfamily C:\\WINDOWS}, et quand vous installez Windows 3.x, vous l'installez
dans {\ttfamily C:\\WINDOWS} mais ce n'est pas le même endroit {\ttfamily :-)}

Remarquez aussi que la troisième partition DOS (que j'utilise comme disque
de données général) est {\ttfamily E:} quelle que soit la manière de démarrer, et que le
CD-ROM reste aussi constant.




\section{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 créer une
partition de swap sur les deux.

Créez une partition DOS primaire sur le deuxième disque. Malheureusement, le
programme DOS {\ttfamily FDISK} ne vous laissera pas faire ceci, vous devez donc utiliser le
programme Linux {\ttfamily fdisk} pour créer la partition, mettre le type (6 pour {\ttfamily DOS 16
BIT FAT > 32Mb}), positionner la partition bootable, et suivre {\itshape attentivement\/} les
conseils de la page de manuel de {\ttfamily fdisk}. Celle-ci décrit comment forcer DOS à
reconnaître une partition créée de cette manière en utilisant la commande {\ttfamily dd}
pour mettre à zéro les 512 premiers octets de la partition. (En gros, vous faites
{\ttfamily dd if=/dev/zero of=/dev/XXXX bs=512 count=1} où {\ttfamily XXXX} est le périphérique
mais soyez {\itshape très\/} prudent puisque c'est une bonne méthode pour crasher un disque
-- par exemple en mettant {\ttfamily /dev/hda} au lieu de {\ttfamily /dev/hda1} !)

Créer la partition DOS primaire sur le premier disque dur peut être fait avec le
programme DOS {\ttfamily FDISK}. Toute autre partition DOS nécessaire peut être créée de la
même manière.

Les deux partitions primaires doivent être formatées comme des partitions DOS
bootables ; utilisez {\ttfamily FORMAT C: /S} et {\ttfamily FORMAT D: /S} en ayant démarré
à partir d'une disquette. Pour éviter la confusion, donnez aux partitions des noms de
volume reconnaissables !

Editez {\ttfamily /etc/lilo.conf} pour vous donner l'option de démarrer à partir de
l'une des deux partitions DOS primaires. J'ai mis en annexe un exemple. Notez
l'utilisation de la ligne {\ttfamily 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 deuxième disque dur pour Windows 95 puisque le démarrage par le réseau de
la machine donne alors la lettre {\ttfamily C:} pour le disque DOS normal. De même (c'est
utile), installer Windows 95 sur le deuxième disque dur évite d'avoir à démarrer
Linux à partir d'une disquette de secours et de réinstaller Lilo (pourquoi vous
devriez faire ceci est expliqué plus bas). Rappelez-vous de lancer {\ttfamily 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
démarrez dessus, le lecteur de CD-ROM soit accessible.

Maintenant démarrez, 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 répertoire {\ttfamily C:\\WINDOWS} comme
d'habitude.

Une fois ceci fait, redémarrez la machine et, en utilisant Lilo, démarrez sur la
partition Windows 95. Lancez l'installation de Windows 95. La procédure
d'installation peut suggérer {\ttfamily D:\\WINDOWS} pour installer Windows 95
parce qu'il
recherche sur la machine les versions existantes de Windows -- {\itshape n'acceptez pas
ceci\/} -- installez Windows 95 sur {\ttfamily C:\\WINDOWS}.

Maintenant, la bonne nouvelle ! Windows 95 est un système plutôt arrogant -- quand
vous l'installez, il suppose que c'est le seul système d'exploitation sur la machine
et continue en écrivant son propre MBR (Master Boot Record) sur le disque dur. Voici
pourquoi vous devez en général réinstaller Lilo. Si vous avez installé Windows 95 sur
le deuxième 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 opération,
Windows 95 a écrit son MBR de remplacement sur le MBR du {\itshape deuxième\/} disque dur.
Sur une autre, je n'ai pas trouvé de preuve du tout qu'il l'avait fait. La
conséquence pratique de ceci est que le MBR qui compte, celui du premier disque dur,
n'est pas changé. Donc quand vous redémarrerez la machine, vous serez accueilli par
le prompt amical et familier de Lilo.

Exemple de liste de partitions :

\begin{tscreen}
\begin{verbatim}
/dev/hda1       *       partition DOS                   (C: ou D: selon le démarrage)
/dev/hda2               partition étendue
/dev/hda5               /
/dev/hda6               swap
/dev/hda7               /home

/dev/hdc1       *       partition Windows 95    (C: ou D: selon le démarrage)
/dev/hdc2               partition DOS                   (toujours E:)
/dev/hdc3               swap
\end{verbatim}
\end{tscreen}


(Les partitions avec une {\ttfamily *} sont positionnées bootables (ou {\itshape actives\/}) par
{\ttfamily fdisk}.)

Exemple de {\ttfamily lilo.conf} :

\begin{tscreen}
\begin{verbatim}
# /etc/lilo.conf
install = /boot/boot.b
compact
delay = 20              # optionnel, pour les systèmes qui démarrent très rapidement
#prompt                 # à utiliser à la place de delay pour forcer une réponse au prompt
#vga = normal   # forcer un état sain
#ramdisk = 0    # paramètre de paranoïaque
#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
\end{verbatim}
\end{tscreen}





\section{Quelques questions et réponses}



\begin{description}


\item[Est-ce que cette méthode fonctionne avec les disques SCSI ?] \mbox{}

On m'a dit que ça
fonctionnait, mais je n'ai pas pu l'essayer moi-même.



\item[Est-ce que cette méthode fonctionne si Linux est complètement sur un disque, et
DOS et Windows 95 sont sur des partitions sur l'autre disque ?] \mbox{}

Non. Les parties DOS
et Windows 95 doivent être toutes les deux sur des partitions primaires {\itshape DOS\/} d'un
disque. Il est possible de contourner ceci en recompilant Lilo.



\item[J'ai téléchargé une FAQ sur Windows 95 qui parle de la possibilité de démarrer
soit DOS soit Windows 95. Si j'installe Windows 3.11 dans un autre répertoire que
{\ttfamily windows} elle dit que je peux faire tourner Windows 95 et Windows 3.11 en
harmonie. Il y a une partition.] \mbox{}

Oui, on peut le faire. Ceci peut cependant causer
des problèmes. Windows 95 fait des choses bizarres sur le disque FAT et certaines
opérations que vous effectuerez avec vos anciens DOS et Windows (3.x) peuvent
facilement détruire les informations sur les noms de fichiers longs. Par exemple,
défragmenter le lecteur en utilisant un utilitaire DOS/Windows 3.x le fera. Vous vous
créez aussi des difficultés quand ça ne fonctionne pas ; vous devez vous soucier des
fichiers {\ttfamily INI} sur chaque système {\itshape et\/} de la {\itshape registry\/} Windows 95.



\item[Est-ce que le LBA est important ?] \mbox{}

Oui. Houla ! Les BIOS postérieurs à environ
1994 supportent le LBA pour contourner une limite quelque part dans le DOS qui
empêche DOS de pouvoir se débrouiller avec des numéros de cylindres supérieurs à 1024
(ceci est couvert en plus grands détails dans les FAQs sur le matériel PC). Le LBA
joue avec la géométrie des disques , en multipliant le nombre de têtes par 2 ou 4
(etc.) pour diviser le nombre apparent de cylindres par 2 ou 4 (etc.) et obtenir un
nombre de cylindres inférieur à 1024. Ceci contourne la limite.

Linux peut manipuler plus de 1024 cylindres (à condition que la partition à partir de
laquelle vous démarrez soit entièrement en-dessous de 1024 cylindres), et peut donc
manipuler des grands disques (supérieurs à 504 Mo) même sur des vieilles machines
(BIOS antérieur à 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 {\itshape tous\/} les systèmes d'exploitation voient chaque disque sous la
même géométrie -- ceci parce que les numéros de la table des partitions sont les
numéros de cylindres {\itshape perçus\/}, et non les numéros réels. Ainsi, changer les
paramètres du BIOS pour activer le LBA invalidera le contenu existant d'un disque.

Si votre système Linux ne {\itshape voit\/} pas la géométrie {\itshape correcte\/} (c'est-à-dire la
même que {\itshape voit\/} DOS), vous devrez ajouter une ligne dans {\ttfamily lilo.conf} :
{\ttfamily append="hd=x,y,z"} où {\ttfamily x}, {\ttfamily y}, {\ttfamily z} représentent la géométrie du disque
(voyez les pages de manuel correspondantes).



\item[Mon BIOS ne contient des informations que sur deux disques durs et non quatre.
Est-ce que ça a de l'importance ?] \mbox{}

Sûrement ! Avoir quatre disques durs avec des
vieux BIOS, sous DOS demandait l'utilisation d'un logiciel pilote. Les BIOS plus
récents contiennent les informations sur les quatre disques.

Linux peut sans problèmes utiliser quatre disques durs même 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 accéder que par Linux.

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



\end{description}


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



\end{document}
