NT OS Loader + Linux mini-HOWTO

Bernd Reichert, <reichert@dial.eunet.ch> Version française : Etienne BERNARD <bernard@isia.cma.fr> v1.11, 2 September 1997

Ce document décrit l’utilisation du chargeur de système d’exploitation de Windows NT pour démarrer Linux. Cette procédure a été testée avec Windows NT 4.0 Workstation et Linux 2.0

1 Comment fonctionne le Chargeur NT

Le chargeur de système d’exploitation de NT aime avoir le secteur de boot des autres systèmes d’exploitation sous forme de fichier. Il lit le fichier, et lance le système d’exploitation sélectionné, c’est-à-dire Window NT, sous différents modes, ou n’importe quel autre OS (système d’exploitation).

2 Trucs et astuces pour installer Windows NT et Linux sur le même système

2.1 Installation de Windows NT

Essayez d’installer Windows NT en premier. Si vous désirez utiliser le système de fichier NTFS pour votre partition dédiée à Window NT, n’oubliez pas que Linux ne permet pas encore d’écrire sur les partitions NTFS. Le driver, encore béta, pour faire cela se trouve à http://www.informatik.hu-berlin.de/˜ loewis/ntfs. Vous devriez créer une partition FAT pour l’échange de données, ou vous pouvez aussi utiliser des disquettes au format DOS.

2.2 Partitionnement

Un autre Mini-HOWTO vous conseille de ne pas utiliser l’”administrateur de disque” de Windows NT pour créer les partitions racine et de swap de Linux. Il est suffisant de laisser un espace libre. Je recommande également d’utiliser le fdisk de Linux plus tard.

2.3 Installation de Linux

A présent, démarrez Linux à partir des disquettes, puis créez la partition root et celle de swap. fdisk considère que la partition NTFS est une partition HPFS. C’est normal. Démarrez à nouveau depuis les disquettes, et installez Linux à votre convenance.

Au cas où la procédure d’installation vous proposerait de monter la partition HPFS qu’il a trouvé, ignorez cela.

2.4 Lilo

Une fois que vous avez atteint la section dédiée à Lilo, spécifiez votre partition root de linux en tant que périphérique de démarrage, car le Master Boot Record (MBR) de votre disque dur est occupé par Windows NT. Cela signifie que les entrées root et boot dans le fichier /etc/lilo.conf ont les mêmes valeurs. Si vous avez un disque dur IDE, et que la partition dédiée à Linux se trouve sur la deuxième partition, l’entrée correspondant à boot dans le fichier /etc/lilo.conf devrait ressembler à :

     boot=/dev/hda2

Si vous possédez deux disques dur, et que Linux se trouve sur la première partition du second disque, la section boot du fichier /etc/lilo.conf ressemble à :

     boot=/dev/hdb1

Configurez lilo pour utiliser un noyau correspondant à votre système. Au préalable, si vous n’êtes pas sûr de vous, vérifiez le noyau en démarrant depuis une disquette.

Si vous ne pouvez pas booter sous Windows NT, vous avez un problème. J’espère que vous avez créé une disquette de réparation récemment.

3 Le programme Bootpart

Il existe un programme pour Windows NT, nommé bootpart et écrit par G. Vollant qui peut réaliser le travail des deux prochains points pour vous. bootpart peut être récupéré sur http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

Si vous décidez de faire vous même ce que fait ce programme, utilisez les procédures décrites aux points 5 et 6.

4 Le travail à faire sous Linux

Vous devrez démarrer à partir de disquettes tant que la partie du travail à réaliser sous NT ne sera pas achevée.

Vous devez récupérer le secteur de démarrage de votre partition root Linux. Si on suppose que votre partition Linux se trouve sur /dev/hda2, la commande à utiliser est :

     # dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Si le fichier bootsect.lnx fait plus de 512 octets, il y a eu un problème.

A présent, copiez le fichier bootsect.lnx sur une disquette au format DOS, si c’est la moyen que vous utilisez pour transférer des fichiers sur votre partition NTFS.

Vous pouvez utiliser la commande

     # mcopy /bootsect.lnx a:

ou bien

     # mount -t msdos /dev/fd0 /mnt
     # copy /bootsect.lnx /mnt
     # umount /mnt

5 Le travail à faire sous Windows NT

Copiez le fichier de la disquette sur C:\bootsect.lnx. Je ne vous explique pas comment faire.

Le fichier c:\boot.ini est à Windows NT ce que /etc/lilo.conf/ est à Linux. Enlevez les attributs système et lecture seule avant de le modifier, avec la commande :

     C:\> attrib -s -r c:\boot.ini

Editez, avec notepad par exemple, le fichier boot.ini, comme suit :

     [boot loader]
     timeout=30
     default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
     [operating systems]
     multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
     multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
     C:\BOOTSECT.LNX="Linux"

Seule la dernière ligne a été ajoutée sur cet exemple. Si vous avez changé boot.ini, restaurez les attributs du fichiers à leur valeurs initiales, avec la commande :

     C:\attrib +s +r c:\boot.ini

Aprés un redémarrage de votre Windows NT, vous devriez voir apparaître ceci :

       OS Loader V4.00
       Please select the operating system to start:
       Windows NT Workstation Version 4.0
       Windows NT Workstation Version 4.0 [VGA mode]
       Linux

(NdT: Je ne sais pas ce que cela donne pour la version française de Windows NT)

Sélectionnez Linux et vous verrez apparaître

       LILO loading Linux ....

6 Même joueur joue encore

A chaque fois que le secteur de démarrage de votre partition Linux est modifié, vous devez transférer une nouvelle copie de bootsect.lnx vers C:\BOOTSECT.LNX. Cela est par exemple nécessaire lorsque vous installez un nouveau noyau avec lilo. Comme vous pouvez le constater, un tel système n’est pas idéal pour tester des noyaux expérimentaux.

7 En cas de problème...

Si cela ne fonctionne pas comme prévu, vérifiez que vous pouvez booter à l’aide d’une disquette. Si /dev/hdb1 est votre partition Linux, votre fichier /etc/lilo.conf devrait avoir les entrées suivantes :

     root=/dev/hdb1
     boot=/dev/fd0

Lancez lilo avec une disquette dans le lecteur, puis essayez de démarrer à partir de cette disquette. Si Linux sur /dev/hdb1 ne peut être démarré, le chargeur NT ne pourra pas le lancer non plus. Si vous voyez apparaître une floppée de 01 01 01 01, c’est que votre secteur de démarrage ne peut être accédé. Vérifiez que tous vos disques sont reconnus par le BIOS.

Si votre disquette vous permet de démarrer Linux, vous pouvez récupérer le secteur de démarrage de la disquette pour le chargeur NT avec la commande :

     # dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

Vous pouvez garder cette disquette, qui servira de disquette de secours, au cas où votre installation de Windows NT empêche le démarrage de Linux.

8 Références

– Le mini-HOWTO Linux+WindowsNT

– La FAQ de FreeBSD 2.x

9 Remerciements

– Merci à Xiaoming Yi pour m’avoir indiqué que la procédure fonctionnait également pour les disques autres que le premier.

– Merci à Frank Dennler pour l’astuce de la disquette.

10. Commentaires 5

10 Commentaires

Tous les commentaires sont les bienvenus.