logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


GRUB 2

Introduction

GNU GRUB (GRand Unified Bootloader) est un chargeur de démarrage universel.

Parce qu'il est capable de charger presque toutes sortes d'OS, des OS dérivés d'UNIX : Linux, BSD etc, toute la gamme des windows. Parce qu'on peut l'installer sur tous les types de systèmes de fichiers Linux/Unix (ext2, ext3, reiserFs, autres…) Parce que Grub est multiplateformes, il marche sur plusieurs types de machines : PC, Mac, IBM, Sun. Aussi GRUB fait référence à UNIX, d'où sont tirés presque tous les OS, voilà pourquoi Grub utilise la numérotation des disques d'UNIX, différente de celle de Linux et de windows….

Installation de GRUB

Le chargeur GRUB pour BIOS a deux façons d'installer son image principale :

  1. soit dans un espace réservé hors du système de fichiers (espace entre le MBR et la première partition, partition “BIOS boot”, espace réservé dans une partition Btrfs…). C'est “l'embarquage”, et la méthode préférée quand elle est possible.
  2. soit dans un fichier normal. Cela oblige GRUB à utiliser les “listes de blocs” pour repérer les secteurs physiques qui contiennent ce fichier. Mais comme il est indiqué, cette méthode est moins fiable car le système de fichiers peut déplacer les blocs de données d'un fichier dans d'autres secteurs physiques et il est impossible de l'empêcher (même l'attribut “immutable” activé avec chattr +i ne l'empêche pas), et la liste de blocs de GRUB ne pointerait plus vers les bons secteurs.

Quand on installe GRUB dans le MBR d'une partition, il utilise l'embarquage si :

  1. la table de partition est au format MBR/DOS et l'espace non alloué entre le MBR et la première partition est suffisant
  2. la table de partition est au format GPT et il existe une partition de type “BIOS boot” de taille suffisante.

Sinon, il doit utiliser les listes de blocs si la position de /boot/grub le permet.

Quand on installe GRUB dans le secteur d'amorce d'une partition, il utilise l'embarquage si le type de contenu de la partition le permet. Actuellement c'est le cas si la partition est de type Btrfs, et il y a un travail en cours (à moins que ce soit fini) pour que GRUB puisse utiliser l'espace réservé à cet effet d'une partition de type LVM. Sinon, il utilise les listes de blocs, ce qui nécessite d'exécuter grub-install avec l'option –force (ce que fait le script d'installation du paquet grub-pc).

A noter que l'utilisation des listes de blocs n'est pas toujours possible, notamment si /boot/grub n'est pas dans une partition simple (RAID, LVM, volume chiffré…).

Merci à LaFouine et raleur pour cet apport dans la compréhension du GRUB

Lien vers le forum :

Spécificités

Avant d'expliquer les détails du boot avec Grub, il faut avoir en tête cette différence fondamentale avec les autres bootloaders: Grub n'est pas qu'un simple bootloader.

  • Grub est un mini système, autonome avec ses propres commandes (en console), qu'on peut installer n'importe où sur le disque, voire sur une disquette.
  • Grub est un chargeur interactif.

Il affiche le menu de choix de boot, et il est possible d'en modifier les options au clavier, ce qui n'est pas possible avec d'autres simbles bootloaders comme LiLo. Cependant, ce n'est pas très pratique de lancer votre OS habituel avec des commandes au clavier, aussi pour lancer vos OS, Grub utilise un fichier de configuration qui s'appelle grub.cfg

Ainsi, grub met à la fois à disposition un menu défini par le grub.cfg et un mini-shell de secours, permettant d'effectuer les mêmes opérations manuellement.

Différences d'avec GRUB 1

Avec GRUB 2 :

  1. Nous ne rédigeons plus directement dans un fichier les modifications et ajouts des distributions tel que nous le faisions dans le menu.lst de GRUB.
  2. Nous rédigeons des scripts et complétons des modules qui se chargeront eux-mêmes de faire cette rédaction pour le grub.

Cet aspect déroutant à l'abord force la connaissance des débutants vers un apprentissage plus précoce et plus vigoureux de Debian. :-)

Pour ce tuto, nous avons choisi de séparer ces aspects complémentaires,

  • depuis l'install,
  • la reconnaissance des systèmes installés
  • la modulation de la présentation et l'ouverture de ceux-ci.

Précisions

ce que tu décris Naguam c'est le chainloading? Où une partie de GRUB s'installe dans une partition /boot (?) (le stage 2) et une autre partie est dans le premier secteur de disque (stage 1)

Non, on parle de “chainloading” (ou chaînage) quand un chargeur d'amorçage lance un autre chargeur d'amorçage. Par exemple quand le programme d'amorce standard du MBR lance le secteur d'amorce de la partition active (schéma de Naguam), ou quand GRUB lance le GRUB d'un autre système, ou quand GRUB lance le chargeur d'amorçage de Windows (ntldr/bootmgr). Le chargement de l'étage suivant de GRUB par l'étage précédent de GRUB n'est pas du chaînage, c'est juste le processus de démarrage de GRUB.

Stage 1, 1.5 et 2 sont des notions propres à l'ancienne version GRUB 1/legacy. Dans la version actuelle GRUB 2 elles sont remplacées par la boot image (secteur d'amorce) et la core image. La boot image charge la core image qui charge les modules et la configuration installés dans /boot/grub.

La boot image et la core image sont obligatoirement sur le même disque, alors que /boot/grub peut être sur un disque différent. Cependant c'est une configuration à éviter car cela rend les deux disques dépendants l'un de l'autre, chacun contenant seulement une partie de GRUB.

Sur le forum :

Utilisation

Liens

Liens utiles sur le forum

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/systeme/grub2.1561354836.txt.gz · Dernière modification: 24/06/2019 07:40 par smolski

Pied de page des forums

Propulsé par FluxBB