Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/07/2008, à 17:39

darkvince7

[Résolu] Comment vérifier si Grub est bien dans la MBR?

Bonjour!


Je souhaiterais tester et installer une ou plusieurs autres disitributions dont j'ai téléchargé les cds. Dans le tuto trouvé (http://linux-wizard.net/howto.php?section=0&key=chainloading) ils disent qu'il faut le grub de la distrib principale dans la MBR.

J'ai lu quelque part que ça se faisait automatiquement à l'installation d'Ubuntu, mais j'aimerais quand même vérifier parce que je pige pas trop ce truc de MBr, même avec la doc, et je ne veux pas faire d'erreurs...

En faisant une recherche de grub, j'ai un dossier grub dans /boot, un éxécutable grub dans /usr/sbin, etc... A l'installation d'Ubuntu il n'y avait qu'un disque dur, je tiens à le préciser.

S'il y a une commande me permettant de m'en assurer, n'hésitez pas à me la donner!!

Merci!

Dernière modification par darkvince7 (Le 26/07/2008, à 19:09)

Hors ligne

#2 Le 24/07/2008, à 19:04

schaars

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Bonjour

Pour voir si Grub est dans le MBR il faut lire le début du disque dur.
Pour cela, si ton disque dur est /dev/sda, tape dans un terminal :
sudo dd if=/dev/sda of=contenuMBR bs=446 count=1
Cela va créer le fichier contenuMBR dans le répertoire courant. Ensuite regarde ce fichier en héxadécimal :
hexdump -C contenuMBR | more

Normalement tu devrais trouver écrit GRUB quelque part. Par exemple moi j'ai :

00000170  06 be 94 7d e8 30 00 be  99 7d e8 2a 00 eb fe 47  |...}.0...}.*...G|
00000180  52 55 42 20 00 47 65 6f  6d 00 48 61 72 64 20 44  |RUB .Geom.Hard D|
00000190  69 73 6b 00 52 65 61 64  00 20 45 72 72 6f 72 00  |isk.Read. Error.|

Et si il n'y a pas de GRUB alors c'est qu'il n'est pas dans le MBR.

Dernière modification par schaars (Le 24/07/2008, à 19:05)


Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)

Hors ligne

#3 Le 24/07/2008, à 19:10

cep

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Autant éviter d'utiliser dd. Erreur d'écriture et les conséquences peuvent être fâcheuses.

On peut par exemple le remplacer par od :

sudo od -tx1z -Ax -N 512 /dev/sda

Et pour n'afficher que grub s'il est présent :
sudo od -tx1z -Ax -N 512 /dev/sda |grep -i rub

Ce qui donnera :
000180 52 55 42 20 00 47 65 6f 6d 00 48 61 72 64 20 44  >RUB .Geom.Hard D<

Ou bien :
od -tx1z -Ax -N 512 /dev/hda |grep -i -A1 -B1 rub
000170 06 be 94 7d e8 30 00 be 99 7d e8 2a 00 eb fe 47  >...}.0...}.*...G<
000180 52 55 42 20 00 47 65 6f 6d 00 48 61 72 64 20 44  >RUB .Geom.Hard D<
000190 69 73 6b 00 52 65 61 64 00 20 45 72 72 6f 72 00  >isk.Read. Error.<


Voir :  http://www.cepcasa.info/blog/?p=72

Dernière modification par cep (Le 24/07/2008, à 19:13)

Hors ligne

#4 Le 24/07/2008, à 22:07

darkvince7

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Merci à tous les deux!

Apparemment il n'y est pas...

