Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
la_partie_executable_du_mbr [Le 22/09/2016, 14:15] – [Que trouve-t-on comme programme dans le mbr] Nasmanla_partie_executable_du_mbr [Le 20/12/2021, 19:22] (Version actuelle) – passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) wiki-corrector-bot
Ligne 1: Ligne 1:
 +
 . .
 {{tag> tutoriel mbr BROUILLON}} {{tag> tutoriel mbr BROUILLON}}
Ligne 29: Ligne 30:
 \\ \\
 Une fois le chargement terminé et sans erreur, l'exécution se poursuit à l'adresse 0000:7C00, et donc suit les instructions qui figurent dans le premier secteur du mbr Une fois le chargement terminé et sans erreur, l'exécution se poursuit à l'adresse 0000:7C00, et donc suit les instructions qui figurent dans le premier secteur du mbr
 +\\ 
 +<note tip>Lors d'un démarrage en mode UEFI avec un disque GPT, le mbr (protector) ne semble quasiment pas utilisé et seul l'emplacement de l'en-tête GPT est nécessaire (unique entrée de la table des partitions du mbr protector)</note>
 ===== Comment accéder à ces informations ===== ===== Comment accéder à ces informations =====
  
Ligne 60: Ligne 62:
 J'ai effectué une analyse (partielle) du fonctionnement des différents morceaux mais des parties restent encore nébuleuses. J'ai effectué une analyse (partielle) du fonctionnement des différents morceaux mais des parties restent encore nébuleuses.
 \\ \\
-Le programme utilise des fonctions du bios (seules fonctions disponible à ce stade du démarrage du PC) et je me suis servi de la liste des [[http://www.ctyme.com/intr/int.htm|interruptions]]+Le programme utilise des fonctions du bios (seules fonctions disponibles à ce stade du démarrage du PC) et je me suis servi de la liste des [[http://www.ctyme.com/intr/int.htm|interruptions]]
  établies par Ralph Brown.  établies par Ralph Brown.
 \\ \\
Ligne 89: Ligne 91:
 0000005C  01000000          dd 0x00000001 ; Adresse LBA (valeur basse) où se trouve le secteur suivant de chargement (core.img) 0000005C  01000000          dd 0x00000001 ; Adresse LBA (valeur basse) où se trouve le secteur suivant de chargement (core.img)
 00000060  00000000          dd 0x00000000 ; Valeur haute du qword de l'adresse LBA 00000060  00000000          dd 0x00000000 ; Valeur haute du qword de l'adresse LBA
-00000064  FF                db 0xff             ; 0xff pour le chargement du noyau à partir du disque dur+00000064  FF                db 0xff             ; 0xff pour le chargement de core.img sur le disque de boot, si 0x80 premier disque dur, si 0x81 deuxième...
  
 00000065  FA                cli 00000065  FA                cli
Ligne 106: Ligne 108:
 00000081  3CFF              cmp al,0xff 00000081  3CFF              cmp al,0xff
 00000083  7402              jz 0x87 00000083  7402              jz 0x87
-00000085  88C2              mov dl,al ; si non égal à 0xff, sauvegardé dans dl+00000085  88C2              mov dl,al ; si non égal à 0xff, sauvegardé dans dl - si core.img est sur un autre disque
 00000087  52                push dx 00000087  52                push dx
-00000088  BB1704            mov bx,0x417 +00000088  BB1704            mov bx,0x417        ; adresse clavier 
-0000008B  802703            and byte [bx],0x3+0000008B  802703            and byte [bx],0x3   ; teste si une touche shift est activée
 0000008E  7406              jz 0x96 0000008E  7406              jz 0x96
 00000090  BE887D            mov si,0x7d88 ; pointe sur la chaine "GRUB" 00000090  BE887D            mov si,0x7d88 ; pointe sur la chaine "GRUB"
Ligne 165: Ligne 167:
 0000010D  88F4              mov ah,dh ; 2 bits de poids fort cylindre 0000010D  88F4              mov ah,dh ; 2 bits de poids fort cylindre
 0000010F  40                inc ax ; nb de cylindres 0000010F  40                inc ax ; nb de cylindres
-00000110  894408            mov [si+0x8],ax ; sLa partie qui commence à l'adresse hexa 65 est commune avec le fichier boot.img qui se trouve dans /boot/grub/ +00000110  894408            mov [si+0x8],ax ; sauvegardé en 7c0d
-\\ +
-auvegardé en 7c0d+
 00000113  0FB6C2            movzx ax,dl ; copie le numéro maxi de secteurs (x4) 00000113  0FB6C2            movzx ax,dl ; copie le numéro maxi de secteurs (x4)
 00000116  C0E802            shr al,0x2 ; numéro maxi de secteurs=nb secteurs 00000116  C0E802            shr al,0x2 ; numéro maxi de secteurs=nb secteurs
Ligne 205: Ligne 205:
 0000015E  B90001            mov cx,0x100 0000015E  B90001            mov cx,0x100
 00000161  8EDB              mov ds,bx ; charge le segment du buffer 00000161  8EDB              mov ds,bx ; charge le segment du buffer
-00000163  31F6              xor si,si ; ds:di pointe sur 7000:0000+00000163  31F6              xor si,si ; ds:si pointe sur 7000:0000
 00000165  BF0080            mov di,0x8000 00000165  BF0080            mov di,0x8000
 00000168  8EC6              mov es,si ; es:di pointe sur 0000:8000 00000168  8EC6              mov es,si ; es:di pointe sur 0000:8000
Ligne 275: Ligne 275:
 \\ \\
    
-  * **(fr)** [[http://fr.wikipedia.org/wiki/Master_boot_record]] +  * **(fr)** [[https://fr.wikipedia.org/wiki/Master_boot_record]] 
-  * **(fr)**[[http://fr.wikipedia.org/wiki/Partition_de_disque_dur]] +  * **(fr)**[[https://fr.wikipedia.org/wiki/Partition_de_disque_dur]] 
-  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=390336]] sur le forum ubuntu-fr +  * [[https://forum.ubuntu-fr.org/viewtopic.php?id=390336]] sur le forum ubuntu-fr 
-  * **(fr)**[[http://fr.wikipedia.org/wiki/Logical_block_addressing]]+  * **(fr)**[[https://fr.wikipedia.org/wiki/Logical_block_addressing]]