# GRUB option os-prober désactivée

**URL:** <https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457>\
**Category:** Trucs et Astuces\
**Tags:** os-prober, grub\
**Created:** [Avril 27, 2022, 6:52 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457 "2022-04-27T18:52:47Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Avril 27, 2022, 6:52 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/1 "2022-04-27T18:52:47Z")

</div>

Une petite astuce - _pour ne pas laisser filer_ - concernant Grub :

Il y a quelques semaines, un changement «&nbsp;majeur&nbsp;» a été annoncé pour Grub, du fait que par défaut les autres OS installés sur le même ordinateur ne seront plus détectés et donc encore moins affichés dans le menu de Grub.  
_C’est effectif sur Sid, et le deviendra à terme sur Stable._

Avec des droits admins|root :

⇒ Pour réactiver cette option - _attention pour des raisons de sécurité dues à des failles dans os-prober, ce n’est pas recommandé_ - il est nécessaire :

- d’éditer le fichier `/etc/default/grub` pour y ajouter l’option `GRUB_DISABLE_OS_PROBER=false` - par exemple, en fin de fichier.

⇒ ou **configurer soit-même en éditant le fichier `/etc/grub-d/40_custom` pour ajouter** les informations adéquates - voire le [post ci-dessous](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/5) 😉

* * *

Pour finir, exécuter le binaire `update-grub` pour que Grub détecte à nouveau ledit(s) OS et les affiche dans son menu au démarrage de votre machine.

Voilà !

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Avril 28, 2022, 4:28 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/2 "2022-04-28T04:28:55Z")

</div>

Mais, du coup, il ne faudrait pas s’assurer que le paquet `os-prober` soit installé ?  
Logiquement, il ne devrait plus être installé automatiquement si les autres OS n’apparaissent plus.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Avril 28, 2022, 8:01 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/3 "2022-04-28T08:01:42Z")

</div>

> [@Almtesh](#):
>
> il ne faudrait pas s’assurer que le paquet `os-prober` soit installé

à-priori, il continue à l’être ; mais ça ne fera pas de mal de s’en assurer 😉

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Mai 19, 2022, 11:35 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/4 "2022-05-19T11:35:24Z")

</div>

