Table des matières

Dernière mise-à-jour : 2020/01/30 03:27

102.2 - Installer un Charger de Démarrage (2/60)

Grub Legacy sous RHEL/CentOS 6

Dans le cas où le Charger de Démarrage grub n'est pas installé, il convient de saisir la commande suivante :

# grub-install /dev/périphérique [Entrée]

périphérique est le nom du périphérique ou grub doit s'installer dans le MBR. Notez cependant que le MBR a une taille trop petite pour contenir tout le Charger de Démarrage. Pour cette raison, le gestionnaire est divisé en deux. Le gestionnaire de niveau 1 est stocké dans le MBR et indique où se trouve le gestionnaire de niveau 2, c'est-à-dire le répertoire /boot.

Le gestionnaire de niveau 1 a pour seul but le lancement du gestionnaire de niveau 2. Le gestionnaire de niveau 2 charge le noyau en mémoire, monte l'image initrd et charge les modules nécessaires pendant que le noyau monte la partition racine / en lecture seule.

Important : Pour désinstaller grub du MBR, utilisez une disquette DOS pour démarrer la machine puis taper la commande suivante au prompt :

A> fdisk /mbr [Entrée]

Configurer GRUB Legacy

grub se configure grâce au fichier /boot/grub/menu.lst. Pour visualiser ce fichier, il convient de saisir la commande suivante :

[root@centos6 ~]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS Linux (2.6.32-71.29.1.el6.i686)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-71.29.1.el6.i686 ro root=UUID=e73735d6-c14b-4a40-8735-f34fc868da8a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 crashkernel=auto rhgb quiet
	initrd /initramfs-2.6.32-71.29.1.el6.i686.img 
title centos (2.6.32-71.el6.i686)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=e73735d6-c14b-4a40-8735-f34fc868da8a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 crashkernel=auto rhgb quiet
	initrd /initramfs-2.6.32-71.el6.i686.img

Ce fichier comporte plusieurs sections :

* la section des **paramètres globaux**,
* une ou plusieurs sections pour chaque système d'opération installé sur la machine.
La Section Globale
Paramètre Explication
default=0 Ce paramètre désigne le numéro de l'entrée à charger par défaut. La valeur de 0 indique la première section commençant par le mot clef title
timeout=5 Ce paramètre indique le délai en secondes après lequel l'entrée par défaut sera chargée.
splashimage=(hd0,0)/grub/splash.xpm.gz Ce paramètre indique l'emplacement de l'image de fond du menu de GRUB Legacy
hiddenmenu Ce paramètre cache le menu de GRUB Legacy pendant le chargement de l'entrée par défaut, sauf si l'utilisateur appuie sur une touche
color Ce paramètre prend la forme de deux pairs de couleurs. Le premier, par exemple white/blue, définit les couleurs de l'avant-plan et de l'arrière-plan des entrées normales du menu, tandis que le deuxième, par exemple yellow/blue définit les couleurs de l'avant-plan et de l'arrière-plan des entrées sélectionnées du menu
password=motdepasse Cette option n'est présente que dans le cas où un mot de passe a été spécifié pour protéger GRUB Legacy
Une Section spécifique à un OS
Paramètre Explication
title CentOS Linux (2.6.32-71.29.1.el6.i686) Ce paramètre indique le début d'une section de configuration d'une entrée pour un système d'exploitation ainsi que le nom qui apparaît dans le menu de GRUB Legacy
root (hd0,0) Ce paramètre indique la partition contenant le noyau de Linux. Dans l'exemple hd0,0 indique la première partition du premier disque dur. Cette partition est ensuite montée en tant que /boot.
kernel /vmlinuz-2.6.32-71.29.1.el6.i686 Ce paramètre indique le nom du noyau à charger pour démarrer la machine. Son chemin est relatif à la partition de démarrage (hd0,0). Certaines options peuvent être passées au noyau en les spécifiant en tant qu'arguments telles rhgb ou Red Hat Graphical Boot et quiet qui supprime les messages de démarrage qui apparaissent avant le lancement de l'animation graphique activée par l'option rhgb
initrd Ce paramètre stipule l'emplacement du disque initial chargé en mémoire lors du démarrage. Son chemin est relatif à la partition de démarrage (hd0,0).
lock
rootnoverify (hd0,1) Ce paramètre indique une section concernant un système d'exploitation non Linux, tel que Windows™

Configurer l'Authentification

Grub Legacy peut être protéger par un mot de passe en incluant la directive suivante dans le fichier /boot/grub/menu.lst :

