Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Configuration grub

8 réponses
Avatar
Vera Mickael
Bonjour,

Suite à une mise à jour de squeeze, en particulier grub, mon
PC ne boote plus. J'ai analysé le problème et j'ai identifié
que le script grub (ou grub-pc) dont je ne me rappelle plus
le nom n'utilise pas la bonne partition racine, hda au lieu
de sda ou quelque chose comme ça.

Je sais booter sur un CD de rescue et faire un chroot pour
regénérer ce scrip grub mais je ne sais pas où indiquer le
nom de cette partition qui contient le racine de mon
installation.

Merci d'avance pour votre aide,
Mickaël

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/4C7381F0.2070106@free.fr

8 réponses

Avatar
Julien Valroff
Le mardi 24 août 2010 à 10:25:20 (+0200), Vera Mickael a écrit :
Date: Tue, 24 Aug 2010 10:25:20 +0200
From: Vera Mickael
To:
Subject: Configuration grub

Bonjour,

Suite à une mise à jour de squeeze, en particulier grub, mon PC ne
boote plus. J'ai analysé le problème et j'ai identifié que le script
grub (ou grub-pc) dont je ne me rappelle plus le nom n'utilise pas
la bonne partition racine, hda au lieu de sda ou quelque chose comme
ça.

Je sais booter sur un CD de rescue et faire un chroot pour regénérer
ce scrip grub mais je ne sais pas où indiquer le nom de cette
partition qui contient le racine de mon installation.



Avec grub2, tout se passe dans /etc/defaut/grub
Il faut bien veiller à exéctuer update-grub2 après l'édition de ce fichier.

@+
Julien

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Sylvain L. Sauvage
Le mardi 24 août 2010 à 11:24:02, Julien Valroff a écrit :
[…]
Avec grub2, tout se passe dans /etc/defaut/grub
Il faut bien veiller à exéctuer update-grub2 après l'à ©dition
de ce fichier.



Variable GRUB_DEVICE (je pense), elle n’est pas définie par
défaut. Sinon, utiliser les UUID.

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Kevin Hinault
Le 24 août 2010 11:24, Julien Valroff a écrit :

Avec grub2, tout se passe dans /etc/defaut/grub
Il faut bien veiller à exéctuer update-grub2 après l'édition de c e fichier.




Pas nécessairement, si on utilise luks, lvm, raid... Il peut y avoir
d'autres sources d'erreurs et l'update-grub (qui en fait est un
grub-mkconfig) va chercher des infos dans d'autres endroits comme le
fstab et device.map par ex (il me semble). Sans parler des scripts
dans /etc/grub.d qui font tout un travail de détection.

Son problème m'en rappel un autre que j'avais eu et où j'ai du
modifier mon /etc/crypttab et régénérer l'initrd :
http://groups.google.fr/group/linux.debian.user.french/browse_thread/thread /19ec2bea90e5198d/fb96f1d3a93f1189

Et un autre lié au premier.
http://groups.google.fr/group/linux.debian.user.french/browse_thread/thread /bdb9776f81979a09/72c7102a103d0c3b

Bref grub2 a plein de possibilités de déconner mais je trouve qu'il
commence à se stabiliser. Le seul problème ce sont les messages
d'erreurs trop peu explicite à mon gout.

Vera, as tu des messages d'erreurs ?

--
Kévin

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/AANLkTimsgT8VToDLVuj+ONyyXyYT=
Avatar
Vera Mickael
Kevin Hinault a écrit :
Le 24 août 2010 11:24, Julien Valroff a écrit :
Avec grub2, tout se passe dans /etc/defaut/grub
Il faut bien veiller à exéctuer update-grub2 après l'édition de ce fichier.




Pas nécessairement, si on utilise luks, lvm, raid... Il peut y avoir
d'autres sources d'erreurs et l'update-grub (qui en fait est un
grub-mkconfig) va chercher des infos dans d'autres endroits comme le
fstab et device.map par ex (il me semble). Sans parler des scripts
dans /etc/grub.d qui font tout un travail de détection.

Son problème m'en rappel un autre que j'avais eu et où j'ai du
modifier mon /etc/crypttab et régénérer l'initrd :
http://groups.google.fr/group/linux.debian.user.french/browse_thread/thread/19ec2bea90e5198d/fb96f1d3a93f1189

Et un autre lié au premier.
http://groups.google.fr/group/linux.debian.user.french/browse_thread/thread/bdb9776f81979a09/72c7102a103d0c3b

Bref grub2 a plein de possibilités de déconner mais je trouve qu'il
commence à se stabiliser. Le seul problème ce sont les messages
d'erreurs trop peu explicite à mon gout.

Vera, as tu des messages d'erreurs ?



Merci pour votre aide.

Dans un premier temps plus rien ne marchait, grub ne
démarrait plus du tout, j'étais passé trop vite je pense sur
une question lors de l'upgrade. J'ai alors demandé à grub de
s'installer sur le bon disque.

Au boot suivant grub a démarré en m'indiquant (de mémoire)
que la partition racine n'est pas la bonne et en me faisant
une suggestion qui est la bonne. Mais je suis bloqué dans le
mini shell qui est lancé lorsque le boot se passe mal.

Je suis alors allé voir le fichier de script grub où j'ai
bien vu que la partition racine n'est pas la bonne.

Je vais aller ce soir voir dans /etc/defaut/grub et je vous
dirai demain si j'ai résolu mon problème.

Merci,
Mickaël

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Vera Mickael
Bonjour,

Je ne suis pas spécialiste du boot et j'ai peur de mal
comprendre.

Il me semble qu'il faut indiquer à grub:
- le disque sur lequel boot le PC et donc sur lequel il faut
installer grub
- la partition qui contient le système qu'il faut démarrer

Si j'ai bien analysé mon problème, il me semble que c'est le
deuxième point qui est mal renseigné sur mon système.

J'ai l'impression que install_device correspond au disque
sur lequel est installé grub, pas la partition qui contient
le système à démarrer.

Mickaël

Luc Novalès a écrit :
Bonjour,

Vera Mickael a écrit :
Bonjour,

Suite à une mise à jour de squeeze, en particulier grub, mon PC ne
boote plus. J'ai analysé le problème et j'ai identifié que le script
grub (ou grub-pc) dont je ne me rappelle plus le nom n'utilise pas la
bonne partition racine, hda au lieu de sda ou quelque chose comme ça.

Je sais booter sur un CD de rescue et faire un chroot pour regénérer
ce scrip grub mais je ne sais pas où indiquer le nom de cette
partition qui contient le racine de mon installation.


Si le but est de lui faire régénérer la bonne conf, il faut lui passer
le paramètre du device par la commande grub-install depuis ton chroot.

# grub-install install_device

Tu peux aussi forcer la détection des disque par

# grub-install --recheck install_device


A+
Luc.





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Vera Mickael
On passe à grub_install le device sur lequel installer grub et la
partition de demarrage par --root-directory (ou copier tous les
fichiers de grub). Cela ne correspond peut être pas à ton problème.



Merci pour cette précision et effectivement cela ne
correspond pas à mon problème.

La commande grub-install permet d'installer grub, ceci
fonctionne correctement.

Quand je fais grub-update, le fichier grub.cfg est généré.
C'est ce fichier qui est mal généré, la partition qui
apparait dans ce fichier n'est pas la partition racine de ma
debian.

Je pense que grub-update donne un certain nom à la partition
racine de ma debian, mais qu'à l'exécution de grub (au boot)
cette partition n'a pas le même nom, le noyau n'est donc pas
trouvé.

Je cherche à influencer la génération du fichier grub.cfg.

Les informations pour générer ce fichier sont contenues dans
le répertoire /etc/grub.d/, on peut ajouter des entrées mais
j'aimerais éviter et utiliser les entrées automatiques
générées par debian.

Est-ce que quelqu'un sait comment forcer le nom de la
partition qui est écrite dans grub.cfg ?

Merci,
Mickaël

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Kevin Hinault
Le 24 août 2010 15:50, Vera Mickael a écrit :

Est-ce que quelqu'un sait comment forcer le nom de la partition qui est
écrite dans grub.cfg ?



Comme l'a fait remarquer Sylvain déjà : pourquoi n'utilises tu pas les
UUID plutôt que les noms des disques ?

Pour ça il suffit de commenter la ligne suivante dans /etc/default/grub

#GRUB_DISABLE_LINUX_UUID=true

En fait le script /etc/grub.d/10_linux est exécuté purement et
simplement par grub-mkconfig qui lui va d'abord chercher les UUID
grâce à grub-probe.

Si tu veux en avoir le coeur net, tu peux exécuter à la main le script
pour simuler le travail de grub-mkconfig :