> [@PengouinPdt](#):
>
> par défaut les autres OS installés sur le même ordinateur ne seront plus détectés

Raison invoquée : possibles failles de sécurité dans les scripts de détection d’os-prober.

> [@PengouinPdt](#):
>
> Pour réactiver cette option

Ou bien en profiter pour abandonner os-prober, qui n’est pas sans défauts, et ajouter soi-même la prise en charge des autres systèmes installés dans /etc/grub.d/40\_custom. Ce n’est pas très compliqué, par exemple :

```
menuentry 'Debian GNU/Linux 10' {
        insmod part_gpt
        insmod btrfs
        search --no-floppy --fs-uuid --set=root 8fdc2367-1ef9-4036-bf6a-62cac6b6caac
        configfile /boot/grub/grub.cfg
}

```

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 19, 2022, 12:58 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/5 "2022-05-19T12:58:06Z")

</div>

> [@PascalHambourg](#):
>
> Ce n’est pas très compliqué, par exemple :

Et, bien non ce n’est pas si simple - car il faut connaître en premier l’UUID concernant la partition où se trouve le système d’exploitation, et ensuite il faut adapter l’exemple que tu mentionnes - donc, je corriges l’exemple que tu donnes et en sus j’en donnerais pour Windows.

* * *

En admettant que la partition où se situe l’OS en question soit sur le premier ou seul disque dur, tel que /dev/sda, et soit la troisième, soit /dev/sda3 :

```sh
# blkid /dev/sda3
/dev/sda3: UUID="8fdc2367-1ef9-4036-bf6a-62cac6b6caac" UUID_SUB=" ***" BLOCK_SIZE="4096" TYPE="brtfs" PARTUID="***"

```

Voilà, là on peut reprendre ton exemple !

* * *

Concernant Windows :

```sh
# blkid /dev/sda3
/dev/sda3: LAVEL="OS" BLOCK_SIZE="512" UUID=" ***" TYPE="ntfs" PARTUUID="***"

```

Sauf si Windows a été installé en UEFI, il faut cibler la partition UEFI !

* * *

Puis concernant le fichier **40\_custom** dans le répertoire /etc/grub.d, il faut ajouter :

```auto
menuentry "Windows" --class windows --class os {
   insmod ntfs # à commenter si UEFI
   search --no-floppy --set=root --fs-uuid COPIEZ-UUID
   ntldr /bootmgr # à commenter si UEFI
   # chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi # à décommenter si UEFI
}

```

_PS : j’ai essayé de nommer le fichier tel que 20\_windows et de le sourcer dans le fichier 40\_custom, mais l’entrée ne se fait pas dans Grub - cf le fichier README_. ☹

Et, pour finir, bien sûr, exécuter `upgrade-grub`

* * *

Voilà !  
Là, l’information utile est complète.

PS : Donc, non ce n’est pas simple, loin s’en faut car il ne faut pas se tromper d’UUID, de type de partition, etc…

PS 2 : j’ai modifié le premier post en conséquence !

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Mai 19, 2022, 2:11 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/6 "2022-05-19T14:11:49Z")

</div>

> [@PengouinPdt](#):
>
> non ce n’est pas si simple

Je n’ai pas écrit que c’était simple, seulement que ce n’est pas très compliqué.

> [@PengouinPdt](#):
>
> `blkid /dev/sda3`

On peut aussi utiliser la commande `grub-probe` fournie par GRUB, dont la sortie est au format attendu par GRUB :

```
# grub-probe -d -t fs_uuid /dev/sda3

```

Et au cas où le système de fichiers n’est pas dans une partition mais un volume logique LVM ou un ensemble RAID, on peut utiliser une variante de cette commande qui affiche le nom de périphérique GRUB :

```
# grub-probe -d -t drive /dev/mapper/VG_name-LV_name
(lvmid/mDfh0M-5reQ-KjbV-G4Xp-kqqm-oZTb-loInBz/ExmVBR-8D6d-x5Fo-ti1i-B8s3-dwjW-1bwbpo)

```

On peut alors remplacer la commande «&nbsp;`search`&nbsp;» dans l’entrée de menu par :

```
set root=lvmid/mDfh0M-5reQ-KjbV-G4Xp-kqqm-oZTb-loInBz/ExmVBR-8D6d-x5Fo-ti1i-B8s3-dwjW-1bwbpo

```

ou bien directement sans passer par `grub-probe` :

```
set root=lvm/VG_name-LV_name

```

(les parenthèses sont facultatives dans la variable `$root`)  
La première forme basée sur les UUID LVM internes est plus robuste, la seconde basée sur les noms de VG et LV est plus lisible. C’est un peu comme les UUID et les LABEL.

> [@PengouinPdt](#):
>
> Sauf si Windows a été installé en UEFI, il faut cibler la partition UEFI !

Oui, et aussi que GRUB soit installé pour l’amorçage UEFI sinon ce n’est pas compatible.  
Note : pas besoin de mettre (${root}) devant le chemin, c’est implicite.

> [@PengouinPdt](#):
>
> j’ai essayé de nommer le fichier tel que 20\_windows et de le sourcer dans le fichier 40\_custom,

Sourcé comment ?  
Si tu crées un nouveau fichier contenant une entrée de menu, il faut qu’il commence par les 2 premières lignes du fichier 40\_custom :

```
#!/bin/sh
exec tail -n +3 $0

```

Edit : et il doit être exécutable (`chmod +x`) puisque c’est un script shell. Ainsi il est exécuté automatiquement par `grub-mkconfig` (lui-même appelé par `update-grub`), pas besoin de le sourcer.

> [@PengouinPdt](#):
>
> Là, l’information utile est complète.

Je n’irais pas jusque là, mais c’est une bonne introduction. Pour ajouter un OS Linux j’ai utilisé la commande `configfile` pour charger son fichier grub.cfg, mais ça ne fonctionne que si ce fichier existe et est compatible avec le GRUB principal. Si la partition /boot est séparée, il faut spécifier cette partition et non la racine, et le chemin est /grub/ au lieu de /boot/grub/. Certaines distributions nomment le répertoire «&nbsp;grub2&nbsp;» au lieu de «&nbsp;grub&nbsp;».

En l’absence de fichier grub.cfg compatible, il y a d’autres méthodes possibles comme chaîner le chargeur d’amorçage (secteur d’amorce BIOS ou exécutable EFI) avec `chainloader` ou amorcer la core image BIOS de GRUB (/boot/grub/i386-pc/core.img) avec `multiboot`.

Pour motiver les troupes, voici quelques avantages par rapport à os-prober :

- ce n’est à faire qu’une fois par OS à inclure dans le menu
- ça fonctionne dans certains cas où os-prober ne fonctionne pas correctement
- on peut donner le nom souhaité à l’entrée de menu (utile avec Windows 11 qui n’est pas correctement identifié - ceci dit le patch est trivial, ou si on a plusieurs instances d’une même distribution)
- l’exécution de `update-grub` est plus rapide
- pas besoin d’exécuter `update-grub` sur l’OS principal après avoir ajouté ou supprimé un noyau ou modifié les paramètres du noyau dans un OS secondaire

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 19, 2022, 2:28 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/7 "2022-05-19T14:28:36Z")

</div>

Je te remercie pour les explications complémentaires.

Je reste d’avis suivant : «&nbsp;_pourquoi faire simple quand on peut faire très compliqué_ !&nbsp;» _(c’est de l’ironie, bien-sûr)_ - exit os-prober, vive la complexité - dans ce cas - de la configuration manuelle…  
☹

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Mai 19, 2022, 2:47 UTC](https://www.debian-fr.org/t/grub-option-os-prober-desactivee/86457/8 "2022-05-19T14:47:16Z")

</div>

D’accord, j’ai passé un peu de temps pour la mise en place, mais maintenant c’est un vrai confort sur une machine dont le disque contient plus de 20 partitions et volumes logiques LVM et 5 OS. Je ne regrette pas l’investissement.
