J'essaie de savoir où se trouvent les enregistrements de démarrage EFI sur mon Lenovo U41 en utilisant la commande Sudo efibootmgr -v
.
Est-ce que quelqu'un peut me l'expliquer?
$ Sudo efibootmgr -v
BootCurrent: 0008
Timeout: 0 seconds
BootOrder: 0010,0003,0004,0005,0006,0008,0007,0009,000A,000B,001D
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash
Boot0003* ATA HDD2: WDC WD5000LPVT-08G33T1 ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000..bYVD.A...O.*..
Boot0004* ATA SSD1: SanDisk SSD U100 24GB ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000..bYVD.A...O.*..
Boot0005* RAID DEVICE2: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d01
Boot0006* RAID DEVICE1: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d00
Boot0007* ATAPI CD: 030a2400d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a354
Boot0008* USB HDD: SanDisk Cruzer Edge ACPI(a0341d0,0)PCI(1a,0)USB(0,0)USB(0,0)3.!..3.G..A.....
Boot0009* USB FDD: 030a2400d23878bc820f604d8316c068ee79d25b6ff015a28830b543a8b8641009461e49
Boot000A* USB CD: 030a2400d23878bc820f604d8316c068ee79d25b86701296aa5a7848b66cd49dd3ba6a55
Boot000B* PCI LAN: EFI Network (IPv4) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0x.J.+*.N.....=8.
Boot000C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi)
Boot0010* Windows Boot Manager HD(2,1f4800,82000,72931328-061b-42e0-8fd8-8a5ac7775074)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................
Boot0014 Setup
Boot0015 Boot Menu
Boot0016 Diagnostic Splash
Boot001C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi)
Boot001D* PCI LAN: EFI Network (IPv6) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000x.J.+*.N.....=8.
Je vais les prendre hors service, car certaines des premières lignes se réfèrent aux suivantes. Le gros du résultat est constitué des lignes Boot####
, qui décrivent les options de démarrage.
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash
Votre exemple de sortie inclut un grand nombre d'options comme celles-ci, qui ont un nom mais ne sont pas développées. Ce sont probablement des options intégrées à votre micrologiciel spécifique. Dans votre cas, ces trois premières options semblent être des options pour accéder au menu de configuration du micrologiciel, pour lancer le gestionnaire de démarrage intégré et pour afficher un écran de démarrage pour le diagnostic. Mais, en réalité, il n’ya aucun moyen de savoir avec certitude de quoi il s’agit, du moins pas de la sortie efibootmgr
seule.
Les nombres qui suivent la chaîne Boot
sont en hexadécimal, et il n’ya rien de spécial dans un nombre donné - c’est-à-dire que Boot0000
n’est pas réservé pour une fonction particulière, ni Boot0001
ni rien d’autre. . Les numéros sont attribués lorsqu'un programme crée une nouvelle entrée de démarrage et les assignations sont essentiellement dépourvues de sens. (Du moins, à moins qu'il y ait un bogue; je connais des bogues qui peuvent faire en sorte qu'un microprogramme favorise les entrées de démarrage dont le nombre est inférieur.)
Boot0003* ATA HDD2: WDC WD5000LPVT-08G33T1 ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000..bYVD.A...O.*..
Boot0004* ATA SSD1: SanDisk SSD U100 24GB ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000..bYVD.A...O.*..
Ces deux options décrivent des périphériques spécifiques. Après la chaîne Boot####
, vient une description est interprétable par l'homme, du moins jusqu'à un certain point - vous pouvez voir qu'il s'agit de deux unités de disque. Les chaînes ACPI(...)
et PCI(...)
identifient le matériel et ces informations ne sont pas facilement interprétées par les humains, sauf par recoupement avec d'autres informations sur le matériel. Ensuite, il y a un peu de charabia, qui est une donnée codée pour l'entrée qui peut être ou non facilement lue par l'homme. Dans ce cas, il est clairement difficile à interpréter par les gens.
Dans la plupart des cas, lorsque vous voyez une entrée comme celle-ci qui fait référence à un périphérique de disque, la référence est en réalité le fichier du chargeur d'amorçage de secours (EFI/BOOT/bootx64.efi
, au moins sur les systèmes x86-64) sur la partition système EFI du disque ( ESP). EFI n'utilise pas les chargeurs de démarrage intégrés au MBR d'un disque, contrairement au BIOS.
Boot0005* RAID DEVICE2: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d01
Boot0006* RAID DEVICE1: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d00
Boot0007* ATAPI CD: 030a2400d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a354
Ce sont clairement plus d'entrées de matériel. Je ne reconnais pas le format de ces entrées. Vous pouvez ignorer les longues chaînes. Sachez simplement qu'ils font référence à des périphériques matériels.
J'omets quelques entrées ici, car elles sont plus ou moins identiques ...
Boot000B* PCI LAN: EFI Network (IPv4) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0x.J.+*.N.....=8.
Ceci est une variante sur les entrées de disque, mais celle-ci identifie un périphérique réseau. Notez qu'il inclut une adresse MAC (MAC(...)
) et spécifie l'utilisation de IPv4 (IPv4(...)
). Si cette entrée devait être démarrée, l'ordinateur essaierait de démarrer PXE à partir d'un serveur réseau.
Boot000C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi)
Boot0010* Windows Boot Manager HD(2,1f4800,82000,72931328-061b-42e0-8fd8-8a5ac7775074)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................
Ces entrées identifient les chargeurs de démarrage EFI stockés sur le disque dur. Ils le font avec des syntaxes légèrement différentes - notez que la première commence par ACPI(...)
et PCI(...)
, comme le faisaient les précédentes, tandis que la seconde utilise un identifiant HD(...)
. Ce dernier inclut un GUID pour la partition, ainsi que quelques autres identifiants. Les deux entrées incluent un nom de fichier (File(...)
). L'entrée Windows inclut plus de données de type charabia à la fin, mais dans ce cas, c'est une chaîne UTF-16 qui est transmise au chargeur de démarrage en tant qu'option.
Votre exemple inclut un lot d'entrées. De nombreuses EFI produisent des listes beaucoup plus courtes. Par exemple, les options intégrées ou les options permettant d’amorcer PXE à partir du réseau peuvent manquer. OTOH, vous verrez parfois d'autres options, telles que des entrées faisant référence à des démarrages en mode BIOS. Notamment absent de votre liste était une entrée pour le démarrage d'Ubuntu. Voici une telle entrée d'un de mes ordinateurs:
Boot000D* ubuntu HD(1,800,112800,a8d39218-44ce-455b-8735-919754df131d)File(\EFI\UBUNTU\GRUBX64.EFI)..BO
Comme vous pouvez le constater, sa forme de base est assez similaire à celle du chargeur de démarrage Windows, bien que les détails diffèrent bien entendu. Une entrée Ubuntu est peut-être manquante dans votre exemple, car vous ne l'avez pas encore installée, car vous avez installé Ubuntu en mode BIOS/CSM/legacy (une erreur), car votre EFI est défectueux et donc efibootmgr
n'a pas pu ajouter. une entrée ou parce que vous l'avez explicitement supprimée une fois créée. Si vous rencontrez un problème de démarrage, je vous recommande de poser une autre question et de fournir des détails.
Les entrées restantes suivent ces modèles. Maintenant, revenez au début ...
ubuntu@ubuntu:~$ Sudo efibootmgr -v
BootCurrent: 0008
La ligne BootCurrent
identifie l'entrée qui a été utilisée pour démarrer l'ordinateur. Dans ce cas, c’est Boot0008
, que j’ai coupé, mais qui identifie un lecteur flash USB - vous avez démarré à l’aide du chargeur de démarrage de secours stocké sur ce lecteur.
Timeout: 0 seconds
Cette ligne identifie le délai d'attente sur le gestionnaire de démarrage intégré d'EFI. En pratique, cela pourrait vouloir dire ou ne pas dire grand chose.
BootOrder: 0010,0003,0004,0005,0006,0008,0007,0009,000A,000B,001D
Cette ligne identifie l'ordre dans lequel les entrées de démarrage sont essayées. Dans ce cas, EFI essaiera de démarrer avec Boot0010
(le gestionnaire de démarrage Windows). Si cette entrée identifie un périphérique ou un fichier inexistant, ou si le programme de démarrage revient, le microprogramme essaiera alors Boot0003
(votre disque dur Western Digital). Si cette entrée échoue, il essaiera Boot0004
(votre disque SSD SanDisk), etc.
Vous pouvez obtenir une explication détaillée du paquet efibootmgr avec la commande:
man efibootmgr
Il explique en détail le résultat obtenu par efibootmgr.