000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00  >.R.NTFS    .....<
000010 00 00 00 00 00 f8 00 00 3f 00 f0 00 00 00 00 00  >........?.......<
000020 00 00 00 00 80 00 80 00 fe ff ff 0f 00 00 00 00  >................<
000030 00 00 0c 00 00 00 00 00 ff ff ff 00 00 00 00 00  >................<
000040 f6 00 00 00 01 00 00 00 a6 a6 1a 94 ae 1a 94 80  >................<
000050 00 00 00 00 fa 33 c0 8e d0 bc 00 7c fb b8 c0 07  >.....3.....|....<
000060 8e d8 e8 16 00 b8 00 0d 8e c0 33 db c6 06 0e 00  >..........3.....<
000070 10 e8 53 00 68 00 0d 68 6a 02 cb 8a 16 24 00 b4  >..S.h..hj....$..<
000080 08 cd 13 73 05 b9 ff ff 8a f1 66 0f b6 c6 40 66  >...s......f...@f<
000090 0f b6 d1 80 e2 3f f7 e2 86 cd c0 ed 06 41 66 0f  >.....?.......Af.<
0000a0 b7 c9 66 f7 e1 66 a3 20 00 c3 b4 41 bb aa 55 8a  >..f..f. ...A..U.<
0000b0 16 24 00 cd 13 72 0f 81 fb 55 aa 75 09 f6 c1 01  >.$...r...U.u....<
0000c0 74 04 fe 06 14 00 c3 66 60 1e 06 66 a1 10 00 66  >t......f`..f...f<
0000d0 03 06 1c 00 66 3b 06 20 00 0f 82 3a 00 1e 66 6a  >....f;. ...:..fj<
0000e0 00 66 50 06 53 66 68 10 00 01 00 80 3e 14 00 00  >.fP.Sfh.....>...<
0000f0 0f 85 0c 00 e8 b3 ff 80 3e 14 00 00 0f 84 61 00  >........>.....a.<
000100 b4 42 8a 16 24 00 16 1f 8b f4 cd 13 66 58 5b 07  >.B..$.......fX[.<
000110 66 58 66 58 1f eb 2d 66 33 d2 66 0f b7 0e 18 00  >fXfX..-f3.f.....<
000120 66 f7 f1 fe c2 8a ca 66 8b d0 66 c1 ea 10 f7 36  >f......f..f....6<
000130 1a 00 86 d6 8a 16 24 00 8a e8 c0 e4 06 0a cc b8  >......$.........<
000140 01 02 cd 13 0f 82 19 00 8c c0 05 20 00 8e c0 66  >........... ...f<
000150 ff 06 10 00 ff 0e 0e 00 0f 85 6f ff 07 1f 66 61  >..........o...fa<
000160 c3 a0 f8 01 e8 09 00 a0 fb 01 e8 03 00 fb eb fe  >................<
000170 b4 01 8b f0 ac 3c 00 74 09 b4 0e bb 07 00 cd 10  >.....<.t........<
000180 eb f2 c3 0d 0a 45 72 72 2e 20 6c 65 63 74 75 72  >.....Err. lectur<
000190 65 20 64 69 73 71 75 65 00 0d 0a 4e 54 4c 44 52  >e disque...NTLDR<
0001a0 20 6d 61 6e 71 75 65 00 0d 0a 4e 54 4c 44 52 20  > manque...NTLDR <
0001b0 65 73 74 20 63 6f 6d 70 72 65 73 73 82 00 0d 0a  >est compress....<
0001c0 45 6e 74 72 65 7a 20 43 74 72 6c 2b 41 6c 74 2b  >Entrez Ctrl+Alt+<
0001d0 53 75 70 70 72 20 70 6f 75 72 20 72 65 64 82 6d  >Suppr pour red.m<
0001e0 61 72 72 65 72 0d 0a 00 0d 0a 00 00 00 00 00 00  >arrer...........<
0001f0 00 00 00 00 00 00 00 00 83 99 a8 be 00 00 55 aa  >..............U.<
000200


C'est un peu bizarre, non? Vu que je n'ai installer qu'Ubuntu, directement (e virant Windows). Et puis ce message erreur lecture disuqe", qu'est-ce que c'est?

Hors ligne

#5 Le 24/07/2008, à 23:30

schaars

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

NTLDR c'est le chargeur d'amorçage de windows (le grub de windows quoi wink).
Donc effectivement Grub n'est pas présent.

Pour l'erreur disque en fait c'est juste qu'à cet endroit du disque est écrite la chaîne de caractères à afficher en cas d'erreur. Et il y a un endroit dans le programme qui dit "si il y a une erreur alors afficher la chaîne de caractères qui commence à l'adresse machin-chose" (pour faire simple).

Si tu désassembles un programme, il y a des sections spéciales qui contiennent les chaînes de caractères des variables, les données du programme, les chaînes de caractères des sections, etc. Pour plus d'infos cf. le format ELF (le format des exécutables GNU/Linux) et les outils objdump et readelf.

Pour répondre à la question essentielle (installer d'autres distribs) normalement lors de l'installation tu auras le choix entre installer leur chargeur d'amorçage (au mieux il détecte Ubuntu, au pire il faut modifier le fichier de configuration pour rajouter Ubuntu) ou laisser celui qui est présent et dans ce cas il faudra modifier le fichier /boot/grub/menu.lst pour rajouter l'autre distrib dans le choix de boot.

Dernière modification par schaars (Le 24/07/2008, à 23:33)


Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)

Hors ligne

#6 Le 25/07/2008, à 00:50

darkvince7

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

OK, merci. Donc en gros je peux mettre Grub dans le MBR pour la deuxième distribution vu que là il y est pas? Ou dois-je réinstaller Grub dans la MBR (explications dans la doc)? Et qu'est-ce que NTLDR fait là, vu que je n'ai pas Windows???

Et l'erreur, est-ce que finalement j'en ai bien une ou est-ce juste u message? Désolé, mais je suis pas expert en informatique alors je pige pas tout (même si je me débrouille assez bien en général).

Hors ligne

#7 Le 25/07/2008, à 01:02

schaars

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Question stupide : tu as combien de disques durs ? Si un seul alors je sais pas pourquoi y'a NTLDR, si plusieurs alors c'est parce que /dev/sda n'est pas le disque dur sur lequel grub se lance et donc il faut refaire la commande pour voir le MBR sur l'autre disque dur.

Tu peux toujours regarder ce qui se passe avec une machine virtuelle (en installant windows, puis en installant ubuntu, puis en installant d'autres distribs) si tu as encore des doutes.

Je pense que le plus simple est de laisser les autres distribs installer leur chargeur d'amorçage car dans la plupart des cas le processus d'installation détectera ubuntu et mettra une entrée au boot pour charger dessus.

Pour l'erreur c'est juste une chaîne de caractères. Par exemple j'ai un programme qui affiche un message d'erreur si il n'arrive pas à créer un fichier, et dans le code source je vois les lignes suivantes alors qu'il fonctionne très bien (tant qu'il peut créer le-dit fichier) :

00001b30  45 72 72 65 75 72 20 64  65 20 63 72 c3 a9 61 74  |Erreur de cr..at|
00001b40  69 6f 6e 20 64 75 20 66  69 63 68 69 65 72 20 64  |ion du fichier d|
00001b50  65 20 73 6f 72 74 69 65  20 63 6c 65 2e 73 65 63  |e sortie cle.sec|

Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)

Hors ligne

#8 Le 25/07/2008, à 15:24

darkvince7

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Ok, ben je vais tenter ça.

J'ai deux DD, mais je n'en avait brancher qu'un seul lors de l'installation. Au début j'avais garder une partition en NTFS sur le premier disque, mais plus maintenant. par contre j'ai rebranché mon deuxième disque, laissé en NTFS, pour des sauvegardes de mes courts-métrages ou autre, venant de mon macbook ou d'Ubuntu.

Je vais sauvegarder mon home au cas où et installer une deuxième distribution je verrais bien ensuite. Thanks.

Dernière modification par darkvince7 (Le 26/07/2008, à 08:18)

Hors ligne

#9 Le 26/07/2008, à 19:09

darkvince7

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Je viens de me rendre compte d'un truc super con...Mon dd principal n'est plus sda mais sdb. je ne sais pas pourquoi, à l'installation un seul disque était branché, il s'appelait sda mais quand j'ai branché le deuxième, ou à une autre manip, les noms ont changé. je ne m'en étais pas rendu compte. Et pourtant il y a encore peu toutes les partitions en et3 étaient du genre sda1, sda5...Maintenant c'est sdb, et donc, Grub est bien dans la MBR. C'est aussi pour ça que NTLDR est dans sda que j'ai laissé en NTFS...

Hors ligne

#10 Le 27/05/2018, à 18:16

uboops

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

cep a écrit :

Autant éviter d'utiliser dd. Erreur d'écriture et les conséquences peuvent être fâcheuses.

On peut par exemple le remplacer par od :

sudo od -tx1z -Ax -N 512 /dev/sda

Et pour n'afficher que grub s'il est présent :
sudo od -tx1z -Ax -N 512 /dev/sda |grep -i rub

Ce qui donnera :
000180 52 55 42 20 00 47 65 6f 6d 00 48 61 72 64 20 44  >RUB .Geom.Hard D<

Ou bien :
od -tx1z -Ax -N 512 /dev/hda |grep -i -A1 -B1 rub
000170 06 be 94 7d e8 30 00 be 99 7d e8 2a 00 eb fe 47  >...}.0...}.*...G<
000180 52 55 42 20 00 47 65 6f 6d 00 48 61 72 64 20 44  >RUB .Geom.Hard D<
000190 69 73 6b 00 52 65 61 64 00 20 45 72 72 6f 72 00  >isk.Read. Error.<


Voir :  http://www.cepcasa.info/blog/?p=72

Longtemps après, merci pour l'astuce sans la commande dd potentiellement risquée, c'est pratique est simple pour savoir si Grub est dans le MBR (ou sinon dans un PBR)

sudo od -tx1z -Ax -N 512 /dev/sda |grep -i rub
000180 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 47 65  >}.......GRUB .Ge<

# ou

/usr/bin/od -tx1z -Ax -N 512 `cat /proc/mounts | cut -c -8 | grep '/dev/sd' | sort -d | uniq` | egrep -i --color -A1 -B1 -e grub -e gr -e ru -e rub -e hard -e disk

Sinon pour vérifier le bon alignement des partitions du disque, il y a ça:

fdisk -l /dev/sda | grep -E sda[0-9]+ | sed s/*// | awk '{printf ("%s %f ",$1,$2/512); if($2%512){ print "BAD" }else {print "Good"} }' | column -t
/dev/sda1   4.000000        Good
/dev/sda2   404.000000      Good
/dev/sda3   302152.000000   Good

... Et pour les entrées menu Grub:

echo "--> Config Grub - Boot menuentry:" | egrep -i --color "Config Grub - Boot menuentry:"
grep -P "submenu|^menuentry:" /boot/grub/grub.cfg | cut -d "'" -f2

echo ""
echo "--> Config Grub - Boot menuentry-submenu:" | egrep -i --color "Config Grub - Boot menuentry-submenu:"

gawk  'BEGIN {                                                                                                                       
  l=0                                                                                                                                
  menuindex= 0                                                                                                                       
  stack[t=0] = 0                                                                                                                     
}                                                                                                                                    

function push(x) { stack[t++] = x }                                                                                                  

function pop() { if (t > 0) { return stack[--t] } else { return "" }  }                                                              

{                                                                                                                                    

if( $0 ~ /.*menuentry.*{.*/ )                                                                                                             
{                                                                                                                                    
  push( $0 )                                                                                                                         
  l++;                                                                                                                               

} else if( $0 ~ /.*{.*/ )                                                                                                            
{                                                                                                                                    
  push( $0 )                                                                                                                         

} else if( $0 ~ /.*}.*/ )                                                                                                            
{                                                                                                                                    
  X = pop()                                                                                                                          
  if( X ~ /.*menuentry.*{.*/ )                                                                                                            
  {                                                                                                                                  
     l--;                                                                                                                            
     match( X, /^[^'\'']*'\''([^'\'']*)'\''.*$/, arr )                                                                               

     if( l == 0 )                                                                                                                    
     {                                                                                                                               
       print menuindex ": " arr[1]                                                                                                   
       menuindex++                                                                                                                   
       submenu=0                                                                                                                     
     } else                                                                                                                          
     {                                                                                                                               
       print "  " (menuindex-1) ">" submenu " " arr[1]                                                                               
       submenu++                                                                                                                     
     }                                                                                                                               
  }                                                                                                                                  
}                                                                                                                                    

}' /boot/grub/grub.cfg

echo ""

Dernière modification par uboops (Le 27/05/2018, à 21:43)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#11 Le 27/05/2018, à 20:48

Arbiel

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Bonsoir

Je n'ai pas pris connaissance de l'intégralité de la discussion, mais je suis très surpris, que dès les premières interventions, personne n'ait conseillé de faire un rapport de démarrage avec boot-repair (sans faire bien évidemment de réparation) ou avec bootinfoscript.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#12 Le 27/05/2018, à 23:39

uboops

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

... En 2008 Boot-Repair n'existait pas (je pense).


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#13 Le 28/05/2018, à 18:38

Arbiel

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

Autant pour moi. Je suis arrivé à cette conversation par le biais de "Messages récents", sans me rendre compte que le message initial datait de 2008 !!
et que tu y répondais 10 ans plus tard.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#14 Le 28/05/2018, à 19:01

uboops

Re : [Résolu] Comment vérifier si Grub est bien dans la MBR?

... lol ... Oui je remerciais 10 ans plus tard ... quand on aime on ne compte pas, d'après le dicton ;-)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne