La tanière d'Ustilago

valid-css !

Valid XHTML 1.0!

Introduction

Quant on débute sous Linux on souhaite souvent garder Windows sous la main. Si l'on a un disque dur suffisamment grand cela ne devrait pas poser de gros problèmes.

Il existe différentes solutions. On peut lancer Linux à partir d'une disquebe d'amorçage, mais c'est peu pratique. On peut utiliser un logiciel d'amorçage, qui propose au démarrage de choisir quel OS lancer. Le plus populaire est lilo, c'est celui qui est installé par défaut par Debian (et d'autres distributions). Sinon il y a aussi grub qui est proposé par l'installation de la Mandrake et de Connectiva Linux entre autres.

La première chose à savoir avant de commencer c'est qu'il peut y avoir un problème si vous avez une interface IDE. En effet les BIOS anciens ne peuvent accéder au démarrage qu'aux 1024 premiers cylindres.

Les versions anciennes de lilo (antérieures à 21) présentent la même limitation. Si c'est votre cas vous devez veiller à installer linux en-dessous de cebe limite. Ceci ne concerne que les disques de grande capacité, mon ancien disque de 3,2 Go n'abeignait pas cebe limite.

Pour les versions récentes de lilo (j'utilise la 21.4.3) il faut utiliser l'option '-L' qui oblige lilo à utiliser l'adressage LBA 32-bits, à condition bien sûr d'avoir activée cebe option dans votre BIOS (ce qui est le cas par défaut sur mon portable, et ma carte mère ASUS A7M166).

Agencement de mon disque dur

Maintenant passons à la pratique. La configuration de lilo se fait à travers le fichier /etc/lilo.conf. Voici comment est partitionné mon disque dur de 11,2 Go :

                              Disque Dur: /dev/hda
                            Size: 12068904960 bytes
              Têtes: 255   Secteurs par Piste: 63  Cylindres: 1467

    Nom         Drapeaux   Type de SF Type SF          [Label]        Taille(Mo)
 ------------------------------------------------------------------------------
    hda1        Boot        Primaire  FAT16            [WIN98      ]    2146,80
    hda2                    Primaire  Inconnu (A9)                      2146,77*
                            Pri/Log   Espace Libre                         0,04*
    hda5                    Logique   Win95 FAT32                       2146,80
    hda6                    Logique   Linux ext2                        2146,80
    hda7                    Logique   Linux swap                         131,61
    hda8                    Logique   Linux ext2                        2146,80
    hda9                    Logique   FAT16            [MP3        ]    1200,90

Bon, alors accrochez-vous, c'est pas trivial:

Je veux donc, au démarrage, pouvoir choisir entre Windows, NetBSD et mes 2 systèmes Linux (le système de test contenant plusieurs noyaux).

Le fichier de configuration

Voici détaillé le contenu de mon fichier /etc/lilo.conf :

# fichier de config de lilo
# /etc/lilo.conf

boot = /dev/hda         # indique que lilo s'installe sur le MBR du premier disque IDE
compact 
install = /boot/boot.b  # localisation du fichier que lilo recopie sur le secteur de boot
map = /boot/map         # fichier généré par lilo lors de son installation
prompt                  # propose un choix au démarrage
timeout=90              # durée de ce choix en millisecondes (90 = 9 secondes)
default=dos		# système amorcé par défaut

# partition windows sur /dev/hda1
other = /dev/hda1	# emplacement de la partition
   table = /dev/hda	# emplacement de la table de partition
   label = dos		# nom du système pour le menu d'amorçage

# partition NetBSD sur /dev/hda2
other = /dev/hda2
   table = /dev/hda
   label = netbsd

# système Linux principal sur /dev/hda8
image = /boot/vmlinuz-2.2.17	# emplacement du noyau
   label = linux		# nom du système pour le menu d'amorçage
   root = /dev/hda8		# emplacement de la partition racine
   vga = 0x314 			# 800x600 16 bits en FrameBuffer

# système Linux de test sur /dev/hda6 avec 2 noyaux au choix
image = /boot/vmlinuz-2.2.17	# premier noyau
   label = test
   root = /dev/hda6
   vga = 0x314 

image = /boot/vmlinuz-2.4.0	# deuxième noyau, sur la même partition racine
   label = test4
   root = /dev/hda6
   vga = 0x314
      

Voilà, il ne reste plus qu'à installer lilo avec la commande /sbin/lilo -L en tant que root. Si tout se passe bien vous devriez avoir ceci :

$ sudo /sbin/lilo -L
Added dos *
Added netbsd
Added linux
Added test
Added test4

Réamorçage

Il ne vous reste plus qu'à réamorcer votre système pour voir si tout marche: /sbin/shutdown -r now. Je ne saurais trop vous conseiller de toujours avoir une disquette d'amorçage disponible au cas ou ... Ça peut éviter de devoir tout réinstaller. A défaut un CD-ROM amorçable (celui que vous avez utiliser pour l'installation par exemple) peut également faire l'affaire.

Vous devriez vous retrouver avec l'invite :

boot:

si tout se passe bien. Vous pouvez soit attendre que lilo lance le système par défaut, soit entrer le nom du système que vous voulez lancer. Abention, à ce moment là le clavier est en qwerty ! Si vous ne vous souvenez plus du nom que vous avez donné à votre système, une pression sur la touche TAB vous listera les noms disponibles.

Suppression de lilo

La suppression de lilo est très simple. Vous avez 2 possibilités:

  1. sous DOS: fdisk /mbr ;
  2. sous Linux en tant que root : dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1. Ceci recopie le secteur d'amorçage originel (sauvegardé par lilo lors de son installation, /boot/boot.0300 pour un disque IDE, /boot/boot.0800 pour un SCSI) sur le disque dur. Seuls les 446 premiers octets sont nécessaires, les autres contiennent la table de partition.

Page maintenue par Sébastien KALT - Copyright (c) 1999-2011 Sébastien KALT.