Configurer le boot loader (grub ou lilo)

Demander un devis
Je souhaite télécharger le programme ou imprimer le programme
  • Imprimer

Introduction

 

Lorsqu'une machine amorce sur un disque, celle-ci examine son MBR (Master Boot Record). Dans le MBR du disque peut figurer un boot loader.  Un boot loader est un menu qui permet de choisir quel système lancer (par exemple Microsoft Windows ou GNU/Linux). Plus précisément, le boot loader permet d'amorcer un noyau et de lui passer un jeu d'options.

 

Par défaut, Debian insère deux entrées par noyaux Linux dans le boot loader, qui consistent à invoquer le même noyau mais avec un jeu d'options différents :

  • un mode "normal",
  • un mode de dépannage (appelé aussi "single user mode" ou "recovery mode" ou "mode de récupération").

Dans certains cas exceptionnels, le jeu d'options passé au noyau Linux ne permet pas d'amorcer celui-ci dans de bonnes conditions. Ceci peut arriver en fonction du matériel contenu dans votre ordinateur. Par exemple, sur certains modèles de portables Toshiba, les ventilateurs sont mal gérés si l'on ne corrige pas ce jeu d'options. Ce jeu d'options "spéciales" se trouvent souvent en cherchant un peu sur Internet. Nous allons à présent voir comment le corriger pour chaque type de boot loader.

 

Le boot loader proposé par Microsoft (bootmgr) n'est pas capable de voir les OS autres que Windows. Nous parlerons seulement de grub et de lilo dans ce qui suit. Quand installe Microsoft Windows, celui-ci purge le MBR (qu'il ait besoin d'installer bootmgr ou non) écrasant par la même occasion l'éventuel boot loader Linux qui s'y trouvait. Même s'il est possible de restaurer le boot loader Linux a posteriori (voir dernière partie du tutoriel), il reste plus pratique d'installer dans un premier temps Microsoft Windows et dans un second Linux dans le cadre d'une installation dual boot.


Introduction : présentation des différents boot loaders disponibles sous Linux

grub-legacy (grub 1)

