No caso de vários sistemas operacionais, é o carregador de boot no MBR que analisa todos os setores de inicialização das partições e lista-os?

0

Eu estudei que durante o processo de inicialização, no primeiro estágio, o gerenciador de inicialização no MBR de um dispositivo de inicialização examina a tabela de partição para localizar o setor de inicialização das partições ativas e, assim que encontrar a partição ativa, procura o carregador de inicialização do segundo estágio (por exemplo: GRUB) e, em seguida, carrega na RAM. E que o carregador de inicialização do segundo estágio reside no diretório / boot.

Q1) E se um sistema tiver dois sistemas operacionais diferentes? O menu de exibição para selecionar um desses sistemas operacionais será exibido quando o carregador de inicialização do primeiro estágio procurar as partições ativas?

Q2) Se os 2 sistemas operacionais no sistema forem duas distribuições diferentes do Linux, se as duas distribuições tiverem o mesmo carregador de inicialização em seu diretório / boot, em que estágio será exibido esse menu do sistema operacional para a seleção do usuário estágio ou segundo estágio?

    
por Karthik 21.12.2017 / 00:19

2 respostas

2

Não, a partição ativa é do tipo DOS / Windows - é o sinalizador "inicializável". Muitos / a maioria dos BIOSes irá procurá-lo, mas em hardware não-x86 pode não existir ou se importar. link

Uma vez que o bootloader foi encontrado pelo BIOS (ou equivalente) - seja procurando o sinalizador, procurando em um local padrão, etc - então a configuração do bootloader determinará quais sistemas operacionais serão inicializados, ou exibirá um menu, etc.

Como isso acontece é dependente de bootloader - De volta aos "velhos tempos" para dual boot Windows NT 4 e Linux, nós escrevemos o lilo na partição / , e removemos os primeiros 512 bytes usando dd em um arquivo e coloque-o onde o gerenciador de inicialização do Windows ( ntldr ) pode vê-lo, faça uma entrada no arquivo C:\boot.ini referenciando-o e alterando a opção de inicialização padrão para o Linux. É claro que cada nova atualização do kernel exigia reescrever o lilo e remover os 512 bytes em um arquivo ...

    
por 21.12.2017 / 04:22
0

A maioria das máquinas compradas nos últimos dois anos usará o UEFI como padrão para inicializar o sistema, a vantagem é o secureboot, melhores formas de o sistema operacional interagir com o firmware, atestado remoto, melhor controle da criptografia HD e alguns outras coisas.

O firmware da UEFI pode escolher o que inicializar de algumas maneiras.

No modo mais compatível, o firmware procurará na unidade uma partição GUID com o tipo de partição UUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B. (digite ef00 no fdisk). Esta partição é formatada como FAT32 (não tenho certeza se este é um requisito estrito no padrão, mas não estou ciente de nenhum firmware real que inicialize qualquer outra coisa, embora o coreboot possa). Nesta partição, o firmware executará /BOOT/EFI/BOOTX64.efi (para x64). Este é o bootloader e pode fazer o que quiser. Na verdade, o kernel do linux é um executável EFI e quando rodar ele irá inicializar o linux!

A outra maneira é lendo uma entrada de inicialização do EFI NVRAM. É assim que a maioria dos bootloaders (como o Windows Loader ou o grub-efi). Isso adicionará uma entrada a um menu de inicialização específico do firmware (geralmente acessado por algo como F12 na inicialização) e essa entrada apontará para um executável específico na partição do sistema efi. Desta forma, mesmo que alguém dê um BOOTx64.efi, você ainda pode facilmente inicializar o seu sistema. Este método pode ser bastante buggy em algumas máquinas. Por exemplo, a NVRAM deve executar alguma coleta de lixo para recuperar espaço depois que uma variável é excluída, mas alguns firmwares antigos não o fazem e simplesmente se encaixam se você escrever muitas variáveis. O firmware do meu próprio Lenovo X220 não inicializa a partir das entradas NVRAM, e só pode carregar o bootx64.efi. Qualquer máquina fabricada nos últimos 4 anos deve estar bem.

A maioria das distribuições linux irá instalar o grub (ou qualquer bootloader que eles usem) em algum diretório como / fedora / ... no ESP (sistema de partições efi), assim você pode selecionar qualquer cópia que desejar no menu de inicialização EFI. Se você tiver o os-prober instalado para um determinado linux, então a versão do grub provavelmente será capaz de encontrar o gerenciador de inicialização do Windows e executá-lo para você no menu grub.

Uma maneira rápida de saber se você está inicializando com o EFI é apenas inicializar o Windows 10 e ver se o logotipo que aparece é o logotipo do Windows ou o logotipo do fabricante da sua máquina. Se não é o logotipo do Windows, você está no modo EFI.

    
por 21.12.2017 / 07:11