Debian en RAID 1, maj vers GRUB 2... error 15

Bonjour à tous,

Voilà, tout est dans le titre ou presque, mais quelques explications s’imposent :
J’ai une vieille machine sur laquelle il y à un paire d’année maintenant, j’ai installé deux disques durs sur lesquels j’ai mis debian en RAID 1 (5 partitions chacun = md1 jusque md5). (qui me sert de serveur de développement, serveur web et surtout serveur de fichiers)

Depuis 4 jours, gros soucis, j’ai voulu faire un aptitude upgrade.
Il m’a mis à jour le grub. voyant cela, je lance un redémarrage de la machine et là je vois une ligne qui dit qu’il faut que je tapes un truc genre update-grub-quelquechose.

Une fois la machine redémarrée, j’ai donc tapé cette commande.
Il m’a demandé où l’installer, j’ai choisis md1 (la partition /boot normalement)
et là, au reboot, plus rien, j’obtiens :

GRUB Loading Stage 1.5. Error 15

j’ai cherché d’où ça venait, trouvé des solutions, mais elles impliques d’accéder au système de fichiers. Hors, surement à cause du RAID, je n’arrive pas à monter l’un ou l’autre (ou les 2) disques durs à partir d’un live cd.

Ça m’embête d’autant plus qu’en tant que serveur de fichier en RAID 1, je n’hésitais pas à y mettre des fichiers sensibles…

Merci d’avance pour votre aide,
Je suis là si vous voulez avoir plus d’infos.

Amicalement,
Le Drick

Je ne te répondrai pas car pas du tout spécialiste “raid”.
Toutefois, je t’indique qu’il y a déjà eu plusieurs fils sur la mutation Grub legacy ==> Grub 2.
Fais quelques recherches et tu trouveras certainement réponse à ta question.
Je te conseille de rechercher avec
http://www.google.com/cse/home?cx=003036737311975801323%3Ayeiooiloi7c
Sinon, le wiki en parle aussi.

Edit :
Rien qu’avec cette requête, il y a déjà pas mal de réponses : “grub legacy vers grub2”

Bonjour et merci de me répondre.

J’ai vu tous ces topics consacrés au passage de grub legacy vers grub 2, mon soucis est que je ne peux pas monter les disques à partir d’un live cd…ou alors je ne sais pas comment faire.

J’ai essayé en enlevant un disque, en installant mdadm sur le live, mais rien a faire ça me renvoit un truc genre “unable to mount”.

De plus j’ai pas envie d’essayer de faire toutes ces solutions “clé en mains” genre supergrubdisk, sans avoir fait une sauvegarde de mes données avant.

En fait ma question serait plutot “comment monter des partitions RAID depuis un live CD”…

S

Le raid 1, c’est le mirroring ! Je doute que tu perdes quoi que ce soit.

Pour ton problème, peux-tu être plus explicite, s’il te plaît ? Même en raid ce que tu veux, tu vois toujours tes disques comme si de rien était : /dev/sda1, /dev/sda2, … ! La prise en charge par le linux du raid, même émulé n’y fait rien, tu retrouves tes disques au même endroit. mdadm permet d’agréger l’ensemble selon le raid choisi, ce sont ces périphériques qui servent ensuitent : Read The Freddy Manual ici

Que donne lshd ou même un simple cat /proc/mdstat, comme précisé dans le wiki ?
cat /etc/fstab ?
cat /boot/grub/menu.lst ?
cat /boot/grub/grub.cfg ?

[quote=“sriliam”]
cat /boot/grub/menu.lst ?
cat /boot/grub/grub.cfg ?[/quote]
:116:naughty:
Ceci est plus juste … :mrgreen:

cat /etc/default/grub 
/etc/grub.d/

grub.d étant un dossier.

menu.lst fût, paix à son âme … :033 :whistle:

Errfff,

je vous retape tout, firefox ne se lance pas à partir du live cd… j’ai vraiment pas de bol moi.

enfin bon, voici les commandes et leurs resultats :

