Faire une (ré)installation propre de GRUB, mais comment ?

Bonjour,

J’ai fait n’importe quoi avec mes os, c’est le bazar :unamused:
Ce qui jusqu’à présent était relativement peu gênant, malheureusement en essayant d’installer debian squeeze, j’ai tout cassé le(s?) grub…

Il faut donc que je revoit de A à Z la manière dont mon ordinateur gère ses divers OS.
J’ai deux disques durs. Sur le premier il rest windows xp comme système. C’était une erreur de ma part d’installer un système sur ce disque dur parce qu’il est plus lent en écriture et surtout que j’y stocke mes données, donc autant le faire durer.
Sur le second j’ai donc installé mes linux, c’est à dire que je m’amuse à tester une distribution après l’autre, en essayant d’avoir une distribution toujours opérationelle pour le travail de bureau. Donc en moyenne trois distributions. C’est pour le plaisir de bidouiller, de tester et d’apprendre… :mrgreen:

Je suis à peut prêt sûre que les mbr des deux disques sont bidouillés. Seulement là, ça n’a plus tenu les bidouilles. Il est donc temps de faire ça comme il faut.

D’après ce que j’ai lu, on peut installer chaque grub à la base de la partition de son système, le mbr hébergeant quand à lui un boot loader genre GAG (mais pourquoi pas grub aussi ?) qui redirige vers chacun de ces systèmes. L’intérêt étant que quand on installe un nouveau système, ça ne met pas le bazar.

Je me demande si cette technique ne ralentit pas le démarrage ? En temps normal, j’aime bien passer à côté de l’ordi, l’allumer, faire autre chose et revenir pour trouver mon système préféré (selection par défaut) déjà allumé. Là je crains que ça marche pas aussi bien. En même temps, faut bien tester parce que bon, là, de toute façon, ça ne s’allume plus…

Cependant avant de faire n’importe quoi, j’aimerais un avis, des conseils, ou une confirmation que je fais comme il faut.

Au niveau de l’architecture on a donc :
sda1 > windows xp
sda2 >données (pas la peine de voir au démarrage bien sûr) :smiley:
sdb1 >swap
sdb2 >distribution en test
sdb3 >debian (distribution qui démarrera par défaut, que je maintiendrait opérationelle et aussi stable que possible :wink: )

Il faut que j’installe grub sur la base de la partition donc

grub-install /dev/sdb3 pour debian
Mais il faut aussi que sur le mbr il y ait quelque chose qui indique où faut aller ?
Ce serait grub-install /dev/sda mais où je le configure ?

Je n’arrive pas à comprendre comment agencer ça. Dans quel ordre faire les actions, et où chaque grub doit être configuré.

Je vais donc attendre patiement une réponse avant de m’arracher tous les cheveux ou de faire plus de bêtises. :mrgreen:

Edit : J’ai une erreur bizarre.

[quote]grub-install hd1,3
Searching for GRUB installation directory … found: /boot/grub
The file /boot/grub/stage1 not read correctly.[/quote]
Le fichier stage1 semble avoir un souci, la plupart des manip que je tente bloquent à ce niveau.

Tu installes Grub sur le mbr et c’est tout.
donc, pour ton exemple :

grub-install /dev/sdb

Si tu fais ça à partir de ta Debian qui va bien, le Grub la choisira en démarrage.
Sinon, ça se programme facilement ensuite, on te dira comment faire.
Ça, c’est pour le DD Linux mais pour le second avec win, je ne sais pas car je ne pratique plus depuis au moins 7 ans.

Le problème c’est ce fichier “stage1” qui bloque à chaque fois. J’ai vu qu’on pouvait en trouver la copie dans /usr/share/grub mais rien de tel chez moi. Ce dossier est assez vide.

J’ai essayé de jongler entre grub1 et 2 (en installer un, désinstaller l’autre, retenter les manip, puis recommencer dans l’autre sens) sans arriver à plus de résultat. Je me demande si je sélectionne le bon paquet de grub à installer, ou bien s’il faut faire une manœuvre spéciale quand le paquet est installé ?

Je me répond à moi-même mais j’ai un peu avancé.
J’y suis allé en bourrin et en recopiant une solution vu ailleurs, donc c’est le paquet grub-pc que j’ai installé. Sans rien enlever donc j’espère qu’il n’y aura pas trop de conflit, va sans doute falloir que je fasse du ménage dans les paquets ?

