Eu não testei isso experimentalmente, então pode não funcionar na prática, mas o utilitário efibootmgr
retorna uma variável chamada BootCurrent
que deve identificar o carregador de inicialização que a EFI lançou. Por exemplo:
$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 3 seconds
BootOrder: 0000,0001
Boot0000* EFI DVD/CDROM ACPI(a0841d0,0)PCI(14,1)ATAPI(0,1,0)
Boot0001* OsLoader0000 ACPI(a0841d0,0)PCI(11,0)03120a00000000000000HD(1,800,5ede2,2c47c282-ee6e-45de-a5ad-e8658ca67de6)File(\EFI\BOOT\BOOTX64.EFI)
Esta saída indica que o sistema foi inicializado através da entrada 0001 ( Boot0001
). A opção -v
para efibootmgr
usada aqui inclui informações detalhadas, que incluem o GUID da partição na qual este carregador de boot foi armazenado - 2c47c282-ee6e-45de-a5ad-e8658ca67de6 nesse caso. Note que este é um GUID de partição , não um sistema de arquivos UUID . AFAIK, a única maneira de extrair dados de GUID da partição no Linux é via gdisk
, cgdisk
ou sgdisk
. Por exemplo:
$ sudo sgdisk -i 1 /dev/sda
Partition GUID code: C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EFI System)
Partition unique GUID: 2C47C282-EE6E-45DE-A5AD-E8658CA67DE6
First sector: 2048 (at 1024.0 KiB)
Last sector: 390625 (at 190.7 MiB)
Partition size: 388578 sectors (189.7 MiB)
Attribute flags: 0000000000000000
Partition name: 'EFI System'
Observe a linha Partition unique GUID
, que corresponde ao valor incluído na saída efibootmgr
(além do caso, que varia). Dada a entrada para sgdisk
neste exemplo, isso significa que a partição 1 em /dev/sda
(ou seja, /dev/sda1
) manteve o primeiro programa de inicialização do sistema. Pode ser necessário verificar todas as suas partições, ou pelo menos todas as quais os carregadores de inicialização EFI podem estar presentes, para ter certeza de encontrar uma correspondência. Mesmo assim, você pode não encontrar uma correspondência - por exemplo, se o gerenciador de partida estiver em uma unidade flash USB que foi removida do computador ou se você alterou o GUID da partição.
Com base na minha verificação no sistema em que estou sentado, parece que a saída efibootmgr -v
informa o programa de carregador de inicialização que a EFI lançou. Isso pode não ser o mesmo que o Linux, já que o programa que a EFI lançou pode ter sido um gerenciador de inicialização que, por sua vez, lançou outro gerenciador de inicialização. Se o processo de inicialização do seu sistema for simples, isso pode não importar; mas se o processo de inicialização incluir a possibilidade de redirecionamento entre discos, essa técnica não será confiável.