[code]#cat /etc/fstab
aufs / aufs rw 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0
/dev/sda7 swap swap defaultss 0 0
/dev/sdb7 swap swap defaults 0 0

#cat /etc/default/grub
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash"
GRUB_CMDLINE_LINUX=”"[/code]

le reste est commenté donc inutile (ouf)
menu.lst et grub.cfg doesn’t exists.

heuu, mais c’est le grub du livecd ça non ?

merci encore !

On assemble les grappes RAID avec mdadm. Ensuite on peut monter les systèmes de fichiers qui sont dessus, avec mount.
Pour identifier les grappes présentes

Ensuite il ne reste qu’à les assembler, avec mdadm --assemble suivi des options qui vont bien.

Oui ! pour menu.lst … paix à son âme :005

Concernant grub.cfg

:~$ cat /boot/grub/grub.cfg
Il vit ! … :dance:

Sauf qu’il vous dit qu’il n’arrive pas à monter les partitions de ses disques et vous lui demandez la description d’un fichier d’une de ces partitions :017

Bonjour à tous,

Oui Blacksad, c’est exactement ça…du moins était.

Grâce à PascalHambourg j’ai réussi à monter mes partitions dans le /media (mille merci)
J’ai mes grappes avec ta commande, et verifié quelles partitions allaient avec quelles grappes avec la commande

et en comparant les uuid, j’ai pu assembler les grappes avec

\o/

maintenant, il faut que je répare mon problème de grub.
J’ai essayé de monter /dev et /proc, de faire un chroot /media/mondisque

mais là je n’ai ni accès à update_from_grub_legacy
ni à grub-install

comment puis-je réinstaller mon grub en ce cas ?
Encore merci :slightly_smiling:

les fichiers que vous m’aviez demandé (ce qui sont sur la partition en raid) :

