Posso carregar o MBR do Grub na unidade GPT secundária? E eu posso nuke MSR na unidade secundária?

3

Portanto, tenho uma placa-mãe com capacidade UEFI e três discos rígidos:

  • / dev / sda - SSD de 256G (MBR)
  • / dev / sdb - HDD 230G (MBR)
  • / dev / sdc - SSD 512G (GPT)

Por razões históricas, o sda e o sdb possuem tabelas de partição MBR e são unidades mais antigas. A unidade sda contém uma instalação funcional do Windows 7 que eu estou muito interessado em manter enquanto o sdb contém dados grandes. Também estou interessado em manter ... Arquivos e vídeo e afins.

A unidade sdc é uma nova unidade que comprei e particionei usando o Gerenciador de Disco do Windows para ter metade das janelas e metade para um linux de inicialização dupla mais tarde. Eu não estava prestando atenção quando particionei e criei uma tabela de partição GPT e uma partição reservada da Microsoft. O tempo passou e o sdc agora contém muitos dados com os quais eu prefiro não mexer e é hora de instalar esse linux de dual boot.

Como a tabela de partição é GPT, o Grub2 quer uma partição de sistema EFI (ESP) na cabeça da unidade (que é ocupada pela MSR) e, na verdade, se recusa a instalar.

Então, minhas perguntas são:

  1. Posso fazer o nuke do MSR da órbita para entrar no ESP e talvez / boot? Meu Win7 inicializou bem antes que o disco rígido foi instalado, então não vejo como isso afetaria qualquer coisa.
  2. Se eu alterar minha ordem de inicialização para usar UEFI e inicializar a partir do sdc, ele carregaria o grub, grub será capaz de carregar em cadeia a partir do MBR em sda (mantendo sda não modificada)?

(Esclarecimento: Eu não estou incomodado sobre o espaço que o MSR usa, é simplesmente no caminho para o ESP eu gostaria de entrar lá para que eu possa arrancar)

    
por Emily L. 01.04.2017 / 14:43

1 resposta

3

Meus problemas resultaram de confusão e falta de conhecimento. Vou tentar resumir o que aprendi aqui na esperança de que alguém ache útil.

BIOS vs hardware UEFI

Quando você liga seu computador, ele precisa começar a executar um programa em algum lugar. Normalmente, esta é uma ROM na placa-mãe que contém um programa, por um longo tempo este programa foi chamado de BIOS e funcionou de maneiras específicas (um pouco) padrão. Ele controlou alguns recursos de hardware, entre outras coisas, mas o mais importante é que ele passa o controle para um sistema operacional em alguma outra mídia de maneira bem definida.

O programa "padrão" da BIOS foi posteriormente substituído pelo UEFI, que tem o mesmo propósito (principalmente) e também tem um método de passar o controle para um SO em alguma outra mídia.

Inicialização do BIOS

Quando o BIOS é inicializado, ele lê o primeiro setor do dispositivo de inicialização principal, que supostamente contém um gerenciador de inicialização e começa a executá-lo. Esse primeiro setor é chamado de registro mestre de inicialização (MBR). Presume-se que o disco esteja usando o esquema de particionamento do DOS.

No antigo esquema de particionamento do DOS (também às vezes chamado de MBR), são reservados 446 bytes de espaço de programa para o gerenciador de inicialização no MBR. Quem precisaria de mais de 446 bytes amirite? Portanto, os bootloaders maiores normalmente utilizam um "recurso" do esquema de particionamento do DOS, em que há cerca de 1-2 MB ou mais de espaço não utilizado imediatamente após o MBR. O bootloader teria um "estágio 1" e "estágio 2" onde o estágio 1 é armazenado no MBR e simplesmente carrega o estágio 2 que é armazenado nessa área "não usada".

Inicialização UEFI

Quando o UEFI é inicializado, ele pressupõe que o dispositivo de inicialização principal está usando o GPT e procura uma partição com um tipo específico, a saber: "Partição do sistema EFI". Esta partição é assumida como FAT 12,16 ou 32. Uma vez encontrada, ela procura na partição por bootloaders procurando por arquivos com nomes que terminem em .efi .

Descobri que, no contexto da instalação do grub, os textos que lia referiam-se ao procedimento de inicialização do UEFI como simplesmente UEFI e ao procedimento de inicialização do BIOS como BIOS. Que foi confuso como eu pensei que eles estavam falando sobre o software real na ROM da placa-mãe.

De qualquer forma, uma placa-mãe UEFI ainda pode executar um procedimento de inicialização do BIOS, normalmente chamado de "Legacy Boot" ou CSM nas configurações de UEFI.

GPT e DOS / MBR

Embora o GPT seja muito diferente do esquema de particionamento antigo do MBR / DOS, ele reservou a região onde o carregador de inicialização de um disco particionado do MBR residiria. Isso significa que você pode instalar um gerenciador de inicialização "legado" nesse espaço reservado na GPT e usar a inicialização do BIOS. No entanto, há uma ressalva, lembre-se que a etapa 1/2 coisa? Sim GPT não tem esse "recurso" e a região reservada ainda é apenas 446 bytes. Então, para abrigar o estágio 2 do bootloader, um tipo especial de partição foi introduzido: "bios_boot". Portanto, o gerenciador de inicialização deve estar ciente de que está sendo instalado em um disco GPT e encontrar a partição "bios_boot" e colocar o estágio 2 lá e deixar o estágio 1 encontrar essa partição de alguma forma.

Resumo

Existem três maneiras de inicializar:

inicialização UEFI + GPT

Crie uma partição para manter o (s) carregador (es), 100 MB ou mais deve ser mais do que suficiente, defina o tipo como "EFI System Partition", formate-o com FAT 12,16 ou 32. Monte-o em algum lugar, geralmente% código%. Em seguida, informe ao grub para instalar um carregador EFI: /boot/efi .

A inicialização do UEFI deve encontrar a partição observando a tabela de partições.

Me disseram que você pode usar o ESP para o seu '/ boot' também, mas eu não tentei.

Inicialização do BIOS + GPT

Crie uma partição para manter o estágio 2 do carregador, normalmente de 1 a 2 MB, e defina o tipo como "bios_boot". Você não precisa colocar um sistema de arquivos nesta partição ou montá-lo, o grub "próprio" fará o que for necessário. A posição desta partição no disco deve ser irrelevante. Em seguida, instale o grub no MBR como de costume grub-install --efi-directory=/boot/efi . O Grub deve detectar que é um disco GPT, encontrar a partição de inicialização do BIOS (e reclamar se isso não acontecer!) E instalar o estágio 1 e o estágio 2 apropriados.

Inicialização do BIOS + MBR

Basta criar um esquema de partição do DOS em seu disco e usar grub-install /dev/sdx para gravar o MBR; a partição de inicialização do bios não é necessária.

Corrente carregando unidade secundária com MBR da unidade principal com GPT

Descobri então que o grub não permite o carregamento de um carregador de inicialização da BIOS a partir de um carregador de inicialização UEFI por qualquer motivo. Eu pessoalmente não vejo por que isso não seria possível, mas pelo menos grub não parece apoiar isso.

Então, para corrigir meus problemas, defino minha unidade GPT como dispositivo de inicialização principal nas configurações de UEFI, depois uso a inicialização do BIOS para carregar o grub do dispositivo GPT, conforme descrito acima. O que significa que é capaz de carregar o Win7 a partir do MBR no primeiro disco.

    
por 03.04.2017 / 14:16