Cette version se reconnaît à son numéro de version est inférieur à 1 (0.97 dans la capture d'écran ci-dessous). Grub-legacy ne supporte pas une installation LVM.

 

grub_legacy

grub-pc (grub 2)

 

Le numéro de version est supérieur à 1. C'est le boot loader installé par défaut par la plupart des distributions actuelles. La nouvelle version de grub apporte un certain nombre de nouvelles fonctionnalités dont le support de LVM.

 

grub-pc

lilo (Linux loader)

Lilo est une alternative à grub. Lilo supporte une installation LVM.

 

lilo



Cas d'étude n°1 : corriger les options passées au noyau

 

Principe

 

Pour passer une option à un noyau on peut corriger à la volée l'entrée dans le boot loader qui nous intéresse. Ceci se fait avec la touche :

  • 'e' pour grub (grub-pc et grub-legacy)
  • 'tabulation' pour lilo

Toutefois, une telle modification n'est répercutée ni dans la configuration du boot loader, ni dans le boot loader lui-même (dans le MBR). Ainsi cette approche est utilisée principalement pour tester une option. Si celle-ci résout le problème, il faudra donc la répercuter dans la configuration du boot loader et réinstaller ce dernier dans le MBR.

Contexte

 

Afin de fixer les idées, nous allons travailler sur un exemple concret. Toutefois, le principe reste le même quel que soit le jeu d'option à passer.

 

Nous allons considérer un portable Satellite U500C-11 requiert l'option "acpi.power_nocheck=1". Voyons à présent comment configurer le boot loader pour passer cette option au noyau pour les différents boot loaders qui existent sous Linux.

http://doc.ubuntu-fr.org/liste_portables_toshiba

 

grub-legacy

 

Grub se configure via /boot/grub/menu.lst. Si par exemple on souhaite ajouter l'option acpi.power_nocheck=1 (soulignée dans le fichier) :

 

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default     0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout     5

# Pretty colours
color cyan/blue white/blue

title       Debian GNU/Linux, kernel 2.6.18-4-686
root        (hd0,1)
kernel      /boot/vmlinuz-2.6.18-4-686 root=/dev/hda2 ro acpi.power_nocheck=1
initrd      /boot/initrd.img-2.6.18-4-686
savedefault

 

On note que dans ce fichier que la notation (hd0,1) désigne le disque /dev/hda2 (hd0 = disque /dev/hda, 1 = /dev/hda2) car grub numérote à partir de 0. De la même façon, (hd0,0) désignerait /dev/hda1 et (hd1,2) désignerait /dev/sdb3. Notons également que les disques SCSI/SATA/USB sont notés de la même façon "hd...".

 

Pour installer Grub dans le MBR on tape la commande qui suit :

 

update-grub

 

Dans certains cas de figure, cette commande peut être sous-entendue (typiquement si l'on a démarré sur le système Linux depuis lequel a été installé Grub), mais il reste plus propre et plus rigoureux de l'invoquer explicitement.

grub-pc


De la même façon que grub-legacy utilisait le fichier /boot/grub/menu.lst pour générer le menu installé dans le MBR, grub-pc va utiliser /boot/grub/grub.cfg pour réaliser cette tâche. Toutefois, le format du fichier de configuration de Grub a beaucoup évolué dans la mesure où la manière dont fonctionne grub a été profondément remaniée.

 

En particulier, l'une des nouveautés apportées par grub-pc est sa modularité.

  • Modules grub : Tout ce que grub-legacy prenait en charge de manière monolithique (systèmes de fichiers, mode vga...) a été décomposé en modules grub. Ces modules (les fichiers .mod stockés dans /boot/grub) ne sont donc pas sans rappeler leurs homologue linux (les fichiers .ko stockés dans /lib/modules) même si techniquement parlant il s'agit bien de modules différents. Ainsi le nouveau fichier de configuration utilisé pour générer le menu grub ressemble à du script shell et va déclencher le chargement d'un certain nombre de modules, typiquement en fonction des systèmes de fichiers utilisés pour héberger les différents systèmes. On retrouve également des directives qui ne sont pas sans rappeler certaines commandes linux (insmod, echo...) bien qu'encore une fois, elles soient complétement indépendantes du ou des systèmes linux installés sur le disque dur.
  • Fichiers de configuration "modulaires" : à l'époque, le fichier /boot/grub/menu.lst était le seul fichier utilisé pour générer Grub dans le MBR. Dans grub-pc, le fichier /boot/grub/grub.cfg, qui a le même rôle, est généré à partir d'autres fichiers et par le biais de la commande grub-mkconfig. Cette commande est déclenchée par la commande update-grub2, elle-même invoquée lors de l'ajout ou de la suppression d'un noyau linux. Ainsi, il ne faut jamais modifier ce fichier sous peine de perdre ce qu'on a personnalisé lors du prochain appel (volontaire ou involontaire) de grub-mkconfig.

Voyons à présent à quoi ressemble le fichier /boot/grub/grub.cfg :

 

 

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee
set locale_dir=($root)/boot/grub/locale
set lang=fr
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, avec Linux 2.6.32-5-686-bigmem' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee
    echo    'Chargement de Linux 2.6.32-5-686-bigmem ...'
    linux    /boot/vmlinuz-2.6.32-5-686-bigmem root=UUID=c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee ro acpi.power_nocheck=1 quiet
    echo    'Chargement du disque mémoire initial ...'
    initrd    /boot/initrd.img-2.6.32-5-686-bigmem
}
menuentry 'Debian GNU/Linux, avec Linux 2.6.32-5-686-bigmem (mode de dépannage)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee
    echo    'Chargement de Linux 2.6.32-5-686-bigmem ...'
    linux    /boot/vmlinuz-2.6.32-5-686-bigmem root=UUID=c5670c1b-49f8-47a3-9d1a-eb04c37cf7ee ro single acpi.power_nocheck=1
    echo    'Chargement du disque mémoire initial ...'
    initrd    /boot/initrd.img-2.6.32-5-686-bigmem
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 60863f6f863f4536
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

 

On retrouve dans ce fichier les notions d'UUID abordées dans le tutoriel sur les périphériques. Il reste possible de continuer aussi à utiliser l'ancienne syntaxe de grub (par exemple "(hd0,0)" pour /dev/hda1).

 

De plus l'en-tête du fichier rappelle que ce fichier a été généré à partir de /etc/default/grub et d'une série de fichiers rangés dans /etc/grub.d. Dans notre cas d'étude, le but est de rajouter les options (soulignées en gras) sans modifier directement ce fichier. Le seul dans lequel on est sensé intervenir est /etc/default/grub. Voici typiquement comment on corrigerait /etc/default/grub :


# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="acpi.power_nocheck=1"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

 

Une fois le fichier /etc/default/grub, il faut raffraichir /boot/grub/grub.cfg et le déployer dans le MBR.

 

update-grub2

 

On peut en outre vérifier que le fichier /boot/grub/grub.cfg tient compte des modifications qu'on a apporté à /etc/default/grub.

lilo

 

Il suffit de corriger /etc/lilo.conf en rajoutant l'option au noyau, sur le même principe que grub-legacy.

 

# Generated by liloconfig

# This allows booting from any partition on disks with more than 1024
# cylinders.
lba32

# Specifies the boot device
boot=/dev/sda2

# Specifies the device that should be mounted as root.
# If the special name CURRENT is used, the root device is set to the
# device on which the root file system is currently mounted. If the root
# has been changed with  -r , the respective device is used. If the
# variable ROOT is omitted, the root device setting contained in the
# kernel image is used. It can be changed with the rdev program.
root=/dev/sda2

# Bitmap configuration for /boot/sid.bmp
#bitmap=/boot/sid.bmp
#bmp-colors=1,,0,2,,0
#bmp-table=120p,173p,1,15,17
#bmp-timer=254p,432p,1,0,0

# Enables map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the map
# smaller. Using COMPACT is especially recommended when booting from a
# floppy disk.
# compact

# Install the specified file as the new boot sector.
# LILO supports built in boot sectory, you only need
# to specify the type, choose one from 'text', 'menu' or 'bitmap'.
# new: install=bmp      old: install=/boot/boot-bmp.b
# new: install=text     old: install=/boot/boot-text.b
# new: install=menu     old: install=/boot/boot-menu.b or boot.b
# default: 'menu' is default, unless you have a bitmap= line
# Note: install=bmp must be used to see the bitmap menu.
install=menu
#install=bmp

# Specifies the number of _tenths_ of a second LILO should
# wait before booting the first image.  LILO
# doesn't wait if DELAY is omitted or if DELAY is set to zero.
# delay=20

# Prompt to use certaing image. If prompt is specified without timeout,
# boot will not take place unless you hit RETURN
prompt
timeout=50

# Enable large memory mode.
large-memory

# Specifies the location of the map file. If MAP is
# omitted, a file /boot/map is used.
map=/boot/map

# Specifies the VGA text mode that should be selected when
# booting. The following values are recognized (case is ignored):
#   NORMAL  select normal 80x25 text mode.
#   EXTENDED  select 80x50 text mode. The word EXTENDED can be
#     abbreviated to EXT.
#   ASK  stop and ask for user input (at boot time).
#   <number>  use the corresponding text mode. A list of available modes
#     can be obtained by booting with  vga=ask  and pressing [Enter].
vga=normal

# Defines non-standard parameters for the specified disk.
#disk=/dev/sda
#       bios=0x80

# If you are using removable USB drivers (with mass-storage)
# you will need to tell LILO to not use these devices even
# if defined in /etc/fstab and referenced in /proc/partitions.
# Adjust these lines to your devices:
#
# disk=/dev/sda inaccessible
# disk=/dev/sdb inaccessible

# These images were automagically added. You may need to edit something.

image=/boot/vmlinuz-2.6.32-trunk-686
        label="Lin 2.6.32img0"
        initrd=/boot/initrd.img-2.6.32-trunk-686
        read-only

# If you have another OS on this machine (say DOS),
# you can boot if by uncommenting the following lines
# (Of course, change /dev/hda2 to wherever your DOS partition is.)
# other=/dev/hda2
#   label="MS Windows"

 

Il ne faut pas oublier de rafraîchir le MBR grâce à la commande :

 

lilo -v

 

Cas d'étude n°2 : restaurer un boot loader Linux

 

Sur les distributions Ubuntu récentes et si vous utilisez grub, vous pouvez utiliser l'outil dédié à sa réparation : boot-repair. Dans ce qui suit, nous présentons une manière générique (indépendante de la distribution et de si vous utilisez grub ou lilo) à laquelle vous pouvez systématiquement vous référer.

 

Cette partie du tutoriel nécessite des pré-requis sur la manipulation de périphériques sous linux.

 

Il suffit de démarrer sur un live-CD ou un live-USB. Nous allons supposer afin de fixer les idées que la partition / du système linux est sur /dev/sda1. On va reconstituer depuis le live-CD ou le live-USB l'arborescence du système linux dans une arborescence déportée (par exemple /mnt/linux).

  • Sur un CD d'installation debian, faites toutes les étapes d'installation jusqu'à arriver au partitionnement et appuyez sur echap. Puis descendez le curseur jusqu'à "Exécuter un shell (ligne de commandes)". Les commandes suivantes requièrent des droits root.
  • Si vous utilisez un live-CD ou un live-USB d'une autre distribution, faites en sorte de lancer un terminal avec des droits root, ou précédez ces commandes avec un sudo. Notez que certains live-CD ou live-USB montent un certains nombres de partition automatiquement. Dans ce cas, commencez par les démonter afin de pouvoir travailler dans le même contexte que celui du tutoriel.

Dans le terminal, tapez les commandes suivantes :

 

mkdir -p /mnt/linux

mount -t ext3 /dev/sda1 /mnt/linux

 

À ce stade on ne peut pas encore se placer dans l'arobrescence /mnt/linux pour faire "comme si" on avait démarré sur le système linux du disque dur, car contrairement à /dev (le répertoire de device du live CD) /mnt/linux/dev ne contient pas les devices nécessaires à l'installation d'un boot loader. On va donc "répliquer" /dev dans /mnt/linux/dev. Si vous omettez de le faire, une fois "chrooté", /dev ne contiendra pas les devices associés à vos disques et n'aura aucun moyen de retrouver les différents noyaux présents sur votre machine. On lance donc la commande suivante :

 

mount -o bind /dev /mnt/linux/dev

 

On déplace à présent / au niveau de /mnt/linux, de sorte à ce que tout se passe désormais comme si on avait démarré normalement sur le système linux du disque dur :

 

chroot /mnt/linux

 

À présent, montons les derniers morceaux (/proc et /sys) dans notre arborescence déportée (si /bin, /etc, /sbin sont sur des partitions dédiées, montez-les également sur le même principe). A priori nous n'avons pas besoin de /sys dans ce cas, et /proc ne devrait être utile que si vous utilisez lilo, mais pour prendre les bonnes habitudes et s'assurer que tout se passera bien, mieux vos les monter systématiquement. Notez que les commandes mount que l'on tape désormais s'appuient sur le fichier /etc/fstab du système linux du disque dur puisque nous sommes "chrootés" dans /mnt/linux.

 

mount /proc

mount /sys

 

Il ne reste plus qu'à régénérer le boot loader. Au besoin corrigez sa configuration (voir cas d'étude n°1).

 