password --md5 <mot de passe>

Le mot de passe doit être chiffré avec MD5 :

[root@centos6 ~]# grub-md5-crypt
Password: 
Retype password: 
$1$VLOzG$ibdk0my4IHny/XtNIGRhv1

Editez ensuite le fichier /boot/grub/menu.lst :

[root@centos6 ~]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
password --md5 $1$VLOzG$ibdk0my4IHny/XtNIGRhv1
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-504.1.3.el6.i686)
	lock
	root (hd0,0)
	kernel /vmlinuz-2.6.32-504.1.3.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-504.1.3.el6.i686.img
title CentOS (2.6.32-358.18.1.el6.i686)
	lock
	root (hd0,0)
	kernel /vmlinuz-2.6.32-358.18.1.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-358.18.1.el6.i686.img
title CentOS (2.6.32-358.6.1.el6.i686)
	lock
	root (hd0,0)
	kernel /vmlinuz-2.6.32-358.6.1.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-358.6.1.el6.i686.img
title CentOS (2.6.32-279.el6.i686)
	lock
	root (hd0,0)
	kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-279.el6.i686.img

Important : Notez l'addition de la ligne password –md5 $1$VLOzG$ibdk0my4IHny/XtNIGRhv1 ainsi que le mot clef lock sur une ligne située après chaque ligne commençant par title.

Modifier la Configuration de GRUB Legacy en Ligne de Commande

Lors du démarrage de GRUB Legacy, il est possible de voir son menu en appuyant sur n'importe quelle touche. Si GRUB Legacy a été protégé par un mot de passe, il convient d'appuyer sur la touche p puis de rentrer le mot de passe. A ce stade il est possible d'utiliser deux autres touches :

En mode édition notez l'utilisation des touches suivantes :

GRUB 2 sous RHEL/CentOS 7

GRUB 2 est une ré-écriture complète de GRUB Legacy. Il apporte des améliorations, notamment GRUB 2 sait utiliser des partitions RAID et LVM.

Le lancement de GRUB 2 se fait en trois étapes :

Dans le cas où le Charger de Démarrage GRUB 2 n'est pas installé, il convient de saisir la commande suivante :

# grub2-install /dev/périphérique [Entrée]

périphérique est le nom du périphérique ou l'étape 1 de GRUB2 doit s'installer dans le MBR.

GRUB 2 lit ses entrées de menus à partir du fichier /boot/grub2/grub.cfg. Pour visualiser ce fichier, il convient de saisir la commande suivante :

[root@centos7 ~]# cat /boot/grub2/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

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 {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img
}
menuentry 'CentOS Linux, with Linux 3.10.0-123.el7.x86_64' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-123.el7.x86_64.img
}
menuentry 'CentOS Linux, with Linux 0-rescue-a2feb9eb09b1488da0f23b99a66350f8' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-a2feb9eb09b1488da0f23b99a66350f8-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' {
	load_video
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-0-rescue-a2feb9eb09b1488da0f23b99a66350f8 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet
	initrd16 /initramfs-0-rescue-a2feb9eb09b1488da0f23b99a66350f8.img
}
if [ "x$default" = 'CentOS Linux, with Linux 3.10.0-123.el7.x86_64' ]; then default='Advanced options for CentOS Linux>CentOS Linux, with Linux 3.10.0-123.el7.x86_64'; fi;
### END /etc/grub.d/10_linux ###

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

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

### BEGIN /etc/grub.d/30_os-prober ###
### 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  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Prenons le cas des paramètres de Grub Legacy et comparons-les aux paramètres de GRUB 2 :

Grub Legacy GRUB 2
title Menuentry
root (hd0,0) set root=hd(0,1). Notez que GRUB 2 commence toujours la numérotation des disques à 0 mais numérote les partitions à partir de 1
kernel linux
initrd initrd
lock Ce paramètre n'existe plus sous GRUB 2.
rootnoverify (hd0,1) Ce paramètre n'existe plus sous GRUB 2. Les paramètres des systèmes d'exploitation non Linux sont définit avec le paramètre root

Notez que ce fichier ne doit pas être modifié manuellement. En effet, il est généré par la commande grub2-mkconfig sous RHEL/CentOS 7. La commande grub2-mkconfig prend en argument l'emplacement du fichier destination, par exemple :

Lors de l'exécution de la commande grub2-mkconfig plusieurs fichiers sont lus :

Le fichier /boot/grub2/device.map

