Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:grub2_parametrage_manuel [Le 19/12/2021, 17:34] 88.122.224.21 [Fichier /etc/default/grub] GRUB_DISABLE_OS_PROBER=false |
tutoriel:grub2_parametrage_manuel [Le 25/02/2025, 02:41] (Version actuelle) nany [Fichier /etc/default/grub] clarification sur la différence entre GRUB_CMDLINE_LINUX_DEFAULT et GRUB_CMDLINE_LINUX |
||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
* **GRUB_TIMEOUT=10** est la durée en secondes de l’affichage du menu avant de se lancer sur le menu sélectionné par défaut. (-> **[[#Menu par défaut|Détails]]**) | * **GRUB_TIMEOUT=10** est la durée en secondes de l’affichage du menu avant de se lancer sur le menu sélectionné par défaut. (-> **[[#Menu par défaut|Détails]]**) | ||
* **GRUB_DISTRIBUTOR=``** est la ligne qui définit la syntaxe des titres du menu (-> **[[#Intitulé dans le menu|Détails]]**) | * **GRUB_DISTRIBUTOR=``** est la ligne qui définit la syntaxe des titres du menu (-> **[[#Intitulé dans le menu|Détails]]**) | ||
- | * **GRUB_CMDLINE_LINUX_DEFAULT=" "** Des paramètres sont déjà présents, ils peuvent être ôtés. On y met les paramètres à ajouter lors de la détection automatique des systèmes lors du démarrage. (ex: radeon.modeset=1 logo.nologo ..). | + | * **GRUB_CMDLINE_LINUX_DEFAULT=" "** Des paramètres sont déjà présents, ils peuvent être ôtés. On y met les paramètres à ajouter lors de la détection automatique des systèmes lors du démarrage. (ex: radeon.modeset=1 logo.nologo ..). Les options définies ici ne seront pas prises en compte si vous démarrez en mode de récupération (recovery). |
- | * **GRUB_CMDLINE_LINUX=""** On peut y mettre des paramètres supplémentaires à ceux du paramètre précédant à ajouter lors du démarrage des systèmes en mode recovery (ex: fsck.mode=force fsck.repair=yes ...). | + | * **GRUB_CMDLINE_LINUX=""** On peut y mettre des paramètres supplémentaires à ceux du paramètre précédant à ajouter lors du démarrage des systèmes en mode recovery (ex: fsck.mode=force fsck.repair=yes ...). Les options définies ici s'appliquent donc à tous les démarrages, qu'ils soient normaux ou en mode de récupération (recovery). |
* **#GRUB_GFXMODE=640x480** (-> **[[#GRUB_GFXMODE|Détails]]**). | * **#GRUB_GFXMODE=640x480** (-> **[[#GRUB_GFXMODE|Détails]]**). | ||
* **#GRUB_INIT_TUNE="480 440 1"** : sans le « # », on aura un bip à l’affichage du menu Grub. | * **#GRUB_INIT_TUNE="480 440 1"** : sans le « # », on aura un bip à l’affichage du menu Grub. | ||
Ligne 52: | Ligne 52: | ||
* **20_linux_xen** : script pour Xen Linux et Xen Hypervisor ; | * **20_linux_xen** : script pour Xen Linux et Xen Hypervisor ; | ||
* **30_os-prober** : contient le script de recherche des autres systèmes installés ; | * **30_os-prober** : contient le script de recherche des autres systèmes installés ; | ||
- | * **30_uefi-firmware** : script pour localiser les paramètres uefi de l'ordinateur ; | + | * **30_uefi-firmware** : script pour localiser les paramètres uefi de l'ordinateur ; |
* **40_custom** : configuration personnelle (systèmes à lancer en configuration manuelle, paramètres qui n'existent pas pour /etc/default/grub,..) | * **40_custom** : configuration personnelle (systèmes à lancer en configuration manuelle, paramètres qui n'existent pas pour /etc/default/grub,..) | ||
* **41_custom** : identique à 40_custom (si on le renomme par exemple 07_custom, on pourra y mettre le lancement du mediacenter ou de Windows en premier sur la liste) | * **41_custom** : identique à 40_custom (si on le renomme par exemple 07_custom, on pourra y mettre le lancement du mediacenter ou de Windows en premier sur la liste) | ||
Ligne 59: | Ligne 59: | ||
===== Paramétrage manuel ===== | ===== Paramétrage manuel ===== | ||
- | <note warning>À partir de ce chapitre, vous allez intervenir directement sur les fichiers de GRUB. Soyez prudent, les fichiers de GRUB ne doivent pas être modifiés à la légère, sous peine d'avoir un système qui ne démarre plus. Si vous ne maîtrisez pas bien, n'hésitez pas à demander de l'aide sur le [[http://forum.ubuntu-fr.org/|forum]]. Pour revenir en arrière, utilisez un live-usb et suivez la procédure décrite dans cette [[:tutoriel:comment_restaurer_grub|page de la doc]].</note> | + | <note warning>À partir de ce chapitre, vous allez intervenir directement sur les fichiers de GRUB. Soyez prudent, les fichiers de GRUB ne doivent pas être modifiés à la légère, sous peine d'avoir un système qui ne démarre plus. Si vous ne maîtrisez pas bien, n'hésitez pas à demander de l'aide sur le [[https://forum.ubuntu-fr.org/|forum]]. Pour revenir en arrière, utilisez un live-usb et suivez la procédure décrite dans cette [[:tutoriel:comment_restaurer_grub|page de la doc]].</note> |
<note important>Avant de commencer, il est souhaitable : | <note important>Avant de commencer, il est souhaitable : | ||
* de lancer dans un [[:terminal]] une [[:commande_shell|commande]] de mise à jour : //sudo update-grub// ; | * de lancer dans un [[:terminal]] une [[:commande_shell|commande]] de mise à jour : //sudo update-grub// ; | ||
Ligne 117: | Ligne 117: | ||
Pour changer le système d'exploitation sur lequel grub démarre par défaut on paramètrera **GRUB_DEFAULT=** au choix avec : | Pour changer le système d'exploitation sur lequel grub démarre par défaut on paramètrera **GRUB_DEFAULT=** au choix avec : | ||
- | * un **chiffre** (0 = le premier, 1 = le deuxième, etc.) ; | + | * un **chiffre** donnant la position de la ligne à sélectionner dans la liste.(0 = le premier, 1 = le deuxième, etc.) ; |
* **saved** (sans guillemet) pour ce qui a été sélectionné lors du précédent lancement (nécessite de rajouter GRUB_SAVEDEFAULT=true) ; | * **saved** (sans guillemet) pour ce qui a été sélectionné lors du précédent lancement (nécessite de rajouter GRUB_SAVEDEFAULT=true) ; | ||
* ou le **titre** de menu exact d’un menu mis **entre guillemets** (par exemple : "Microsoft Windows 10 (on /dev/sda1)"). Pour obtenir les titres exacts des menus : grep menuentry /boot/grub/grub.cfg ; | * ou le **titre** de menu exact d’un menu mis **entre guillemets** (par exemple : "Microsoft Windows 10 (on /dev/sda1)"). Pour obtenir les titres exacts des menus : grep menuentry /boot/grub/grub.cfg ; | ||
- | * **chiffre>chiffre** le premier chiffre décrit un menu principal, le second chiffre décrit le sous-menu (par exemple 1>2 pour le mode normal de l'ancien noyau.) | + | * ou le titre du menu avancé et le titre exact du sous-menu séparés par le caractère **>**. Le tout mis entre guillemets. Par exemple: //GRUB_DEFAULT="Options avancées pour Ubuntu>Ubuntu, avec Linux 4.15.0-176-generic"// |
+ | * **"chiffre>chiffre"** le premier chiffre décrit un menu principal, le second chiffre décrit le sous-menu (Numérotation à partir de 0) . Ils doivent aussi être mis [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22784310#p22784310|entre guillemets]]. Par exemple "1>2" pour le mode normal de l'ancien noyau. | ||
La **temporisation** avant un lancement automatique se définit avec le paramètre **GRUB_TIMEOUT** : | La **temporisation** avant un lancement automatique se définit avec le paramètre **GRUB_TIMEOUT** : | ||
- | * **GRUB_TIMEOUT=5**, lancera le système par défaut au bout de **10 secondes**. Si on ne veut **pas de temporisation**, on mettra : **GRUB_TIMEOUT=-1** | + | * **GRUB_TIMEOUT=10**, lancera le système par défaut au bout de **10 secondes**. Si on ne veut **pas de temporisation**, on mettra : **GRUB_TIMEOUT=-1** |
==== Désactiver Memtest ==== | ==== Désactiver Memtest ==== | ||
Si on ne souhaite plus voir dans les menus Memtest, on **changera le statut du script** pour qu'il **ne soit plus exécutable** à la prochaine commande de mise à jour : | Si on ne souhaite plus voir dans les menus Memtest, on **changera le statut du script** pour qu'il **ne soit plus exécutable** à la prochaine commande de mise à jour : | ||
Ligne 132: | Ligne 132: | ||
==== os-prober partiel ==== | ==== os-prober partiel ==== | ||
- | On peut demander à grub d'**éviter de scanner certaines partition** par leur UUID (//sudo blkid// pour avoir leur liste). On utilisera le paramètre **GRUB_OS_PROBER_SKIP_LIST** du fichier **/etc/default/grub** : | + | On peut demander à grub d'**éviter de scanner certaines partitions** par leur UUID (//sudo blkid// pour avoir leur liste). On utilisera le paramètre **GRUB_OS_PROBER_SKIP_LIST** du fichier **/etc/default/grub** : |
<file>GRUB_OS_PROBER_SKIP_LIST="3a43c682-cb67-47e6-83cf-e647a72abb5d@/dev/sda3","1397cb72-27f1-4e01-acaf-86495341c71d@/dev/sda4"</file> | <file>GRUB_OS_PROBER_SKIP_LIST="3a43c682-cb67-47e6-83cf-e647a72abb5d@/dev/sda3","1397cb72-27f1-4e01-acaf-86495341c71d@/dev/sda4"</file> | ||
+ | FIXME Attention : Il semble que la bonne syntaxe soit : | ||
+ | <file>GRUB_OS_PROBER_SKIP_LIST="3a43c682-cb67-47e6-83cf-e647a72abb5d@/dev/sda3 1397cb72-27f1-4e01-acaf-86495341c71d@/dev/sda4"</file> | ||
==== Changer l'ordre des menus ==== | ==== Changer l'ordre des menus ==== | ||
On peut **renommer les scripts** utilisés par 'update-grub' dans le dossier /etc/grub.d/ pour en changer l'ordre, par exemple : | On peut **renommer les scripts** utilisés par 'update-grub' dans le dossier /etc/grub.d/ pour en changer l'ordre, par exemple : | ||
Ligne 159: | Ligne 160: | ||
Ceci est un ajout du 15/08/2017 dont le contenu demande encore à être confirmé. | Ceci est un ajout du 15/08/2017 dont le contenu demande encore à être confirmé. | ||
Lorsqu'on dispose de plusieurs OS ubuntu et qu'on passe souvent de l'un à l'autre et que les noyaux se mettent à jour, on arrive rapidement à avoir un énorme fichier boot.cfg. | Lorsqu'on dispose de plusieurs OS ubuntu et qu'on passe souvent de l'un à l'autre et que les noyaux se mettent à jour, on arrive rapidement à avoir un énorme fichier boot.cfg. | ||
- | Afin de l'épurer, il existe un [[ https://forum.ubuntu-fr.org/viewtopic.php?pid=21701820#p21701820|outil]] | + | Afin de l'épurer, il existe un [[ https://forum.ubuntu-fr.org/viewtopic.php?pid=21701820#p21701820|outil]] |
L'idéal étant de ne pas arriver à cette situation. Il existe quelques palliatifs pour retarder cet état de fait. Pour tous les OS qui ne sont pas l'OS dirigeant (souvent la version LTS): | L'idéal étant de ne pas arriver à cette situation. Il existe quelques palliatifs pour retarder cet état de fait. Pour tous les OS qui ne sont pas l'OS dirigeant (souvent la version LTS): | ||
- | IL faut demander à ne faire aucune recherche d'OS complémentaires via la commande. | + | IL faut demander à ne faire aucune recherche d'OS complémentaires via la commande |
- | <code>sudo chmod -x /etc/grub.d/30_os-prober</code> | + | <del><code>sudo chmod -x /etc/grub.d/30_os-prober</code></del> |
+ | il est preferable de modifier le fichier "/etc/default/grub " et d' y inserer l ' option apropriée : | ||
+ | <code>GRUB_DISABLE_OS_PROBER=true</code> | ||
Il faut aussi ne pas ré-écraser le démarrage du boot prioritaire. Ce qui se fait à chaque fois qu'un nouveau noyau arrive. Je n'ai pas vu d'option dans ce fichier de paramétrage pour le faire. En attendant: | Il faut aussi ne pas ré-écraser le démarrage du boot prioritaire. Ce qui se fait à chaque fois qu'un nouveau noyau arrive. Je n'ai pas vu d'option dans ce fichier de paramétrage pour le faire. En attendant: | ||
<code> sudo chmod -x /usr/sbin/grub-install</code> | <code> sudo chmod -x /usr/sbin/grub-install</code> | ||
Ligne 171: | Ligne 174: | ||
===== Contenu de menu perso ===== | ===== Contenu de menu perso ===== | ||
**Tous ces contenus sont ajoutés à /etc/grub.d/40_custom** | **Tous ces contenus sont ajoutés à /etc/grub.d/40_custom** | ||
+ | |||
+ | <note tip>On peut obtenir le contenu de l'entrée Windows du menu Grub avec cette commande : | ||
+ | <code>sudo cat /boot/grub/grub.cfg | grep -A20 'menuentry .*Windows' | awk '/^###/{exit} {print}' | ||
+ | </code></note> | ||
==== Chaîner un autre menu ==== | ==== Chaîner un autre menu ==== | ||
Ligne 182: | Ligne 189: | ||
ntldr /bootmgr | ntldr /bootmgr | ||
} | } | ||
+ | |||
menuentry "Windows 10b" { | menuentry "Windows 10b" { | ||
insmod ntfs | insmod ntfs | ||
Ligne 187: | Ligne 195: | ||
ntldr /bootmgr | ntldr /bootmgr | ||
} | } | ||
+ | |||
menuentry "Windows 7" { | menuentry "Windows 7" { | ||
insmod ntfs | insmod ntfs | ||
Ligne 193: | Ligne 202: | ||
chainloader +1 | chainloader +1 | ||
} | } | ||
+ | |||
menuentry "Windows 10 en mode bios legacy" { | menuentry "Windows 10 en mode bios legacy" { | ||
insmod ntfs | insmod ntfs | ||
Ligne 198: | Ligne 208: | ||
chainloader +1 | chainloader +1 | ||
} | } | ||
+ | |||
+ | # Windows en bios legacy, disque MBR : | ||
+ | menuentry 'Windows 11 (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-062ADE8A0C7254A8' { | ||
+ | insmod part_msdos | ||
+ | insmod ntfs | ||
+ | set root='hd1,msdos1' | ||
+ | if [ x$feature_platform_search_hint = xy ]; then | ||
+ | search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 062ADE8A0C7254A8 | ||
+ | else | ||
+ | search --no-floppy --fs-uuid --set=root 062ADE8A0C7254A8 | ||
+ | fi | ||
+ | parttool ${root} hidden- | ||
+ | drivemap -s (hd0) ${root} | ||
+ | chainloader +1 | ||
+ | } | ||
+ | |||
+ | # Windows en EFI sur disque GPT : | ||
+ | menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-3333-3333' { | ||
+ | insmod part_gpt | ||
+ | insmod fat | ||
+ | set root='hd0,gpt1' | ||
+ | if [ x$feature_platform_search_hint = xy ]; then | ||
+ | search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 3333-3333 | ||
+ | else | ||
+ | search --no-floppy --fs-uuid --set=root 3333-3333 | ||
+ | fi | ||
+ | chainloader /EFI/Microsoft/Boot/bootmgfw.efi | ||
+ | } | ||
+ | |||
menuentry 'Bootloader Lilo sur sda7' { | menuentry 'Bootloader Lilo sur sda7' { | ||
set root=(hd0,7) | set root=(hd0,7) | ||
chainloader +1 | chainloader +1 | ||
} | } | ||
+ | |||
menuentry "Menu grub2 sur sda8" { | menuentry "Menu grub2 sur sda8" { | ||
set root=(hd0,8) | set root=(hd0,8) | ||
configfile /boot/grub/grub.cfg | configfile /boot/grub/grub.cfg | ||
} | } | ||
+ | |||
menuentry "Menu grub-legacy sur sda6" { | menuentry "Menu grub-legacy sur sda6" { | ||
set root=(hd0,6) | set root=(hd0,6) | ||
Ligne 261: | Ligne 302: | ||
=== GRUB_GFXPAYLOAD === | === GRUB_GFXPAYLOAD === | ||
- | On fera la même chose qu'au paragraphe précédent pour les résolutions après Grub avec les paramètres **GRUB_GFXPAYLOAD** et **GRUB_GFXPAYLOAD_LINUX**. | + | On fera la même chose qu'au paragraphe précédent pour les résolutions après Grub avec les paramètres **GRUB_GFXPAYLOAD** et **GRUB_GFXPAYLOAD_LINUX**.<note warning>Cette phrase manque totalement de précision</note> |
==== Fond d'écran ==== | ==== Fond d'écran ==== | ||
Ligne 313: | Ligne 354: | ||
Lancer ensuite la commande de **mise à jour** : | Lancer ensuite la commande de **mise à jour** : | ||
<code>sudo update-grub</code> | <code>sudo update-grub</code> | ||
+ | |||
+ | ===== Sécurité et mot de passe ===== | ||
+ | |||
+ | On peut protéger Grub avec un mot de passe, pour quelques entrées ou tout le menu. | ||
+ | |||
+ | ====Définir le mot de passe==== | ||
+ | Exécutez cette commande pour créer le mot de passe chiffré : | ||
+ | |||
+ | <code>grub-mkpasswd-pbkdf2</code> | ||
+ | |||
+ | Copier le résultat obtenu après les mots « password is » tel que <code>grub.pbkdf2.sha512.10000.095DB0192324CCACC86DB81455C7E45B266FA9570CAFE8FC413A4C756F6666A35CD907EB73BE95D2C469CAA9C8FEB0F278365738B1FD7AB96EDFA15D0442D8D7.2EC836CCB165599D63799071B2069D058E5F42FCEC6804ACCD2C7EA6CF722380F1FF4E5191D7B0385152482E829F3FBB44AA626D59CE609092B8150E610C502B</code> | ||
+ | |||
+ | ===Protéger l’ensemble du menu Grub=== | ||
+ | Editez ce fichier | ||
+ | <code>sudo nano /etc/grub.d/00_header</code> | ||
+ | et ajoutez ce code tout à la fin du fichier, en remplaçant david par l’identifiant souhaité et le mot de passe chiffré. Par exemple : | ||
+ | <code>cat << EOF | ||
+ | set superusers="david" | ||
+ | password_pbkdf2 david grub.pbkdf2.sha512.10000.095DB0192324CCACC86DB81455C7E45B266FA9570CAFE8FC413A4C756F6666A35CD907EB73BE95D2C469CAA9C8FEB0F278365738B1FD7AB96EDFA15D0442D8D7.2EC836CCB165599D63799071B2069D058E5F42FCEC6804ACCD2C7EA6CF722380F1FF4E5191D7B0385152482E829F3FBB44AA626D59CE609092B8150E610C502B | ||
+ | EOF</code> | ||
+ | Enregistrez avec Ctrl+O, fermez le fichier avec Ctrl+X, mettez à jour Grub et redémarrez | ||
+ | <code>sudo update-grub</code> | ||
+ | |||
+ | ===Protéger qu’une seule entrée de Grub=== | ||
+ | Ne modifiez pas le fichier `/etc/grub.d/00_header`, mais éditez le fichier `/etc/grub.d/40_custom`. Il faut donc créer ce fichier manuellement, regardez les rubriques dédiées ci-dessus, sur cette page. | ||
+ | <code>sudo nano /etc/grub.d/40_custom</code> | ||
+ | et ajoutez juste après l’entête des commentaires, en remplaçant david par l’identifiant souhaité et le mot de passe chiffré. En ajoutant –users et l’identifiant dans menuentry. Par exemple : | ||
+ | <code>set superusers="david" | ||
+ | password_pbkdf2 david grub.pbkdf2.sha512.10000.095DB0192324CCACC86DB81455C7E45B266FA9570CAFE8FC413A4C756F6666A35CD907EB73BE95D2C469CAA9C8FEB0F278365738B1FD7AB96EDFA15D0442D8D7.2EC836CCB165599D63799071B2069D058E5F42FCEC6804ACCD2C7EA6CF722380F1FF4E5191D7B0385152482E829F3FBB44AA626D59CE609092B8150E610C502B | ||
+ | |||
+ | # Windows en EFI sur disque GPT : | ||
+ | menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-3333-3333' –users david { | ||
+ | insmod part_gpt | ||
+ | insmod fat | ||
+ | set root='hd0,gpt1' | ||
+ | if [ x$feature_platform_search_hint = xy ]; then | ||
+ | search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 3333-3333 | ||
+ | else | ||
+ | search --no-floppy --fs-uuid --set=root 3333-3333 | ||
+ | fi | ||
+ | chainloader /EFI/Microsoft/Boot/bootmgfw.efi | ||
+ | }</code> | ||
+ | enregistrez avec Ctrl+O, fermez le fichier avec Ctrl+X, mettez à jour Grub et redémarrez | ||
+ | <code>sudo update-grub</code> | ||
+ | |||
+ | |||
+ | |||
===== Autres pages en rapport ===== | ===== Autres pages en rapport ===== |