update-grub     # Si vous utilisez grub-legacy

update-grub     # Si vous utilisez grub-pc

lilo -v         # Si vous utilisez lilo

 

Maintenant, il ne reste plus qu'à quitter proprement et à redémarrer.


umount /proc

umount /sys

# Si /bin, /sbin et /etc sont sur des partitions dédiées, démontez-les également

exit

umount /mnt/linux/dev

umount /mnt/linux

reboot

Cas d'étude n°3 : migration de grub vers lilo

 

L'installation de lilo n'est pas chose aisée quand on a directement installé son système linux, car un certains nombre de difficultés ont pu passer inaperçues. Malheureusement, si vous avez fait une installation avec grub, on risque d'en rencontrer quelques-unes.

  1. La commande "liloconfig", qui génère /etc/lilo.conf, s'appuie sur /etc/fstab. Si ce fichier référence utilise des UUID, la commande liloconfig risque d'échouer (pour plus d'informations sur les UUID voir le tutoriel sur les périphériques). Dans ce cas il faudra au préalable corriger /etc/fstab le temps de générer le fichier de configuration.
  2. La partition /boot doit être marquée bootable. Si on oublie de le faire lilo risque de planter au démarrage.
  3. De manière générale, si la commande "lilo -v" affiche des warnings, résolvez-les avant de redémarrer, car il y a de forte chance que votre lilo soit inconsistent et ne permette pas de démarrer. Consultez le cas d'étude n°2 pour réparez lilo si vous êtes dans ce cas de figure.

Cette partie de l'article est inspirée de ce tutoriel : http://www.dedibox-news.com/doku.php?id=distrib:debian:passer_de_grub_a_lilo

Étape n°1 : supprimer grub

 

On fait simplement appel au gestionnaire de paquets spécifique à chaque distribution. Sous debian le paquet associé à grub s'appelle tout simplement grub, donc on tape en root :

 

aptitude purge grub

 

Étape n°2 : vérifier que le fichier /etc/fstab n'utilise pas d'UUID

 

On regarde le contenu de /etc/fstab. Si le mot clé UUID apparaît (en particulier pour les lignes concernant / et /boot) sauvez ce fichier en tapant en root :

 

cp /etc/fstab /etc/fstab_avec_uuid

 

Relevez le résultat de la commande :

 

ls -l /dev/disks/by-uuid

 

Puis corrigez /etc/fstab par exemple à l'aide de nano :

 

nano /etc/fstab

 

Sauvez ce fichier :

 

cp /etc/fstab /etc/fstab_sans_uuid

 

À présent libre à vous d'utiliser tantôt le fichier avec ou sans UUID.

 

Étape n°3 : liloconfig

 

Ce fichier peut être généré grâce à la commande suivante, lancée en root :

 

liloconfig

 

La plupart des questions posées par liloconfig consistent à répondre "oui". Il va notamment  demander :

  • Install a partition boot record to boot Linux from /dev/...... ? [Yes]
  • Use LBA32 for addressing big disks using new BIOS features ? [Yes]
  • Enter the number of the bitmap: [celle que vous voulez, par exemple 2]
  • De manière générale il faut répondre [Yes] !

 

Vérifiez que votre partition est bien bootable, car contrairement à ce que dit liloconfig... ce ne sera pas forcément le cas !

 

Exemple : ici la partition / (qui contient donc /boot) est bootable comme l'indique l'étoile, donc tout va bien :

 

(root@test) (~) # fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         122      979933+  82  Linux swap / Solaris
/dev/sda2   *         123        1044     7405965   83  Linux

 

Si tout va bien passez directement à l'étape 5.

 

Étape n°4 : corriger le flag de boot

 

Si d'aventure le flag de boot était mal positionné, lancez fdisk. Dans notre exemple on veut activer ce flag sur la 2e partition de /dev/sda, adaptez ce qui suit à votre partitionnement. En root :

 

fdisk /dev/sda

 

À l'invite de commande de fdisk

  1. appuyez p pour afficher la table des partitions,
  2. appuyez sur a pour basculer un flag de boot,
  3. saisissez le numéro de la partition dont il faut basculer le flag (par exemple si /boot est sur /dev/sda2 et que cette partition n'a pas son flag de boot, la valeur a saisir est 2),
  4. procédez ainsi pour chaque partition dont le flag de boot est mal reglé, /boot devrait être la seule à avoir le flag de boot activé,
  5. validez la modification en appuyant sur w

Voici typiquement à quoi cela pourrait ressembler :

 

(root@debian) (~) # fdisk /dev/sda

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         122      979933+  82  Linux swap / Solaris
/dev/sda2             123        1044     7405965   83  Linux

Command (m for help): a
Partition number (1-4): 2


Command (m for help): p

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         122      979933+  82  Linux swap / Solaris
/dev/sda2    *        123        1044     7405965   83  Linux

 

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Périphérique ou ressource occupé.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

 

À présent on force l'installation lilo dans le MBR.

 

lilo -v -M /dev/sda

Étape n°5 : installer lilo

 

Relancez liloconfig pour vous assurer que tout va bien :

 

liloconfig

 

Il ne reste plus qu'à installer lilo (en root) :

 

lilo -v

 

S'il y a le moindre warning (ce sera indiqué à la fin de la commande lilo -v), il faut partir du principe que lilo est mal installé et plantera au prochain redémarrage.

Remarque importante

 

À chaque fois que vous modifiez /etc/lilo.conf, pensez à lancer systématiquement la commande :

 

lilo -v

 

Problème avec le thème graphique

 

Si lilo indique que le thème graphique est mal supporté, corrigez /etc/lilo.conf

 

nano /etc/lilo.conf

 

Allez à la ligne install= de sorte à avoir :


install=menu

 

... puis relancez  :

 

lilo -v

.
X
 
 
 
 
 

You havecharacters left.