[root@centos7 ~]# cat /boot/grub2/device.map
# this device map was generated by anaconda
(hd0)      /dev/sda
(hd1)      /dev/sda

Le fichier /etc/default/grub

Ce fichier contient la configuration par défaut des paramètres de GRUB 2 :

[root@centos7 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Important : Notez que toute modification de ce fichier nécessite l'exécution de la commande grub2-mkconfig sous RHEL/CentOS 7 pour que les modifications soient prises en compte.

Dans ce fichier les directives sont :

Directive Description
GRUB_DEFAULT Entrée du menu sélectionner par défaut
GRUB_TIMEOUT Durée de l'affichage du menu avant le démarrage en utilisant la valeur de GRUB_DEFAULT
GRUB_DISTRIBUTOR Ligne de commande qui génère le texte de l'entrée
GRUB_CMDLINE_LINUX_DEFAULT Paramètres passés au noyau lors d'un démarrage normal (Hors donc le mode secours)
GRUB_CMDLINE_LINUX Paramètres passés au noyau peu importe le type de démarrage
GRUB_TERMINAL Si non commentée, cette directive désactive le démarrage graphique
GRUB_GFXMODE Indique la résolution utilisée lors d'un démarrage graphique
GRUB_DISABLE_LINUX_UUID Si true, cette directive empêche l'utilisation de l'UUID de la partition
GRUB_DISABLE_LINUX_RECOVERY Si true, cette directive empêche la génération des entrées en mode recovery
GRUB_INIT_TUNE Permet d'obtenir un beep au démarrage de GRUB 2
GRUB_BADRAM Permet de spécifier de la mémoire défaillante

Les fichiers du répertoire /etc/grub.d

Les fichiers de ce répertoire sont exécutés dans l'ordre alphanumérique et servent à construire les menus de GRUB 2 :

[root@centos7 ~]# ls -l /etc/grub.d
total 68
-rwxr-xr-x. 1 root root  8702 Mar 26 09:27 00_header
-rwxr-xr-x. 1 root root   992 Oct 17  2014 00_tuned
-rwxr-xr-x. 1 root root 10114 Mar 26 09:27 10_linux
-rwxr-xr-x. 1 root root 10275 Mar 26 09:27 20_linux_xen
-rwxr-xr-x. 1 root root  2559 Mar 26 09:27 20_ppc_terminfo
-rwxr-xr-x. 1 root root 11169 Mar 26 09:27 30_os-prober
-rwxr-xr-x. 1 root root   214 Mar 26 09:27 40_custom
-rwxr-xr-x. 1 root root   216 Mar 26 09:27 41_custom
-rw-r--r--. 1 root root   483 Mar 26 09:27 README

Configurer l'Authentification

Pour configurer l'authentification sous GRUB 2, il faut créer le fichier /etc/grub.d/01_users :

[root@centos7 ~]# touch /etc/grub.d/01_users 
[root@centos7 ~]# chmod 755 /etc/grub.d/01_users 

Créez deux mots de passe hashés au format PBKDF2 en utilisant la commande grub2-mkpasswd-pbkdf2 sous RHEL/CentOS :

[root@centos7 ~]# grub2-mkpasswd-pbkdf2
Enter password: pass123
Reenter password: pass123
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.0298C1C613A451C46FBC95BB2AC7A41BCEC1C61512EF785BD81E3B65DFF9D57ED4ADF8906C3EF33C22C06FBDD366E1C118FC41110BD646A4D49EF86EFD0573BF.E14A45900096D773BE99BEA9AB8D4FA81431458952798B997D4FC9E0850426F6798979371B8EBD331DB33AE8FEAE25E6773156D42F21B884DBA405546782B3BD
[root@centos7 ~]# grub2-mkpasswd-pbkdf2
Enter password: pass456
Reenter password: pass456
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.161D4183DC832357403296ED05961FCF494AED9E20DC21C84EA89085EB9EF5AAE4C7D4A276AA5CC21F9C224B2ECA010B915B4830E9648A7398EB4A91E7E3D252.8277512B849FF727FDD0716D1D4CDC6B92E53918F665282E02133AAD1046EB10273A2BC70D76558FFC34A0C0C8BE5132E4C4C02C7C9C1A567BD5365D77350FCF

Editez le fichier /etc/grub.d/01_users ainsi :

/etc/grub.d/01_users
#!/bin/sh -e
cat <<EOF
set superusers="root"
password_pbkdf2 root
grub.pbkdf2.sha512.10000.0298C1C613A451C46FBC95BB2AC7A41BCEC1C61512EF785BD81E3B65DFF9D57ED4ADF8906C3EF33C22C06FBDD366E1C118FC41110BD646A4D49EF86EFD0573BF.E14A45900096D773BE99BEA9AB8D4FA81431458952798B997D4FC9E0850426F6798979371B8EBD331DB33AE8FEAE25E6773156D42F21B884DBA405546782B3BD
password_pbkdf2 trainee
grub.pbkdf2.sha512.10000.161D4183DC832357403296ED05961FCF494AED9E20DC21C84EA89085EB9EF5AAE4C7D4A276AA5CC21F9C224B2ECA010B915B4830E9648A7398EB4A91E7E3D252.8277512B849FF727FDD0716D1D4CDC6B92E53918F665282E02133AAD1046EB10273A2BC70D76558FFC34A0C0C8BE5132E4C4C02C7C9C1A567BD5365D77350FCF
EOF

Il est aussi possible d'utiliser des mots de passe non cryptés. Modifiez donc le fichier /etc/grub.d/01_users ainsi :

/etc/grub.d/01_users
#!/bin/sh -e
cat <<EOF
set superusers="root"
password root fenestros
password trainee trainee
EOF

Ouvrez maintenant le fichier /boot/grub2/grub.cfg et copier le premier menuentry de la section /etc/grub.d/10_linux :

menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img
}