Exportes des variables d'environnement :
# export GRUB_DISABLE_LINUX_UUID="false"
# export GRUB_DEVICE=`grub-probe --targetÞvice /`
# export GRUB_DEVICE_UUID=`grub-probe --device $GRUB_DEVICE --target=fs _uuid`
# export GRUB_DEVICE_BOOT=`grub-probe --targetÞvice /boot`
# export GRUB_DEVICE_BOOT_UUID=`grub-probe --device $GRUB_DEVICE_BOOT
--target=fs_uuid`

Puis exécutes le script.
# /etc/grub.d/10_linux

Chez moi ça se traduit comme ça:
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
menuentry 'GNU/Linux, avec Linux 2.6.32-5-amd64' --class gnu-linux
--class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set 3190b419-d40f-4bc3-9a5c-012f66e1 8650
echo 'Chargement de Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64
root=UUID190b419-d40f-4bc3-9a5c-012f66e18650 ro
echo 'Chargement du disque mémoire initial ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
[... ]

Tentes
# export GRUB_DISABLE_LINUX_UUID="true"

et tu verras plutôt :
linux /boot/vmlinuz-2.6.32-5-amd64 root=/dev/sda8 ro


Attention il y a une subtilité dans le script /etc/grub.d/10_linux,
sur machine où le / est dans un lvm alors le script force
l'utilisation du nom du device dans /dev pour le paramètre root= pass é
au noyau. Soit /dev/mapper/[Quelquechose]-root

Bref tout ça pour dire que c'est le script 10_linux qui écrit le
partie du fichier grub.cfg qui t'interesse et il st très facilement
lisible.


Merci,
Mickaël



Oups pardon je t'ai appelé Vera un plus tôt :/

--
Kévin

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/AANLkTi=
Avatar
Vera Mickael
Merci Kevin pour cette réponse complète qui m'a permis de
résoudre mon problème, je n'y ai pas passé 1 mois je te
rassure :-)

La ligne #GRUB_DISABLE_LINUX_UUID=true était bien commentée,
je ne sais pas pourquoi à la mise à jour de Debian la
configuration de Grub n'a pas été mise à jour, par contre
j'ai compris grâce à l'étude du script pourquoi la
regénération du script grub ne fonctionnait pas avec un
rescue CD.

Le script grub-mkconfig cherche les UUID dans
/dev/disks/by-uuid. Or dans un chroot le répertoire /dev est
vide ! Et avec un répertoire vide le script n'utilise pas
les UUID.

Pour contourner ce problème, il faut monter le répertoire
/dev à l'emplacement /monpointdemontagechroot/dev avec mount
--bind

Automatiquement le script grub fonctionne.

Merci encore Kevin pour ton mail qui m'a permis de gagner
énormément de temps.

Mickaël


Le 24/08/2010 16:57, Kevin Hinault a écrit :
Le 24 août 2010 15:50, Vera Mickael a écrit :

Est-ce que quelqu'un sait comment forcer le nom de la partition qui est
écrite dans grub.cfg ?



Comme l'a fait remarquer Sylvain déjà : pourquoi n'utilises tu pas les
UUID plutôt que les noms des disques ?

Pour ça il suffit de commenter la ligne suivante dans /etc/default/grub

#GRUB_DISABLE_LINUX_UUID=true

En fait le script /etc/grub.d/10_linux est exécuté purement et
simplement par grub-mkconfig qui lui va d'abord chercher les UUID
grâce à grub-probe.

Si tu veux en avoir le coeur net, tu peux exécuter à la main le script
pour simuler le travail de grub-mkconfig :

Exportes des variables d'environnement :
# export GRUB_DISABLE_LINUX_UUID="false"
# export GRUB_DEVICE=`grub-probe --targetÞvice /`
# export GRUB_DEVICE_UUID=`grub-probe --device $GRUB_DEVICE --target=fs_uuid`
# export GRUB_DEVICE_BOOT=`grub-probe --targetÞvice /boot`
# export GRUB_DEVICE_BOOT_UUID=`grub-probe --device $GRUB_DEVICE_BOOT
--target=fs_uuid`

Puis exécutes le script.
# /etc/grub.d/10_linux

Chez moi ça se traduit comme ça:
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
menuentry 'GNU/Linux, avec Linux 2.6.32-5-amd64' --class gnu-linux
--class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set 3190b419-d40f-4bc3-9a5c-012f66e18650
echo 'Chargement de Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64
root=UUID190b419-d40f-4bc3-9a5c-012f66e18650 ro
echo 'Chargement du disque mémoire initial ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
[... ]

Tentes
# export GRUB_DISABLE_LINUX_UUID="true"

et tu verras plutôt :
linux /boot/vmlinuz-2.6.32-5-amd64 root=/dev/sda8 ro


Attention il y a une subtilité dans le script /etc/grub.d/10_linux,
sur machine où le / est dans un lvm alors le script force
l'utilisation du nom du device dans /dev pour le paramètre root= passé
au noyau. Soit /dev/mapper/[Quelquechose]-root

Bref tout ça pour dire que c'est le script 10_linux qui écrit le
partie du fichier grub.cfg qui t'interesse et il st très facilement
lisible.


Merci,
Mickaël



Oups pardon je t'ai appelé Vera un plus tôt :/




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/