Grub

Grub détecte les disques et lecteur de disquettes que le BIOS voit (dans le même ordre). Il peut charger à partir du réseau avec TFTP.

Le premier lecteur de disquette est désigné (fd0) (avec les parenthèses)

Le premier disque dur est désigné (hd0) (avec les parenthèses)

La première partition sur le premier disque dur est désigné (hd0,0)

La première partition étendue-logique sur le premier disque dur est désigné (hd0,4)

Le fichier "test" sur le / de la première partition, premier disque dur: (hd0,0)/test

Lister les partitions/fichiers

En ligne de commande:

Lister les partitions: root(<TAB>
Lister les partitions avec un fichier:  find /nom/du/fichier
                                        find /boot/grub/stage1

Installation

  1. installer les fichiers de grub (package - apt-get install grub)
  2. exécuter la commande
    # installation avec grub-install (sur le MBR du disque /dev/hda de unix/linux)
    grub-install /dev/hda
    
    ou
    
    # installation avec grub-install (sur le MBR du premier disque détecté par le BIOS)
    grub-install hd0
    (les fichiers stage1 et stage2 sont copiés dans le répertoire
    
    ou
    
    # installation avec grub-install (sur le MBR du premier disque
    # mais les images (stage1, stage2) sont sur une partition /boot montée)
    # installe dans les images dans le répertoire /boot/grub/
    grub-install --root-directory=/boot /dev/hda
    
    # lancer la commande grub
    grub
    # sélection du disque et de la partition qui contient le répertoire de boot (/boot/grub)
    root (hd0,0)
    # Enregistrer (stage1) sur le mbr du premier disque:
      setup (hd0)
    # ou
    # Enregistrer (stage1) sur les premiers secteurs de la première partition
      setup (hd0,0)
    
    quit
    

Fichiers nécessaires (dans /boot/grub)

  • /boot/grub/stage1 : premier bloc de 512 ko du disque (booté par le bios)
  • /boot/grub/stage2 : deuxième bloc de 512 ko du disque (booté par le stage1)
  • /boot/grub/*stage1_5 : fichier spécifique au type de système de fichiers (e2fs_stage1_5 = ext2fs)
  • /boot/grub/menu.lst
Instructions pour copier les deux blocs sur une disquette
# copie le fichier stage1 sur le lecteur de disquette (/dev/fd0) pour un 1 bloc de 512 bytes (octets)
dd if=stage1 of=/dev/fd0 bs=512 count=1

# copie le fichier stage2 sur le lecteur de disquette en sautant un bloc de 512 octets
dd if=stage2 of=/dev/fd0 bs=512 seek=1


Étapes pour démarrer un noyau

1. Sélectionner le disque avec les images de l'OS. root (hd0,0)

2. Démarrer le noyau. kernel /fichierkernel options=...

Exemple:
 kernel /vmlinuz root=/dev/hda1
 kernel /boot/vmlinuz-2.6.18-1 ro root=LABEL=/ acpi=off

2a. Si besoin, démarrer les modules. module ou modulenounzip

2b. Sous linux, on peut aussi lancer initrd /boot/initrd-...img. initrd initie a ramdisk file (un fichier dans la RAM)

3. Lancer la commande boot. (automatiquement lancée dans grub.list, pas besoin de la spécifier)

Étapes pour un lanceur

1. Sélectionner le disque avec le lanceur. rootnoverify (hd0,0) (exemple: 1ere partition, premier disque)

2. Rendre la partition active: makeactive

3. Lancer le lanceur externe: chainloader +1 (+1 indique qu'il faut lire le premier block (512 ko habituellement) de la partition.

Hyperliens...