Collez maintenant ce menuentry dans le fichier /etc/grub.d/40_custom :

/etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# 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.
menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img
}

Modifier le debut du menuentry ainsi :

menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core) pour TRAINEE' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' --users trainee {

Sous RHEL/CentOS, lancez la commande grub2-mkconfig -o /boot/grub2/grub.cfg :

[root@centos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-a2feb9eb09b1488da0f23b99a66350f8
Found initrd image: /boot/initramfs-0-rescue-a2feb9eb09b1488da0f23b99a66350f8.img
done

En examinant le fichier /boot/grub2/grub.cfg on doit pouvoir constater la présence de la section /etc/grub.d/40_custom :

...
### 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.
menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core) pour TRAINEE' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' --users trainee {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309
	else
	  search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309
	fi
	linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img
}
### END /etc/grub.d/40_custom ###
...

A faire : Redémarrez votre VM et choisissez l'entrée de GRUB 2 issue du fichier /etc/grub.d/40_custom puis constatez que GRUB 2 demande un nom d'utilisateur ainsi qu'un mot de passe quand vous voulez éditer une entrée de GRUB 2.

Modifier la Configuration de GRUB 2 en Ligne de Commande

Lors du démarrage de GRUB 2, trois actions sont possibles à partir du menu :

En mode édition notez l'utilisation des touches suivantes :

Important : Certaines distributions, telle qu'Ubuntu, cache le menu de GRUB 2 derrière une interface graphique. Afin de voir ce menu, il convient d'appuyer sur la touche Shift pendant que la machine démarre.

Chargeurs de Démarrages Alternatifs

Systemd-boot

Un Chargeur de Démarrage étroitement lié à Systemd ( voir plus bas ), celui-ci connaît actuellement un gain de popularité.

U-boot

Un Chargeur de Démarrage qui peut booter n'importe quelle image à partir de n'importe quel support.

Le Projet Syslinux

SYSLINUX

Un Chargeur de Démarrage pour les systèmes qui utilisent le système de fichier FAT. Par exemple le systèmes sur clefs USB.

EXTLINUX

Un Chargeur de Démarrage de petite taille qui sait booter des systèmes de fichier, EXT2, EXT3, EXT4 et BRTFS.

ISOLINUX

Un Chargeur de Démarrage pour booter des LiveCD et LiveDVD. Dans le cas d'ISOLINUX, deux fichiers sont necéssaires :

PXELINUX

Un Chargeur de Démarrage pour booter à partir d'un serveur réseau. Ce système utilise le standard PXE (Pre-boot Execution Environment) qui utilise :

Isodhpfx

Un Chargeur de Démarrage hybride, appelé isodhpfx.bin, qui peut être chargé sur un disque ou une clef USB. Le fichier isodhpfx.bin est créé avec le programme xorriso.


<html>

Copyright © 2004-2017 Hugh Norris.<br><br> <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”><img alt=“Licence Creative Commons” style=“border-width:0” src=“http://i.creativecommons.org/l/by-nc-nd/3.0/fr/88x31.png” /></a><br />Ce(tte) oeuvre est mise à disposition selon les termes de la <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”>Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France</a>.

</html>