Quando o CSM é usado, uma opção é carregar o código de inicialização do MBR como um BIOS faria.
A lógica: o CSM deve agir exatamente como um BIOS faria para ser compatível. O sistema operacional colocará o código de inicialização necessário no MBR e no (s) setor (es) de inicialização da partição.
Mas isso é para inicialização baseada em CSM para começar. Tenha em mente que o rEFInd em si é uma opção de inicialização EFI. Por causa disso, o rEFInd será carregado pelo (U) EFI como um executável EFI binário padrão (PE 32 ou 64 bits, dependendo do EFI), como qualquer carregador de um sistema operacional EFI. Quando o menu rEFInd é exibido, nenhum CSM foi carregado ainda. Como o rEFInd é inicializado como um executável EFI, não há necessidade do CSM.
Com o EFI inicializado como rEFInd como ponto de partida, o próprio rEFInd continuará a procurar opções inicializáveis, isto é, partições, outros carregadores ou kernels EFI. Para sistemas operacionais baseados em BIOS, o rEFInd determinará se uma opção é inicializável exatamente como um CSM, verificando se há uma partição MBR (híbrida) com código de inicialização do sistema operacional baseado em BIOS. Se estiver faltando ou se curvar, o sistema operacional não inicializará. (Uma razão pode ser que algo deu errado ao instalar o sistema operacional na partição MBR.)
Portanto, a resposta curta é: não. Somente ao inicializar um disco (não uma partição!) do CSM, o código de inicialização do MBR será carregado. O rEFInd, iniciado como um gerenciador de partida EFI, não é necessário ou mesmo capaz de iniciar o MBR.
Imagine rEFInd iria iniciar o MBR (e para isso vamos supor que ele também poderia fazer o UEFI carregar o CSM): se há uma falha no código de inicialização e / ou particionamento (como nenhuma partição definida como ativo ) ou se a opção de inicialização selecionada (via rEFInd) não é aquela marcada como a partição ativa na tabela de partições MBR, o código de inicialização do MBR não carregará a partição selecionada, tornando todo o propósito de rEFInd menu de seleção de inicialização nulo e sem efeito.
De O gerenciador de inicialização do rEFInd:
Usando drivers EFI , seção Selecionando um driver EFI :
NTFS—Samuel Liao contributed this driver, which uses the rEFIt/rEFInd driver framework. Note that this driver is not required to boot Windows with rEFInd, since Windows stores its EFI boot loader on the (FAT) ESP, and the BIOS boot process (generally used when dual-booting on a Mac) relies only on the partition's boot sector, which is read without the benefit of this driver.
Isso claramente implica que o rEFInd irá apenas carregar o setor de boot da respectiva partição do MBR (embora seja uma partição híbrida), ignorando intencionalmente o MBR.
Além disso, o UEFI (EFI 1.x no Mac) fornece meios para "inicializar legado" de uma partição selecionada, que, quando selecionada / instruída para isso, carrega automaticamente o CSM. Nem todas as máquinas UEFI possuem esse recurso. Se estiver faltando, o rEFInd não poderá inicializar um sistema operacional baseado em BIOS a partir de uma partição MBR.
Do Wiki OSDev , seção classe UEFI 0-3 e CSM :
PCs are categorized as UEFI class 0, 1, 2, or 3. A class 0 machine is a legacy system with a legacy BIOS; i.e. not a UEFI system at all.
A class 1 machine is a UEFI system that runs exclusively in Compatibility Support Module (CSM) mode. CSM is a specification for how UEFI firmware can emulate a legacy BIOS. UEFI firmware in CSM mode loads legacy bootloaders. A class 1 UEFI system may not advertise UEFI support at all, since it isn't exposed to the bootloader. It's only UEFI "within" the BIOS.
A class 2 machine is a UEFI system that can launch UEFI applications but also includes the option to run in CSM mode. The majority of modern PCs are UEFI class 2 machines. Sometimes the choice to run UEFI applications vs. CSM is a one-or-the-other setting in the BIOS configuration, and other times the BIOS will decide which to use after selecting the boot device and checking whether it has a legacy bootloader or a UEFI application.
A class 3 machine is a UEFI system that does not support CSM. UEFI class 3 machines only run UEFI applications and do not implement CSM for backwards compatibility with legacy bootloaders.
De A seção rEFInd Boot Manager: Usando o rEFInd Inicializando sistemas operacionais legados :
To help out when you need to boot in BIOS mode, rEFInd supports booting legacy OSes; however, the details vary between Macs and UEFI PCs. Also, be aware that some UEFI PCs lack the Compatibility Support Module (CSM) that's required for this feature to work. This is true even of some computers that can boot BIOS-based OSes natively. This can happen because the firmware is basically a BIOS with a UEFI implementation tacked on top of it; such systems rely on the native BIOS to boot, and may not provide a way for EFI applications to access the BIOS features via CSM mechanisms. If you have such a computer and if you enable a legacy boot option in the configuration file, rEFInd notifies you of its inability to present legacy boot options when it starts up.
Se você estiver interessado se realmente tiver algumas entradas CSM em seu menu de inicialização EFI - não em seleções de inicialização rEFInd, mas real (U) EFI - você pode tentar efibootmgr -v
no Linux. Isso só funcionará quando o próprio Linux for inicializado como um sistema operacional (U) EFI. Quando o Linux é inicializado como uma seleção de inicialização do CSM, ele não terá acesso à implementação EFI subjacente. Só que, no Linux, não há muita diferença em relação ao particionamento, porque o Linux não é tão exigente quanto o Windows e pode usar o particionamento GPT quando estiver no modo BIOS.
# efibootmgr -v
Timeout: 2 seconds
BootOrder: 0000,0004,0005
Boot0000* Windows Boot Manager HD(2,GPT,1bf25484-f461-4892-a640-a24136b1d45f,0xe1800,0x32000)/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................
Boot0004* Hard Drive BBS(HD,,0x0)P0: INTEL SSDSC2CT060A3 .
Boot0005* UEFI: SanDisk Extreme 0001 PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(4,0)/HD(1,MBR,0x97,0xb4,0x298c)/File(\EFI\BOOT\BOOTX64.EFI)
Neste exemplo, existem apenas entradas UEFI.
# efibootmgr -v
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0003,0002,0000,0004
Boot0000* CD/DVD Drive BIOS(3,0,00)
Boot0001* Hard Drive HD(2,0,00)
Boot0002* Fedora HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\fedora\grubx64.efi)
Boot0003* opensuse HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\opensuse\grubx64.efi)
Boot0004* Hard Drive BIOS(2,0,00)P0: ST1500DM003-9YN16G
Neste exemplo, Boot0000
e Boot0004
são seleções de CSM (observe o caminho BIOS
) e a UEFI inicializará essas entradas com o CSM carregado. Mas esteja ciente de que ainda é o UEFI que invoca a inicialização da entrada selecionada!
Quando rEFInd deve usar mecanismos CSM para inicializar sistemas operacionais legados a partir de partições MBR (híbridas), só posso assumir que isso é muito semelhante às entradas de inicialização UEFI permanentes. Pode ser que o rEFInd use entradas de inicialização únicas (como BootNext
) para esta tarefa ...