[code]root@localhost:/# apt-get install grub-pc
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
Paquets suggérés :
desktop-base
Les paquets suivants seront ENLEVÉS :
grub-efi-amd64
Les NOUVEAUX paquets suivants seront installés :
grub-pc
0 mis à jour, 1 nouvellement installés, 1 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Il est nécessaire de prendre 997 ko dans les archives.
Après cette opération, 12,3 ko d’espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1 http://ftp.univ-pau.fr/linux/mirrors/debian/ squeeze/main grub-pc amd64 1.98+20100804-11 [997 kB]
997 ko réceptionnés en 2s (389 ko/s)
Préconfiguration des paquets…
Impossible d’écrire le journal, échec d’openpty()
(/dev/pts est-il monté ?)
(Lecture de la base de données… 24269 fichiers et répertoires déjà installés.)
Suppression de grub-efi-amd64 …
Traitement des actions différées (« triggers ») pour « man-db »…
Impossible d’écrire le journal, échec d’openpty()
(/dev/pts est-il monté ?)
Sélection du paquet grub-pc précédemment désélectionné.
(Lecture de la base de données… 24075 fichiers et répertoires déjà installés.)
Dépaquetage de grub-pc (à partir de …/grub-pc_1.98+20100804-11_amd64.deb) …
Traitement des actions différées (« triggers ») pour « man-db »…
Impossible d’écrire le journal, échec d’openpty()
(/dev/pts est-il monté ?)
Paramétrage de initramfs-tools (0.98.7) …
update-initramfs: deferring update (trigger activated)
Paramétrage de grub-pc (1.98+20100804-11) …
Generating core.img
Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_postinst
Running update-grub Legacy to hook our core.img in it
Searching for GRUB installation directory … found: /boot/grub
Searching for default file … found: /boot/grub/default
Testing for an existing GRUB menu.lst file … found: /boot/grub/menu.lst
Searching for splash image … none found, skipping …
Found GRUB 2: /boot/grub/core.img
Found kernel: /boot/vmlinuz-2.6.32-5-amd64
Updating /boot/grub/menu.lst … done