cat /boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md1)'
search --no-floppy --fs-uuid --set 23905d94-67d8-4007-9104-6a9c1e8df07a
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md0)'
search --no-floppy --fs-uuid --set cdc3943b-678f-4ace-bc5c-edf0bf7df0a8
set locale_dir=($root)/boot/grub/locale
set lang=fr
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, avec Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
	insmod raid
	insmod mdraid
	insmod part_msdos
	insmod part_msdos
	insmod ext2
	set root='(md0)'
	search --no-floppy --fs-uuid --set cdc3943b-678f-4ace-bc5c-edf0bf7df0a8
	echo	'Chargement de Linux 2.6.32-5-686 ...'
	linux	/boot/vmlinuz-2.6.32-5-686 root=UUID=cdc3943b-678f-4ace-bc5c-edf0bf7df0a8 ro  quiet
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, avec Linux 2.6.32-5-686 (mode de dépannage)' --class debian --class gnu-linux --class gnu --class os {
	insmod raid
	insmod mdraid
	insmod part_msdos
	insmod part_msdos
	insmod ext2
	set root='(md0)'
	search --no-floppy --fs-uuid --set cdc3943b-678f-4ace-bc5c-edf0bf7df0a8
	echo	'Chargement de Linux 2.6.32-5-686 ...'
	linux	/boot/vmlinuz-2.6.32-5-686 root=UUID=cdc3943b-678f-4ace-bc5c-edf0bf7df0a8 ro single 
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, avec Linux 2.6.26-2-686' --class debian --class gnu-linux --class gnu --class os {
	insmod raid
	insmod mdraid
	insmod part_msdos
	insmod part_msdos
	insmod ext2
	set root='(md0)'
	search --no-floppy --fs-uuid --set cdc3943b-678f-4ace-bc5c-edf0bf7df0a8
	echo	'Chargement de Linux 2.6.26-2-686 ...'
	linux	/boot/vmlinuz-2.6.26-2-686 root=UUID=cdc3943b-678f-4ace-bc5c-edf0bf7df0a8 ro  quiet
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-2.6.26-2-686
}
menuentry 'Debian GNU/Linux, avec Linux 2.6.26-2-686 (mode de dépannage)' --class debian --class gnu-linux --class gnu --class os {
	insmod raid
	insmod mdraid
	insmod part_msdos
	insmod part_msdos
	insmod ext2
	set root='(md0)'
	search --no-floppy --fs-uuid --set cdc3943b-678f-4ace-bc5c-edf0bf7df0a8
	echo	'Chargement de Linux 2.6.26-2-686 ...'
	linux	/boot/vmlinuz-2.6.26-2-686 root=UUID=cdc3943b-678f-4ace-bc5c-edf0bf7df0a8 ro single 
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-2.6.26-2-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

et le /etc/default/grub

[code]cat /etc/default/grub

If you change this file, run ‘update-grub’ afterwards to update

/boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT=“quiet"
GRUB_CMDLINE_LINUX=”"

Uncomment to enable BadRAM filtering, modify to suit your needs

This works with Linux (no patch required) and with any kernel that obtains

the memory map information from GRUB (GNU Mach, kernel of FreeBSD …)

#GRUB_BADRAM=“0x01234567,0xfefefefe,0x89abcdef,0xefefefef”

Uncomment to disable graphical terminal (grub-pc only)

#GRUB_TERMINAL=console

The resolution used on graphical terminal

note that you can use only modes which your graphic card supports via VBE

you can see them in real GRUB with the command `vbeinfo’

#GRUB_GFXMODE=640x480

Uncomment if you don’t want GRUB to pass “root=UUID=xxx” parameter to Linux

#GRUB_DISABLE_LINUX_UUID=true

Uncomment to disable generation of recovery mode menu entries

#GRUB_DISABLE_LINUX_RECOVERY=“true”

Uncomment to get a beep at grub start

#GRUB_INIT_TUNE=“480 440 1”
[/code]

[quote=“le drick”]J’ai mes grappes avec ta commande, et verifié quelles partitions allaient avec quelles grappes avec la commande

mdadm --examine /dev/sdX

et en comparant les uuid, j’ai pu assembler les grappes avec

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1[/quote]

Tu t’es compliqué la vie pour rien. Il aurait suffi d’assembler les grappes par UUID, sans te préoccuper des partitions sous-jacentes.

Certes, mais c’est pas l’problème.

installe grub-install via dpkg déjà installé sur la distrib, soit alors un chroot.
Ensuite, grub-install /dev/md0, via chroot et zou : cela devrait être ok.
Cela étant dit, je ne comprends pas trop comment grub.cfg peut-être présent alors que update-grub et grub-install ne le sont pas. De même, tu devrais avoir le grub-install de la live cd : attention c’est n’est pas une distribution debian !!!

Merci pour les fichiers : /boot/grub/menu.lst n’est plus présent effectivement, et c’est toujours une bonne chose de le vérifier.
rien à redire.

Édit : merci de nous tenir au courant.

C’est exactement ce que je me suis dit, je suis pas complètement nouille, j’ai essayé avec la commande (de tête) :

et j’avais un message comme quoi il ne trouvait pas les disques… alors j’ai fait comme ça (ça me rassure de savoir qu’au final j’étais sur la bonne voie au début). Il fallait peut-être que je lui dise le nom du md que je voulais créer…?

@sriliam :
J’installe grub-install et seulement après je lance mes commande pour le chroot ?
C’est vrai que j’ai pas pensé à vérifier si grub-install était présent avant de lancer le chroot…

Bon ben j’essayerai ça dès que je peux et je vous tiens au courant !

@+ et encore merci.

Bon… étant lorrain, je veux bien croire que je suis une quiche (une wiche ?)…mais à ce point je savais pas 0_o.

Voici où j’en suis :
j’ai trouvé le grub-install sur le live cd :

j’ai monté le disque dans /mnt/md0 :

#mount /dev/md0 /mnt/md0 #mount -o bind /dev /mnt/md0/dev/ #mount -t proc /proc /mnt/md0/proc #chroot /mnt/md0 #ls -l /usr Total 0

et de là, comment je vais chercher le grub-install ?
Faut-il que je monte /usr/ du livecd sur mon chroot ? Ca me paraît louche comme manière de faire.

Je rate surement quelque chose…mais quoi ?

Hihi merci beaucoup !

@PascalHambourg :

#mdadm --assemble -u=xxxx.xxxx... mdadm : Bad uuid =xxxx.xxxx...
donc je monte mes grappes comme je l’ai dis plus haut.

Hou You Youille ! Mais qu’il est nu-nuche celui-là ! Avant d’faire du raid, tu devrais juste faire du simple : c’est tout autant raide pour toi, vu ce que je lis. Et ce, même si le raid n’est pas si raide que ça ! :slightly_smiling: ok.

Mais non, tu t’fais du mal !

[quote=“le drick”]j’ai trouvé le grub-install sur le live cd :[/quote] Bah, lance le sur la partoche que t’as crée !

Et pour faire quoi ? Je veux dire qu’avant de le faire, en Unix, tu dois te poser la question pourquoi tu le fais : le (ou les) comment(s) vient (viennent) après, en général.

Démonte moi tout ça :

# umount /mnt/md0/dev /mnt/md0/proc /mnt/md0

Si je me souviens bien la page de manuel de grub de debian (et l’information est à vérifier), grub-install est “incertain”, lorsque la ou une des partitions est montée sur le système, même lorsque grub-install est installé sur une partition en particulier, i.e., pas sur tout le disque ! Bref … à démonter.

#chroot /mnt/md0 #ls -l /usr
Dis moi, connais-tu la commande chroot ! ??? Là, tu fais un chroot de rien du tout puis tu demande de lire /usr, mais l’usr de la racine, pas celui de /mnt/md0. Et Bizarre que ce soit vide …
La commande que tu veux, c’est sans doute quelque chose du genre :

#chroot /mnt/md0 /bin/ls -l /usr

Edit : Oops, c’est moi qui n’est pas utilisé chroot depuis longtemps ! En réalité, il te lance un /bin/bash, ta commande est donc “correcte”, autant pour moi. Se méfier néanmoins des shells dans des shells !

Tu tapes simplement :

un coup de reboot et voit si cela fonctionne !

[quote=“le drick”]Faut-il que je monte /usr/ du livecd sur mon chroot ? Ca me paraît louche comme manière de faire.
Je rate surement quelque chose…mais quoi ?[/quote]
Monte rien : cf plus haut ! Et comprends pourquoi tu fais et cherche pas comment, si je puis me permettre un conseil : ce que je vois, c’est du windows, on y va à taton jusqu’à ce que “ça marche” et après on touche pu !

[quote=“le drick”]
@PascalHambourg :

#mdadm --assemble -u=xxxx.xxxx... mdadm : Bad uuid =xxxx.xxxx...
donc je monte mes grappes comme je l’ai dis plus haut.[/quote]
Hmmm, t’occupes du “gars Joe”, et de toute façon, il faut utiliser des commandes genre uuidgen, ensuite tu doit sans doute “labeller” le disque, etc. L’important c’est le résultat : fais comme tu le sens. Chacun essayes de t’aider du mieux qu’il le peut, crois-moi.

@+

Ouch, merci srilian pour ta franchise :slightly_smiling:

Si c’est en faisant des conneries qu’on apprend…alors je suis en train d’apprendre beaucoup (normalement)

Pour répondre à tout ce que tu viens de me dire, c’est que j’ai cherché comment réinstaller mon grub sur le net
et j’ai trouvé une bonne dizaine de personne sur la toile qui disent :
"Tu montes ton disque dans /mnt/chroot, tu montes /dev dans /mnt/chroot/dev, tu montes /proc pareil et tu lances grub install par dessus"
une adresse sur laquelle j’ai trouvé ça :
http://www.isalo.org/wiki.debian-fr/index.php?title=R%C3%A9installer_Grub2

Alors moi quand je lis 15x la même chose, bah je tente…et voilà où ça me mène :confused:

DONC si je reprends ce que tu me dis, je démonte tout et je lance

juste ça et ça marche 0_o ?

Je sais très bien que vous ne faites que m’aider, je vous en remercie d’ailleurs (un post sur 2 si je ne m’abuse :stuck_out_tongue:).
Grace à vous, j’ai déjà pu faire un backup de mes données et ça…ça vaut de l’or !

J’essaye ta commande et je vous retiens au courant !

Hé mince, c’était trop beau :

# /usr/sbin/grub-install /dev/md0 /usr/sbin/grub-probe: error: cannot stat `aufs'.

Et pour répondre à ta question, non je ne connais pas chroot, mais pour moi (et ce que j’ai lu sur la toile au sujet de la réinstalle de grub), la commande lance un environnement… un peu à la manière de la commande :

D’après ce que tu viens de me dire, chroot fonctionne comme sudo ?

le chroot sert a passer des commandes sur ton systeme depuis un autre systeme (liveCD)
pour installer le grub de ton systeme il est bien evident qu’il faut chrooter et monter la racine de ton systeme et de là faire un grub-install.

[quote=“le drick”]Hé mince, c’était trop beau :

# /usr/sbin/grub-install /dev/md0 /usr/sbin/grub-probe: error: cannot stat `aufs'.
[/quote]
Mouais … J’crois qu’yen a marre … !!!
De toute façon, le 15, c’est comme le 404, c’est-à-dire not found ! À priori le mirroring du raid devrait agréger les 2 disques de manière identique, la première chose à tester c’est sans doute de vérifier et auquel cas de copier le fichier grub.cfg pour qu’il soit visible sur les deux disques !!!
Le fait que /usr soit vide explique peut-être en partie cela : un seul disque est copié et “manque de bol”, c’est sur celui-là qu’il boute !!!

[quote=“le drick”]
Et pour répondre à ta question, non je ne connais pas chroot, mais pour moi (et ce que j’ai lu sur la toile au sujet de la réinstalle de grub), la commande lance un environnement… un peu à la manière de la commande :

D’après ce que tu viens de me dire, chroot fonctionne comme sudo ?[/quote]
En fait, je crois bien que je viens de réapprendre cette commande : Allen Frish conseille de relire les pages de manuel tous les six mois !

Chroot ne fait que modifier, via fork -> exec, le PATH pour qu’il prenne en compte la “transformation” de la racine, i.e., de “/” à “/mnt/md0/” ! Lorsqu’il n’y a rien à exec, c’est /bin/bash qui est lancé, ou plus précisément, comme le rappelle la page de manuel, le contenu de la variable SHELL sauf si l’option -i est indiquée, auquel cas, c’est /bin/sh qui est alors utilisé !

Bref, personnellement, j’utilise chroot comme un sudo effectivement et non comme un su !

Par contre, je suis catégorique, même si cela fonctionne bien, le résultat de gru-install sur un disque ou une partition de ce disque dont une, plusieurs, ou l’ensemble de ses partitions sont montées est incertain.
@Misaine :désolé, en bas de page 1° et 2° à lire !!!

Youpee !

Bon, voilà ce qui c’est passé, j’ai installé la machine il y a trèès longtemps et je ne me souviens plus des partitionnements que j’avais fait à l’époque (ça devait me sembler judicieux).
Bref tout ça pour dire que si mon /usr était vide, c’est parce qu’il était sur un autre md.

Pour corriger mon problème, j’ai donc :

  • assemblé toutes mes grappes
  • monté les md à leurs places (md0 dans /mnt/debian/, md2 dans /mnt/debian/usr)
  • monté /proc et /dev comme il fallait pour pouvoir lancer le chroot dans /mnt/debian
  • et de là, j’ai pu lancer le grub-install !
  • un petit reboot et c’est reparti comme en 40 !

hihi, merci beaucoup à tout le monde, je vais pouvoir me remettre à coder tranquillement maintenant !

@+