Edition des option grub

Bonjour à tous

J’ai un soucis sur uen machine fraichement installée avec une debian.
C’est mon grub qui me pose souci.
En effet, dans le menu grub, j’ai le premier choix qui me fait booter sur le sdb1 (qui n’existait que lors de l’installation, le cle étant sda1)
Seulement, depuis que l’install est fini et que j’ai retiré la clé, grub essai de booter sur le sdb1 qui n’existe plus.
A chaque démarrage, je suis donc obligé d’éditer le ligne debian GNU/linux et de remplacer la ligne
linux /boot/vmlinuz-4.9.0.0-amd64 root/dev/sdb1 ro quiet
par
linux /boot/vmlinuz-4.9.0.0-amd64 root/dev/sda1 ro quiet

et la je boot correctement

Je ne trouve pas comment changer ces paramètres de manière définitive .
Comment puis-je faire ?

Bonjour

il te faudrait d’abord mettre à jour le fichier /boot/grub/grub.cfg
ce qui peut être fait simplement depuis le compte root avec la commande :

update-grub

et ensuite, ré-installer le chargeur de boot

Sur ma machine, je n’utilise pas l’UEFI
et avec la commande suivante, toujours depuis le compte root
j’installe le chargeur de boot sur le disque accessible par le fichier de périphérique /dev/sda

grub-install /dev/sda

Bien sûr, si ta machine utilise l’UEFI, la commande pour installer le chargeur de boot sera différente,
d’autres que moi pourront te donner la commande correspondant à ton système.

Effectivement, j’avais trouvé la solution peut après mon post.
Le update-grub fonctionne pargfaitement

Merci pour ta réponse

Je suppose que tu voulais dire root=/dev/sdb1 ?
Ce n’est pas normal. La racine devrait être spécifiée par son UUID, qui est un identifiant persistant au contraire du nom de périphérique d’une partition comme /dev/sdb1 qui peut devenir /dev/sda1 ou vice versa.

Depuis longtemps, en tout cas depuis l’introduction des pilotes ATA basés sur libata, udev, blkid et de l’initrd/initramfs, je n’ai jamais vu une installation de Debian utiliser par défaut un nom de partition comme racine. GRUB a bien une option GRUB_DISABLE_LINUX_UUID dans /etc/default/grub pour ne pas spécifier la racine par UUID, mais elle est désactivée par défaut.

La seule raison de ne pas utiliser les UUID avec un système Debian, c’est de ne pas utiliser d’initramfs, mais les noyaux fournis par Debian ne peuvent pas fonctionner sans initramfs, donc cela implique de ne pas utiliser un noyau fournir par Debian, ce qui ne peut pas arriver avec une installation normale. Et même dans ce cas, depuis Jessie la partition racine peut être spécifiée par son “UUID de partition” (PARTUUID), que le noyau sait lire contrairement à l’UUID classique qui est un UUID de système de fichiers.

Par curiosité, sous quelle forme est spécifiée la racine dans /etc/fstab ?
Et dans /boot/grub/grub.cfg ou le menu de GRUB, après update-grub, la racine est-elle spécifiée par son UUID ou /dev/sda1 ?

Le nom de l’image du noyau est-il vraiment vmlinuz-4.9.0.0-amd64 ou vmlinuz-4.9.0-3-amd64 ? Le second est le nom de l’image du noyau officiel de Debian 9. Si c’est bien le premier, d’où vient-il et y a-t-il un initramfs (/boot/initrd.img* et ligne initrd à la suite de linux dans /boot/grub/grub.cfg et le code de l’entrée de menu de démarrage) ?

Inutile. Réinstaller le chargeur ne se justifie que si le menu de démarrage ne s’affiche pas, ou bien si ce n’est pas le bon GRUB qui se lance. Le contenu de grub.cfg qui détermine le menu ne dépend que de update-grub.

Elle peut être identique. Simplement le périphérique d’amorçage spécifié, sans objet en UEFI, sera ignoré et peut être omis.