Generating grub.cfg …
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
Cannot find list of partitions! (Try mounting /sys.)
done
Traitement des actions différées (« triggers ») pour « initramfs-tools »…
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.
Warning: LBA32 addressing assumed
Warning: /dev/sdc is not on the first disk
Warning: The boot sector and map file are on different disks.
Fatal: Illegal ‘root=’ specification: /dev/sdc3
run-parts: /etc/initramfs/post-update.d//lilo exited with return code 1
dpkg : erreur de traitement de initramfs-tools (–configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d’état 1
configured to not write apport reports
Des erreurs ont été rencontrées pendant l’exécution :
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
[/code]

Malgré des erreurs lors de l’install, j’ai re-tapé la commande :

root@localhost:/# grub-install /dev/sdb Installation finished. No error reported.
Yeah :041 ça avance !

Je me demande si ça va démarrer, quand même, car le premier disque à être lu est sda, où il y a un grub2 dans le mbr qui ne sait plus où aller. Je tente et j’éditerais mon message en fonction des résulats.

Si tu veux que ton premier disque lu soit sdb, au départ, tu vas dans le bios et tu règles.
Les Bios ne sont pas tous les mêmes mais chez moi, par exemple, il me faut taper sur “suppr” pour l’ouvrir au boute, ensuite, je vais dans “démarrage” et la j’ai le choix du boute en première ligne.
“entrée” et tu choisis le bon DD.
Puis F10 et de nouveau “entrée”

Salut,

Et quand tu auras changé l’ordre de boot de test disques ton Windows ne fonctionneras plus :laughing: :laughing:

J’avais une config qui ressemblai à ça il y a longtemps. J’avais un GRUB sur chaque disque, et j’allais dans le BIOS pour choisir entre win et linux(s).
J’ai maintenant réglé le problème en ayant juste une debian d’installée, et tout le reste en machine virtuelle.

Donc je confirme, ça a marché, j’ai de nouveau un ordi qui fonctionne.

J’ai trouvé, un peu tard, la raison pour laquelle GRUB était fâché. En tout cas je crois que c’est ça. J’ai fait mon installation à partir d’une clé USB, comme je bootais dessus en premier, il semblerais que ça fasse du mic-mac dans les notations, sdb devenant sdc, etc…
Quelque part c’est bizarre que j’ai réussi à réparer si c’est la vrai raison, puisque je suis passé par un livecd et que je démarrais aussi sur la clé usb. Bref…

Par contre c’est le bazar. Je n’ai pas encore essayé de démarrer windows (je ne l’utilise pas beaucoup, je passe plus de temps à bidouiller qu’à jouer au final :unamused: ) par contre j’ai essayé de démarrer ubuntu ; ça veut pas. C’est positif parce que windows et les divers ubuntu sont detectés (les noyaux pas nettoyés), mais il y a quelque chose qui ne marche plus. En fait ubuntu se lance, mais reste figé sur l’écran violet de démarrage.

Bon, ce n’est pas bien grave, puisque cette partition va être nettoyé… Mais lorsque je vais installer un autre système à la place, qu’est-ce qu’il faut que je fasse comme manip pour ne pas tout réécraser de nouveau ? Je n’installe pas grub du tout ? Je l’installe en début de partition et celui dans le mbr va suivre tout seul ?

J’avais aussi un problème avec initramfs-tools qui régulièrement faisait une erreur (on en voit là-haut dans le code), je viens de la régler. En fait, j’avais oublié de désinstaller lilo. :mrgreen: donc sur le sujet, ça fait une question de moins, mais autant donner la solution tout de suite si quelqu’un rencontre le même problème.

Personnelement quand je veux tester un autre os linux.
j’installe tout sauf le gestionnaire d’amorcage, ensuite je chroot pour

update-grub

et 9 fois sur 10 grub détecte si il y a un autre os qui est apparu.

Sinon il y a plusieurs façons d’aborder le problème…

Et la fois sur 10 ou ça ne détecte pas ?
Cependant ça doit se présenter rarement avec les distributions actuelles.

Je me demande encore comment rendre tout ça “propre”. Par exemple faut-il supprimer le fichier /boot en dehors de la partition avec le système par défaut ?

Quand il y a plusieurs noyaux affichés (comme c’est le cas actuellement sur ubuntu), faut-il que je passe automatiquement par la distribution en question pour faire le ménage ou bien peut-on faire ça depuis debian, vite fait bien fait mais surtout quand on y pense 8) (mémoire de poisson rouge) ?

Je trouve que GRUB 2 est parfois plus complexe à manipuler que grub 1. Il est très intéressant sur pas mal de point, j’aime beaucoup l’auto-detection des systèmes, mais j’ai du mal à savoir où est chaque chose à modifier…

Tu as plétore de solutions, entre autres :

  • installer le grub d’une distribution sur le mbr, et les grubs des autres distributions à la racine de leur partition.
    Sur le grub du mbr, tu rajoutes une entrée « chainload » pour chaque autre distribution.
    Ainsi, chaque distrib mettra à jour automatiquement son grub et tout roule (enfin, toutes les distributions ne mettent pas à jour grub automatiquement).

  • configurer tes distribs pour qu’elles ne mettent pas le noyau à jour automatiquement, et qu’elles ne modifient pas la conf de grub.
    Sous debian, la mise à jour automatique du noyau se fait à l’aide d’un paquet linux-image-? qui n’installe rien mais dépend toujours du noyau le plus récent disponible ; et la mise à jour du bootloader se désactive en éditant /etc/kernel.img.
    Ainsi tu configures ton grub une bonne fois pour toutes, et ça roule…

  • utiliser os-prober (paquet du même nom) qui détecte automatiquement les systèmes installés, lors de la mise à jour de grub.

Hi,

Il me semble qu’il faut vraiment utiliser (voir dans fstab) l’identification des disques par UUID.
J’ai fait une installation sans utiliser les UUID disques et grub se mélange les pinceaux.

A moins que maintenant le problème soit résolu ? :think:

Le problème n’est pas vraiment résolu.
Bon, je démarre, grub se lance comme il faut, debian aussi, ainsi que windows (ouf). Par contre l’ancien ubuntu n’est plus accessible. Ce n’est pas très grave en soit :smiley:
Je n’arrive pas encore à comprendre comment configurer tout ça comme il faut, ça vient petit à petit. Si le système actuel fonctionne, je ne n’ai pas encore compris comment tout ça fonctionnait, donc il est fort probable que je refasse des bêtises le jour où je teste un autre système. Rien d’urgent, mais je vais continuer à poser des questions débiles sans doute :005

Par contre il va falloir effectivement que je comprenne comment les UUID fonctionnent, parce que d’un démarrage à l’autre sdb et sda n’indiquent pas les mêmes disques. Très gênant pour configurer le fstab :confused:
Heureusement de base le swap et la partition racine sont indiqués en UUID, pour ma partition de donnée je la monte donc “à la main” après avoir vérifié où elle est (fdisk -l). Le sujet est assez bien documenté, je vais y arriver, enfin j’espère :doh:

[quote=“Lylyrian”]
Par contre il va falloir effectivement que je comprenne comment les UUID fonctionnent, parce que d’un démarrage à l’autre sdb et sda n’indiquent pas les mêmes disques. Très gênant pour configurer le fstab :confused:
Heureusement de base le swap et la partition racine sont indiqués en UUID, pour ma partition de donnée je la monte donc “à la main” après avoir vérifié où elle est (fdisk -l). Le sujet est assez bien documenté, je vais y arriver, enfin j’espère :doh:[/quote]
Pour les lister en console et voir correctement la correspondance de chaque disque avec son uuid

# blkid

ou si on oublie on peut aussi aller voir dans /dev pour les lister

# ls -l /dev/disk/by-uuid/

Ensuite dans ton fstab… c’est presque la meme chose, il suffit de remplacer le début de la chaîne.
Ça va très vite pour adapter, il y a surement des exemples sur le forum.

bon je suis hors sujet mai:

les rack (pour autemps que la tour le permette)
permette a l’heur actuel de changer de disque comme une lettre a la poste voir mieux, que ce soie en sata ou sata II
en bref:
on installe les rack, a la place des dvd/disque (et non on ne met pas un dvd dans un rack) ensuite
on installe 1 systeme par disque qu’on peux mettre/retirer sans ce faire chi*r… sa demande un peux de finance mai sa reste pas trop chère.
insi on ce prend plus la tête avec windows et grub et compagnie… on sai direct qui est le fautif. évidament il ne faut pas allumer ou mettre 2 disque en meme temps (en principe sa fait rien de dramatique mai bon…)

vala je :arrow_right:

[quote=“panthere”]… évidament il ne faut pas allumer ou mettre 2 disque en meme temps (en principe sa fait rien de dramatique mai bon…)

vala je :arrow_right:[/quote]
J’utilise le système des racks depuis 7 ou 8 ans sur un P4 et il m’arrive fréquemment de “brancher” 2 racks en même temps.
Exemple, pour la sauvegarde de ma machine “serveur”, je travaille sur trois machines et quatre DD :confused:
machine “serveur” = 1 DD
machine principale : commande du serveur en SSH = 1 DD
P4 : DD1 = Squeeze sur laquelle je monte le DD2 qui sert uniquement aux sauvegardes, pas d’OS dessus

Depuis que j’ai changé mes 2 switch, les racks franchement j’en utilise plus du tout.
j’ai remplacé ça par des dissipateurs de chaleur passifs, c’est moins cher et je trouve que c’est mieux pour la durée de vie du disque.

Pour la sauvegarde je passe par le réseau, rsync ou drdb/heartbeat suivant le type de données, mais je le fais plus manuellement.
Si je bouge un disque, c’est qu’il est mort.

On voit bien même sur du matériel d’entrée de gamme c’est des cartes réseau 1000 Mbit/s maintenant.

Je tiens juste à souligner que même ( surtout ??? ) si on a du vieux matos…
Ca vaut le coup d’investir dans un routeur/switch et quelques cartes réseaux de qualité.

Dès qu’on parle d’acheter un ou plusieurs nouveaux disques durs… il faut y penser vu le prix !!
Au final c’est un vraiment un bon investissement et ca permet d’envisager son réseau local façon bien plus efficace.

Le gain de bande passante sortante & temps de maintenance est flagrant.